.include "asm/macros.inc" .include "global.inc" .text thumb_func_start FUN_0201137C FUN_0201137C: ; 0x0201137C push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 lsl r0, r6, #0xc ldr r2, [r4, #0x2c] add r7, r3, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul add r2, r0, #0x0 mov r0, #0x2 mov r3, #0x0 lsl r0, r0, #0xa add r0, r2, r0 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0xe1 asr r0, r0, #0xc lsl r1, r1, #0x2 strb r0, [r5, r1] ldrb r0, [r5, r1] sub r2, r6, r0 sub r0, r1, #0x4 str r4, [r5, r0] add r4, #0x23 add r0, r1, #0x2 ldrb r3, [r4, #0x0] sub r1, r1, #0x4 strb r3, [r5, r0] ldr r0, [sp, #0x28] add r3, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x4] ldr r0, [sp, #0x30] str r0, [sp, #0x8] ldr r0, [sp, #0x34] str r0, [sp, #0xc] ldr r1, [r5, r1] add r0, r5, #0x0 add r0, #0x4c add r1, #0x24 bl FUN_02010FD0 ldr r0, _020113E8 ; =0x00000385 mov r1, #0x0 strb r1, [r5, r0] add sp, #0x10 pop {r3-r7, pc} .balign 4 _020113E8: .word 0x00000385 thumb_func_start FUN_020113EC FUN_020113EC: ; 0x020113EC push {r4-r6, lr} sub sp, #0x8 add r4, r1, #0x0 ldr r1, _0201147C ; =0x00000385 add r5, r0, #0x0 ldrb r1, [r5, r1] mov r6, #0x0 cmp r1, #0x0 beq _02011408 cmp r1, #0x1 beq _02011460 cmp r1, #0x2 beq _02011474 b _02011476 _02011408: add r0, #0x4c bl FUN_020110BC cmp r0, #0x1 bne _02011476 ldr r2, _0201147C ; =0x00000385 ldrb r0, [r5, r2] sub r1, r2, #0x5 add r0, r0, #0x1 strb r0, [r5, r2] ldr r0, [r4, #0x10] sub r2, r2, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldrb r2, [r5, r2] ldr r1, [r5, r1] ldr r3, [r4, #0x8] add r0, r5, #0x0 bl FUN_0200FE20 mov r0, #0xe lsl r0, r0, #0x6 ldr r3, [r5, r0] add r0, r3, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x0 ldr r0, [r4, #0x18] bne _02011452 add r3, #0x23 ldrb r3, [r3, #0x0] ldr r2, [r4, #0x10] mov r1, #0x1 bl FUN_0200F6E4 b _02011476 _02011452: add r3, #0x23 ldrb r3, [r3, #0x0] ldr r2, [r4, #0x10] mov r1, #0x2 bl FUN_0200F6E4 b _02011476 _02011460: bl FUN_0200FE90 cmp r0, #0x1 bne _02011476 ldr r0, _0201147C ; =0x00000385 mov r6, #0x1 ldrb r1, [r5, r0] add r1, r1, #0x1 strb r1, [r5, r0] b _02011476 _02011474: mov r6, #0x1 _02011476: add r0, r6, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0201147C: .word 0x00000385 thumb_func_start FUN_02011480 FUN_02011480: ; 0x02011480 cmp r1, #0x0 ldr r1, _020114A4 ; =0xFFFF1FFF bne _02011496 mov r3, #0x1 lsl r3, r3, #0x1a ldr r2, [r3, #0x0] lsl r0, r0, #0xd and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr _02011496: ldr r3, _020114A8 ; =0x04001000 lsl r0, r0, #0xd ldr r2, [r3, #0x0] and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr .balign 4 _020114A4: .word 0xFFFF1FFF _020114A8: .word 0x04001000 thumb_func_start FUN_020114AC FUN_020114AC: ; 0x020114AC push {r3-r4} cmp r2, #0x0 bne _020114EE cmp r3, #0x0 bne _020114D2 ldr r2, _02011528 ; =0x04000048 ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _020114CA mov r0, #0x20 orr r2, r0 _020114CA: ldr r0, _02011528 ; =0x04000048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _020114D2: ldr r2, _0201152C ; =0x04001048 ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _020114E6 mov r0, #0x20 orr r2, r0 _020114E6: ldr r0, _0201152C ; =0x04001048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _020114EE: cmp r3, #0x0 ldr r2, _02011530 ; =0xFFFFC0FF bne _0201150E ldr r4, _02011528 ; =0x04000048 lsl r0, r0, #0x8 ldrh r3, [r4, #0x0] and r2, r3 orr r2, r0 cmp r1, #0x0 beq _02011506 lsr r0, r4, #0xd orr r2, r0 _02011506: ldr r0, _02011528 ; =0x04000048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _0201150E: ldr r4, _0201152C ; =0x04001048 lsl r0, r0, #0x8 ldrh r3, [r4, #0x0] and r2, r3 orr r2, r0 cmp r1, #0x0 beq _02011520 lsr r0, r4, #0xd orr r2, r0 _02011520: ldr r0, _0201152C ; =0x04001048 strh r2, [r0, #0x0] pop {r3-r4} bx lr .balign 4 _02011528: .word 0x04000048 _0201152C: .word 0x04001048 _02011530: .word 0xFFFFC0FF thumb_func_start FUN_02011534 FUN_02011534: ; 0x02011534 cmp r2, #0x0 bne _02011552 ldr r2, _0201156C ; =0x0400004A ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _0201154C mov r0, #0x20 orr r2, r0 _0201154C: ldr r0, _0201156C ; =0x0400004A strh r2, [r0, #0x0] bx lr _02011552: ldr r2, _02011570 ; =0x0400104A ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _02011566 mov r0, #0x20 orr r2, r0 _02011566: ldr r0, _02011570 ; =0x0400104A strh r2, [r0, #0x0] bx lr .balign 4 _0201156C: .word 0x0400004A _02011570: .word 0x0400104A thumb_func_start FUN_02011574 FUN_02011574: ; 0x02011574 push {r4-r5} add r4, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x8] cmp r3, #0x0 bne _020115D2 ldr r3, [sp, #0xc] cmp r3, #0x0 bne _020115AC lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011624 ; =0x04000040 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115AC: lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011628 ; =0x04001040 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115D2: ldr r3, [sp, #0xc] cmp r3, #0x0 bne _020115FE lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _0201162C ; =0x04000042 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115FE: lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011630 ; =0x04001042 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr .balign 4 _02011624: .word 0x04000040 _02011628: .word 0x04001040 _0201162C: .word 0x04000042 _02011630: .word 0x04001042 thumb_func_start FUN_02011634 FUN_02011634: ; 0x02011634 push {r4, lr} lsl r3, r2, #0x3 add r4, r0, r3 str r1, [r0, r3] str r2, [r4, #0x4] ldr r0, _0201164C ; =FUN_020116CC add r1, r4, #0x0 mov r2, #0x1 bl FUN_0200CA98 pop {r4, pc} nop _0201164C: .word FUN_020116CC thumb_func_start FUN_02011650 FUN_02011650: ; 0x02011650 push {r4-r6, lr} ldr r5, [sp, #0x10] add r0, #0x10 lsl r4, r5, #0x5 add r6, r0, r4 lsl r0, r3, #0x4 add r4, r6, r0 str r1, [r6, r0] str r2, [r4, #0x4] str r3, [r4, #0x8] ldr r0, _02011674 ; =FUN_020116E0 add r1, r4, #0x0 mov r2, #0x1 str r5, [r4, #0xc] bl FUN_0200CA98 pop {r4-r6, pc} nop _02011674: .word FUN_020116E0 thumb_func_start FUN_02011678 FUN_02011678: ; 0x02011678 push {r3-r5, lr} mov r4, #0xc add r0, #0x68 mul r4, r3 add r5, r0, r4 str r1, [r0, r4] str r2, [r5, #0x4] ldr r0, _02011694 ; =FUN_020116FC add r1, r5, #0x0 mov r2, #0x1 str r3, [r5, #0x8] bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 _02011694: .word FUN_020116FC thumb_func_start FUN_02011698 FUN_02011698: ; 0x02011698 push {r3-r7, lr} ldr r5, [sp, #0x20] add r7, r1, #0x0 add r0, #0x80 lsl r1, r5, #0x5 add r6, r0, r1 add r4, r2, #0x0 ldr r0, [sp, #0x1c] add r2, r3, #0x0 lsl r3, r0, #0x4 add r1, r6, r3 strh r7, [r6, r3] strh r4, [r1, #0x2] strh r2, [r1, #0x4] ldr r2, [sp, #0x18] strh r2, [r1, #0x6] str r0, [r1, #0x8] ldr r0, _020116C8 ; =FUN_02011714 mov r2, #0x1 str r5, [r1, #0xc] bl FUN_0200CA98 pop {r3-r7, pc} nop _020116C8: .word FUN_02011714 thumb_func_start FUN_020116CC FUN_020116CC: ; 0x020116CC push {r4, lr} add r4, r0, #0x0 ldmia r1!, {r0-r1} bl FUN_02011480 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_020116E0 FUN_020116E0: ; 0x020116E0 push {r4, lr} add r3, r1, #0x0 add r4, r0, #0x0 ldr r0, [r3, #0x0] ldr r1, [r3, #0x4] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_020114AC add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_020116FC FUN_020116FC: ; 0x020116FC push {r4, lr} add r2, r1, #0x0 add r4, r0, #0x0 ldr r0, [r2, #0x0] ldr r1, [r2, #0x4] ldr r2, [r2, #0x8] bl FUN_02011534 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_02011714 FUN_02011714: ; 0x02011714 push {r3-r5, lr} sub sp, #0x8 add r3, r1, #0x0 add r4, r0, #0x0 ldr r0, [r3, #0x8] mov r1, #0x2 str r0, [sp, #0x0] ldr r0, [r3, #0xc] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x0 mov r5, #0x6 ldrsh r0, [r3, r0] ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldrsh r3, [r3, r5] bl FUN_02011574 add r0, r4, #0x0 bl FUN_0200CAB4 add sp, #0x8 pop {r3-r5, pc} .balign 4