.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text

	thumb_func_start InitDewfordTrend
InitDewfordTrend: @ 81224D4
	push {r4-r7,lr}
	movs r6, 0
	ldr r5, =gSaveBlock1Ptr
_081224DA:
	movs r0, 0xA
	bl sub_811EE38
	ldr r1, [r5]
	lsls r4, r6, 3
	adds r1, r4
	ldr r2, =0x00002e6c
	adds r1, r2
	strh r0, [r1]
	bl Random
	movs r1, 0x1
	ands r1, r0
	cmp r1, 0
	beq _08122514
	movs r0, 0xC
	bl sub_811EE38
	ldr r1, [r5]
	adds r1, r4
	ldr r7, =0x00002e6e
	adds r1, r7
	b _08122522
	.pool
_08122514:
	movs r0, 0xD
	bl sub_811EE38
	ldr r1, [r5]
	adds r1, r4
	ldr r2, =0x00002e6e
	adds r1, r2
_08122522:
	strh r0, [r1]
	bl Random
	ldr r3, [r5]
	adds r3, r4
	movs r2, 0x1
	ands r2, r0
	ldr r7, =0x00002e69
	adds r3, r7
	lsls r2, 6
	ldrb r0, [r3]
	movs r7, 0x41
	negs r7, r7
	adds r1, r7, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3]
	ldr r0, =0x00002e68
	adds r1, r4, r0
	ldr r0, [r5]
	adds r0, r1
	bl sub_8122B28
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x4
	bls _081224DA
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002e68
	adds r0, r1
	movs r1, 0x5
	movs r2, 0
	bl sub_8122804
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end InitDewfordTrend

	thumb_func_start sub_8122580
sub_8122580: @ 8122580
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	bne _08122596
	b _081226BE
_08122596:
	lsls r0, r1, 2
	adds r0, r1
	str r0, [sp]
	movs r0, 0
	mov r10, r0
	movs r1, 0x7F
	mov r9, r1
	movs r2, 0x80
	negs r2, r2
	mov r8, r2
_081225AA:
	ldr r2, [sp]
	mov r3, r10
	lsls r0, r3, 3
	ldr r4, =0x00002e68
	adds r0, r4
	ldr r3, =gSaveBlock1Ptr
	ldr r1, [r3]
	adds r5, r1, r0
	ldrb r6, [r5, 0x1]
	movs r0, 0x40
	ands r0, r6
	cmp r0, 0
	bne _08122608
	ldrb r4, [r5]
	lsls r3, r4, 25
	lsrs r1, r3, 25
	lsls r0, r2, 16
	lsrs r0, 16
	cmp r1, r0
	bcc _081225F8
	adds r0, r1, 0
	subs r0, r2
	mov r1, r9
	ands r0, r1
	mov r1, r8
	ands r1, r4
	orrs r1, r0
	strb r1, [r5]
	movs r0, 0x7F
	ands r1, r0
	cmp r1, 0
	bne _0812269E
	movs r0, 0x40
	orrs r0, r6
	b _0812269C
	.pool
_081225F8:
	lsrs r0, r3, 25
	subs r2, r0
	mov r0, r8
	ands r0, r4
	strb r0, [r5]
	movs r0, 0x40
	orrs r0, r6
	strb r0, [r5, 0x1]
_08122608:
	ldrb r7, [r5]
	lsls r0, r7, 25
	lsrs r0, 25
	adds r4, r0, r2
	ldrh r0, [r5]
	lsls r6, r0, 18
	lsls r0, r4, 16
	lsrs r0, 16
	lsrs r1, r6, 25
	cmp r0, r1
	bls _08122678
	adds r0, r4, 0
	bl __umodsi3
	adds r3, r0, 0
	lsrs r1, r6, 25
	adds r0, r4, 0
	str r3, [sp, 0x4]
	bl __udivsi3
	adds r4, r0, 0
	movs r0, 0x1
	eors r4, r0
	ands r4, r0
	lsls r2, r4, 6
	ldrb r0, [r5, 0x1]
	movs r4, 0x41
	negs r4, r4
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r5, 0x1]
	movs r1, 0x40
	ands r0, r1
	ldr r3, [sp, 0x4]
	cmp r0, 0
	beq _08122662
	adds r1, r3, 0
	mov r0, r9
	ands r1, r0
	mov r0, r8
	ands r0, r7
	orrs r0, r1
	strb r0, [r5]
	b _0812269E
_08122662:
	ldrh r0, [r5]
	lsls r0, 18
	lsrs r0, 25
	subs r0, r3
	mov r1, r9
	ands r0, r1
	mov r1, r8
	ands r1, r7
	orrs r1, r0
	strb r1, [r5]
	b _0812269E
_08122678:
	mov r2, r9
	ands r4, r2
	mov r0, r8
	ands r0, r7
	orrs r0, r4
	strb r0, [r5]
	lsls r0, 25
	ldrh r1, [r5]
	lsls r1, 18
	lsrs r0, 25
	lsrs r1, 25
	cmp r0, r1
	bne _0812269E
	ldrb r0, [r5, 0x1]
	movs r3, 0x41
	negs r3, r3
	adds r1, r3, 0
	ands r0, r1
_0812269C:
	strb r0, [r5, 0x1]
_0812269E:
	mov r0, r10
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	cmp r0, 0x4
	bhi _081226AE
	b _081225AA
_081226AE:
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r1, =0x00002e68
	adds r0, r1
	movs r1, 0x5
	movs r2, 0
	bl sub_8122804
_081226BE:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8122580

	thumb_func_start sub_81226D8
sub_81226D8: @ 81226D8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	mov r8, r0
	movs r0, 0
	movs r1, 0
	str r0, [sp]
	str r1, [sp, 0x4]
	mov r0, r8
	bl sub_8122BB0
	lsls r0, 24
	cmp r0, 0
	beq _081226F8
	b _081227F2
_081226F8:
	ldr r4, =0x00000893
	adds r0, r4, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _08122744
	adds r0, r4, 0
	bl FlagSet
	ldr r0, =0x00000894
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _08122744
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	mov r0, r8
	ldrh r2, [r0]
	ldr r3, =0x00002e6c
	adds r0, r1, r3
	strh r2, [r0]
	mov r2, r8
	ldrh r0, [r2, 0x2]
	adds r3, 0x2
	adds r1, r3
	strh r0, [r1]
	movs r0, 0x1
	b _081227F4
	.pool
_08122744:
	mov r0, r8
	ldrh r1, [r0, 0x2]
	lsls r1, 16
	ldrh r0, [r0]
	orrs r0, r1
	str r0, [sp, 0x4]
	movs r1, 0x80
	lsls r1, 7
	ldr r0, [sp]
	orrs r0, r1
	str r0, [sp]
	mov r0, sp
	bl sub_8122B28
	movs r5, 0
_08122762:
	ldr r6, =gSaveBlock1Ptr
	lsls r4, r5, 3
	ldr r1, =0x00002e68
	adds r0, r4, r1
	ldr r1, [r6]
	adds r1, r0
	mov r0, sp
	movs r2, 0
	bl atk90_changetypestoenemyattacktype
	lsls r0, 24
	adds r7, r4, 0
	cmp r0, 0
	beq _081227D4
	movs r2, 0x4
	mov r12, r6
	cmp r2, r5
	bls _081227A6
	ldr r4, =0x00002e68
_08122788:
	ldr r0, [r6]
	lsls r3, r2, 3
	adds r0, r4
	adds r3, r0, r3
	subs r2, 0x1
	lsls r1, r2, 3
	adds r0, r1
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [r3]
	str r1, [r3, 0x4]
	lsls r2, 16
	lsrs r2, 16
	cmp r2, r5
	bhi _08122788
_081227A6:
	mov r3, r12
	ldr r2, [r3]
	ldr r0, =0x00002e68
	adds r2, r0
	adds r2, r7
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	str r0, [r2]
	str r1, [r2, 0x4]
	cmp r5, 0x4
	bne _081227C2
	mov r0, r8
	bl sub_80EDC60
_081227C2:
	movs r0, 0
	cmp r5, 0
	bne _081227F4
	movs r0, 0x1
	b _081227F4
	.pool
_081227D4:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x4
	bls _08122762
	ldr r2, [r6]
	ldr r1, =0x00002e88
	adds r2, r1
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	str r0, [r2]
	str r1, [r2, 0x4]
	mov r0, r8
	bl sub_80EDC60
_081227F2:
	movs r0, 0
_081227F4:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81226D8

	thumb_func_start sub_8122804
sub_8122804: @ 8122804
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	mov r9, r0
	lsls r1, 16
	lsrs r7, r1, 16
	lsls r2, 24
	lsrs r2, 24
	mov r10, r2
	movs r2, 0
	cmp r2, r7
	bcs _0812286C
_08122820:
	adds r1, r2, 0x1
	lsls r0, r1, 16
	lsrs r5, r0, 16
	mov r8, r1
	cmp r5, r7
	bcs _08122862
	lsls r0, r2, 3
	mov r1, r9
	adds r6, r1, r0
_08122832:
	lsls r0, r5, 3
	mov r1, r9
	adds r4, r1, r0
	adds r0, r4, 0
	adds r1, r6, 0
	mov r2, r10
	bl atk90_changetypestoenemyattacktype
	lsls r0, 24
	cmp r0, 0
	beq _08122858
	ldr r2, [r4]
	ldr r3, [r4, 0x4]
	ldr r0, [r6]
	ldr r1, [r6, 0x4]
	str r0, [r4]
	str r1, [r4, 0x4]
	str r2, [r6]
	str r3, [r6, 0x4]
_08122858:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r7
	bcc _08122832
_08122862:
	mov r1, r8
	lsls r0, r1, 16
	lsrs r2, r0, 16
	cmp r2, r7
	bcc _08122820
_0812286C:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8122804

	thumb_func_start sub_812287C
sub_812287C: @ 812287C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	mov r8, r0
	adds r6, r1, 0
	movs r4, 0x80
	lsls r4, 1
	adds r0, r4, 0
	bl Alloc
	mov r10, r0
	cmp r0, 0
	beq _08122980
	adds r0, r4, 0
	bl Alloc
	adds r7, r0, 0
	cmp r7, 0
	bne _081228B0
	mov r0, r10
	bl Free
	b _08122980
_081228B0:
	bl sub_8009FCC
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r5, 0
	cmp r5, r9
	bcs _081228DE
_081228C0:
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	add r0, r10
	adds r1, r5, 0
	muls r1, r6
	add r1, r8
	movs r2, 0x28
	bl memcpy
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r9
	bcc _081228C0
_081228DE:
	mov r4, r10
	mov r8, r7
	movs r3, 0
	movs r5, 0
	cmp r5, r9
	bcs _08122946
_081228EA:
	movs r6, 0
_081228EC:
	adds r0, r7, 0
	adds r1, r4, 0
	adds r2, r3, 0
	str r3, [sp]
	bl sub_8122C1C
	lsls r0, 16
	asrs r0, 16
	ldr r3, [sp]
	cmp r0, 0
	bge _08122918
	ldr r0, [r4]
	ldr r1, [r4, 0x4]
	mov r2, r8
	adds r2, 0x8
	mov r8, r2
	subs r2, 0x8
	stm r2!, {r0,r1}
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	b _08122930
_08122918:
	lsls r0, 3
	adds r2, r7, r0
	ldrb r1, [r2]
	lsls r1, 25
	ldrb r0, [r4]
	lsls r0, 25
	cmp r1, r0
	bcs _08122930
	ldr r0, [r4]
	ldr r1, [r4, 0x4]
	str r0, [r2]
	str r1, [r2, 0x4]
_08122930:
	adds r4, 0x8
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x4
	bls _081228EC
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r9
	bcc _081228EA
_08122946:
	adds r0, r7, 0
	adds r1, r3, 0
	movs r2, 0x2
	bl sub_8122804
	adds r4, r7, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002e68
	adds r1, r0
	mov r8, r1
	movs r5, 0
_0812295E:
	ldm r4!, {r0,r1}
	mov r2, r8
	adds r2, 0x8
	mov r8, r2
	subs r2, 0x8
	stm r2!, {r0,r1}
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x4
	bls _0812295E
	mov r0, r10
	bl Free
	adds r0, r7, 0
	bl Free
_08122980:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_812287C

	thumb_func_start sub_8122998
sub_8122998: @ 8122998
	push {lr}
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8004
	ldrh r1, [r0]
	lsls r1, 3
	ldr r0, [r2]
	adds r1, r0
	ldr r0, =gStringVar1
	ldr r2, =0x00002e6c
	adds r1, r2
	movs r2, 0x2
	movs r3, 0x1
	bl ConvertEasyChatWordsToString
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8122998

	thumb_func_start sub_81229C8
sub_81229C8: @ 81229C8
	push {r4,lr}
	movs r4, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r3, [r0]
	ldr r1, =0x00002e68
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 25
	lsrs r1, 25
	ldr r2, =0x00002e70
	adds r0, r3, r2
	ldrb r0, [r0]
	lsls r0, 25
	lsrs r0, 25
	subs r1, r0
	cmp r1, 0x1
	bgt _08122A0C
	ldr r1, =0x00002e69
	adds r0, r3, r1
	ldrb r1, [r0]
	movs r2, 0x40
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	bne _08122A0C
	ldr r1, =0x00002e71
	adds r0, r3, r1
	ldrb r1, [r0]
	adds r0, r2, 0
	ands r0, r1
	lsls r0, 24
	lsrs r0, 24
	negs r0, r0
	lsrs r4, r0, 31
_08122A0C:
	ldr r0, =gScriptResult
	strh r4, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81229C8

	thumb_func_start sub_8122A30
sub_8122A30: @ 8122A30
	ldr r2, =gScriptResult
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r3, =0x00002e6c
	adds r1, r0, r3
	adds r3, 0x2
	adds r0, r3
	ldrh r0, [r0]
	ldrh r1, [r1]
	adds r0, r1
	movs r1, 0x7
	ands r0, r1
	strh r0, [r2]
	bx lr
	.pool
	thumb_func_end sub_8122A30

	thumb_func_start atk90_changetypestoenemyattacktype
atk90_changetypestoenemyattacktype: @ 8122A58
	push {r4,r5,lr}
	adds r3, r0, 0
	adds r5, r1, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r2, 0
	cmp r2, 0x1
	beq _08122A9E
	cmp r2, 0x1
	bgt _08122A72
	cmp r2, 0
	beq _08122A78
	b _08122B1A
_08122A72:
	cmp r0, 0x2
	beq _08122ACA
	b _08122B1A
_08122A78:
	ldrb r0, [r3]
	lsls r1, r0, 25
	ldrb r0, [r5]
	lsls r0, 25
	cmp r1, r0
	bhi _08122B16
	cmp r1, r0
	bcc _08122AC6
	ldrh r0, [r3]
	lsls r3, r0, 18
	ldrh r0, [r5]
	lsls r2, r0, 18
	lsrs r1, r3, 25
	lsrs r0, r2, 25
	cmp r1, r0
	bhi _08122B16
	lsrs r1, r3, 25
	lsrs r0, r2, 25
	b _08122AC2
_08122A9E:
	ldrh r0, [r3]
	lsls r4, r0, 18
	ldrh r0, [r5]
	lsls r2, r0, 18
	lsrs r1, r4, 25
	lsrs r0, r2, 25
	cmp r1, r0
	bhi _08122B16
	lsrs r1, r4, 25
	lsrs r0, r2, 25
	cmp r1, r0
	bcc _08122AC6
	ldrb r0, [r3]
	lsls r1, r0, 25
	ldrb r0, [r5]
	lsls r0, 25
	cmp r1, r0
	bhi _08122B16
_08122AC2:
	cmp r1, r0
	bcs _08122B1A
_08122AC6:
	movs r0, 0
	b _08122B22
_08122ACA:
	ldrb r0, [r3]
	lsls r1, r0, 25
	ldrb r0, [r5]
	lsls r0, 25
	cmp r1, r0
	bhi _08122B16
	cmp r1, r0
	bcc _08122AC6
	ldrh r0, [r3]
	lsls r4, r0, 18
	ldrh r0, [r5]
	lsls r2, r0, 18
	lsrs r1, r4, 25
	lsrs r0, r2, 25
	cmp r1, r0
	bhi _08122B16
	lsrs r1, r4, 25
	lsrs r0, r2, 25
	cmp r1, r0
	bcc _08122AC6
	ldrh r1, [r3, 0x2]
	ldrh r0, [r5, 0x2]
	cmp r1, r0
	bhi _08122B16
	cmp r1, r0
	bcc _08122AC6
	ldrh r1, [r3, 0x4]
	ldrh r0, [r5, 0x4]
	cmp r1, r0
	bhi _08122B16
	cmp r1, r0
	bcc _08122AC6
	ldrh r1, [r3, 0x6]
	ldrh r0, [r5, 0x6]
	cmp r1, r0
	bhi _08122B16
	cmp r1, r0
	bcc _08122AC6
_08122B16:
	movs r0, 0x1
	b _08122B22
_08122B1A:
	bl Random
	movs r1, 0x1
	ands r0, r1
_08122B22:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end atk90_changetypestoenemyattacktype

	thumb_func_start sub_8122B28
sub_8122B28: @ 8122B28
	push {r4,r5,lr}
	adds r5, r0, 0
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x62
	bl __umodsi3
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x32
	bls _08122B6A
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x62
	bl __umodsi3
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x50
	bls _08122B6A
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x62
	bl __umodsi3
	lsls r0, 16
	lsrs r4, r0, 16
_08122B6A:
	adds r1, r4, 0
	adds r1, 0x1E
	movs r0, 0x7F
	ands r1, r0
	lsls r1, 7
	ldrh r2, [r5]
	ldr r0, =0xffffc07f
	ands r0, r2
	orrs r0, r1
	strh r0, [r5]
	bl Random
	lsls r0, 16
	lsrs r0, 16
	adds r1, r4, 0x1
	bl __modsi3
	adds r0, 0x1E
	movs r1, 0x7F
	ands r0, r1
	ldrb r2, [r5]
	movs r1, 0x80
	negs r1, r1
	ands r1, r2
	orrs r1, r0
	strb r1, [r5]
	bl Random
	strh r0, [r5, 0x2]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8122B28

	thumb_func_start sub_8122BB0
sub_8122BB0: @ 8122BB0
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r4, 0
	ldr r6, =gSaveBlock1Ptr
_08122BB8:
	lsls r1, r4, 3
	ldr r0, [r6]
	adds r1, r0
	ldr r0, =0x00002e6c
	adds r1, r0
	adds r0, r5, 0
	bl sub_8122BF0
	lsls r0, 24
	cmp r0, 0
	beq _08122BDC
	movs r0, 0x1
	b _08122BE8
	.pool
_08122BDC:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x4
	bls _08122BB8
	movs r0, 0
_08122BE8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8122BB0

	thumb_func_start sub_8122BF0
sub_8122BF0: @ 8122BF0
	push {r4,lr}
	adds r3, r0, 0
	adds r2, r1, 0
	movs r4, 0
_08122BF8:
	ldrh r1, [r3]
	ldrh r0, [r2]
	adds r2, 0x2
	adds r3, 0x2
	cmp r1, r0
	beq _08122C08
	movs r0, 0
	b _08122C14
_08122C08:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x1
	bls _08122BF8
	movs r0, 0x1
_08122C14:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8122BF0

	thumb_func_start sub_8122C1C
sub_8122C1C: @ 8122C1C
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r7, r1, 0
	lsls r2, 16
	lsrs r6, r2, 16
	movs r4, 0
	cmp r4, r6
	bge _08122C52
_08122C2C:
	adds r1, r5, 0x4
	adds r0, r7, 0x4
	bl sub_8122BF0
	lsls r0, 24
	cmp r0, 0
	beq _08122C40
	lsls r0, r4, 16
	asrs r0, 16
	b _08122C56
_08122C40:
	adds r5, 0x8
	lsls r0, r4, 16
	movs r1, 0x80
	lsls r1, 9
	adds r0, r1
	lsrs r4, r0, 16
	asrs r0, 16
	cmp r0, r6
	blt _08122C2C
_08122C52:
	movs r0, 0x1
	negs r0, r0
_08122C56:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8122C1C

	.align 2, 0 @ Don't pad with nop.