// processing 02074720 // 02074720 e92d4ff8 stmdb r13!, { r3-r11, r14 } // adding link: 02074720 -> 02074724 // processing 02074724 // 02074724 e24dd068 sub r13, r13, #0x68 // adding link: 02074724 -> 02074728 // processing 02074728 // 02074728 e5901000 ldr r1, [r0] // adding link: 02074728 -> 0207472c // processing 0207472c // 0207472c e1a04000 mov r4, r0 // adding link: 0207472c -> 02074730 // processing 02074730 // 02074730 e5911028 ldr r1, [r1, #0x28] // adding link: 02074730 -> 02074734 // processing 02074734 // 02074734 e3a05000 mov r5, #0x0 // adding link: 02074734 -> 02074738 // processing 02074738 // 02074738 e12fff31 blx r1 // adding jump: 02074738 -> 0207546c (sub=1) // adding link: 02074738 -> 0207473c // processing 0207546c // 0207546c e92d4ff8 stmdb r13!, { r3-r11, r14 } // adding link: 0207546c -> 02075470 // processing 0207473c // 0207473c e5940034 ldr r0, [r4, #0x34] // adding link: 0207473c -> 02074740 // processing 02075470 // 02075470 e1a09000 mov r9, r0 // adding link: 02075470 -> 02075474 // processing 02074740 // 02074740 e594101c ldr r1, [r4, #0x1c] // adding link: 02074740 -> 02074744 // processing 02075474 // 02075474 e5d97008 ldrb r7, [r9, #0x8] // adding link: 02075474 -> 02075478 // processing 02074744 // 02074744 e5903014 ldr r3, [r0, #0x14] // adding link: 02074744 -> 02074748 // processing 02075478 // 02075478 e3a05000 mov r5, #0x0 // adding link: 02075478 -> 0207547c // processing 02074748 // 02074748 e5902018 ldr r2, [r0, #0x18] // adding link: 02074748 -> 0207474c // processing 0207547c // 0207547c e3570000 cmp r7, #0x0 // adding link: 0207547c -> 02075480 // processing 0207474c // 0207474c e5911000 ldr r1, [r1] // adding link: 0207474c -> 02074750 // processing 02075480 // 02075480 01a00005 moveq r0, r5 // adding link: 02075480 -> 02075484 // processing 02074750 // 02074750 e0433002 sub r3, r3, r2 // adding link: 02074750 -> 02074754 // processing 02075484 // 02075484 08bd8ff8 ldmiaeq r13!, { r3-r11, r15 } // return // adding link: 02075484 -> 02075488 // processing 02074754 // 02074754 e5803014 str r3, [r0, #0x14] // adding link: 02074754 -> 02074758 // processing 02075488 // 02075488 e3570000 cmp r7, #0x0 // adding link: 02075488 -> 0207548c // processing 02074758 // 02074758 e58d1000 str r1, [r13] // adding link: 02074758 -> 0207475c // processing 0207548c // 0207548c e1a08005 mov r8, r5 // adding link: 0207548c -> 02075490 // processing 0207475c // 0207475c e590101c ldr r1, [r0, #0x1c] // adding link: 0207475c -> 02074760 // processing 02075490 // 02075490 da000067 ble 0x2075634 // adding jump: 02075490 -> 02075634 (sub=0) // adding link: 02075490 -> 02075494 // processing 02074760 // 02074760 e5902018 ldr r2, [r0, #0x18] // adding link: 02074760 -> 02074764 // processing 02075634 // 02075634 e3a00000 mov r0, #0x0 // adding link: 02075634 -> 02075638 // processing 02075494 // 02075494 e3a0b003 mov r11, #0x3 // adding link: 02075494 -> 02075498 // processing 02074764 // 02074764 e1a033c3 mov r3, r3, asr #0x7 // adding link: 02074764 -> 02074768 // processing 02075638 // 02075638 e5c90008 strb r0, [r9, #0x8] // adding link: 02075638 -> 0207563c // processing 02075498 // 02075498 e3e04102 mvn r4, #0x80000000 // adding link: 02075498 -> 0207549c // processing 02074768 // 02074768 e0812002 add r2, r1, r2 // adding link: 02074768 -> 0207476c // processing 0207563c // 0207563c e8bd8ff8 ldmia r13!, { r3-r11, r15 } // return // processing 0207549c // 0207549c e1a0600b mov r6, r11 // adding link: 0207549c -> 020754a0 // processing 0207476c // 0207476c e580201c str r2, [r0, #0x1c] // adding link: 0207476c -> 02074770 // processing 020754a0 // 020754a0 e3a0a001 mov r10, #0x1 // adding link: 020754a0 -> 020754a4 // processing 02074770 // 02074770 e5907024 ldr r7, [r0, #0x24] // adding link: 02074770 -> 02074774 // processing 020754a4 // 020754a4 e5990004 ldr r0, [r9, #0x4] // adding link: 020754a4 -> 020754a8 // processing 02074774 // 02074774 e08323c2 add r2, r3, r2, asr #0x7 // adding link: 02074774 -> 02074778 // processing 020754a8 // 020754a8 e0801188 add r1, r0, r8, lsl #0x3 // adding link: 020754a8 -> 020754ac // processing 02074778 // 02074778 e3170101 tst r7, #0x40000000 // adding link: 02074778 -> 0207477c // processing 020754ac // 020754ac e7d00188 ldrb r0, [r0, r8, lsl #0x3] // adding link: 020754ac -> 020754b0 // processing 0207477c // 0207477c 059f6cac ldreq r6, [r15, #0xcac] ; 0x2075430 // adding link: 0207477c -> 02074780 // processing 020754b0 // 020754b0 e3500015 cmp r0, #0x15 // adding link: 020754b0 -> 020754b4 // processing 02074780 // 02074780 00276006 eoreq r6, r7, r6 // adding link: 02074780 -> 02074784 // processing 020754b4 // 020754b4 ca00000c bgt 0x20754ec // adding jump: 020754b4 -> 020754ec (sub=0) // adding link: 020754b4 -> 020754b8 // processing 02074784 // 02074784 01a06086 moveq r6, r6, lsl #0x1 // adding link: 02074784 -> 02074788 // processing 020754ec // 020754ec e3500018 cmp r0, #0x18 // adding link: 020754ec -> 020754f0 // processing 020754b8 // 020754b8 aa00005a bge 0x2075628 // adding jump: 020754b8 -> 02075628 (sub=0) // adding link: 020754b8 -> 020754bc // processing 02074788 // 02074788 03866001 orreq r6, r6, #0x1 // adding link: 02074788 -> 0207478c // processing 020754f0 // 020754f0 ca000001 bgt 0x20754fc // adding jump: 020754f0 -> 020754fc (sub=0) // adding link: 020754f0 -> 020754f4 // processing 02075628 // 02075628 e2888001 add r8, r8, #0x1 // adding link: 02075628 -> 0207562c // processing 020754bc // 020754bc e3500005 cmp r0, #0x5 // adding link: 020754bc -> 020754c0 // processing 0207478c // 0207478c 11a06087 movne r6, r7, lsl #0x1 // adding link: 0207478c -> 02074790 // processing 020754fc // 020754fc e2400019 sub r0, r0, #0x19 // adding link: 020754fc -> 02075500 // processing 020754f4 // 020754f4 0a00002f beq 0x20755b8 // adding jump: 020754f4 -> 020755b8 (sub=0) // adding link: 020754f4 -> 020754f8 // processing 0207562c // 0207562c e1580007 cmp r8, r7 // adding link: 0207562c -> 02075630 // processing 020754c0 // 020754c0 ca000058 bgt 0x2075628 // adding jump: 020754c0 -> 02075628 (sub=0) // adding link: 020754c0 -> 020754c4 // processing 02074790 // 02074790 e5806024 str r6, [r0, #0x24] // adding link: 02074790 -> 02074794 // processing 02075500 // 02075500 e3500005 cmp r0, #0x5 // adding link: 02075500 -> 02075504 // processing 020755b8 // 020755b8 e5990034 ldr r0, [r9, #0x34] // adding link: 020755b8 -> 020755bc // processing 020754f8 // 020754f8 ea00004a b 0x2075628 // adding jump: 020754f8 -> 02075628 (sub=0) // processing 02075630 // 02075630 baffff9b blt 0x20754a4 // adding jump: 02075630 -> 020754a4 (sub=0) // adding link: 02075630 -> 02075634 // processing 020754c4 // 020754c4 e3500000 cmp r0, #0x0 // adding link: 020754c4 -> 020754c8 // processing 02074794 // 02074794 e590601c ldr r6, [r0, #0x1c] // adding link: 02074794 -> 02074798 // processing 02075504 // 02075504 908ff100 addls r15, r15, r0, lsl #0x2 // foudn addls sha=2 rm=0 // adding jump: 02075504 -> 02075508 (sub=0) // target=02075628 // adding jump: 02075504 -> 02075628 (sub=0) // target=02075628 // adding jump: 02075504 -> 02075628 (sub=0) // target=02075628 // adding jump: 02075504 -> 02075628 (sub=0) // target=020755e4 // adding jump: 02075504 -> 020755e4 (sub=0) // target=020755d4 // adding jump: 02075504 -> 020755d4 (sub=0) // target=02075608 // adding jump: 02075504 -> 02075608 (sub=0) // processing 020755bc // 020755bc e5804014 str r4, [r0, #0x14] // adding link: 020755bc -> 020755c0 // processing 020754c8 // 020754c8 a08ff100 addge r15, r15, r0, lsl #0x2 // foudn addls sha=2 rm=0 // adding jump: 020754c8 -> 020754cc (sub=0) // target=02075628 // adding jump: 020754c8 -> 02075628 (sub=0) // target=02075524 // adding jump: 020754c8 -> 02075524 (sub=0) // target=02075534 // adding jump: 020754c8 -> 02075534 (sub=0) // target=02075628 // adding jump: 020754c8 -> 02075628 (sub=0) // target=02075588 // adding jump: 020754c8 -> 02075588 (sub=0) // target=020755a0 // adding jump: 020754c8 -> 020755a0 (sub=0) // target=02075628 // adding jump: 020754c8 -> 02075628 (sub=0) // processing 02074798 // 02074798 e0211006 eor r1, r1, r6 // adding link: 02074798 -> 0207479c // processing 02075508 // 02075508 ea000046 b 0x2075628 // adding jump: 02075508 -> 02075628 (sub=0) // processing 020755e4 // 020755e4 e1d905b0 ldrh r0, [r9, #0x50] // adding link: 020755e4 -> 020755e8 // processing 020755d4 // 020755d4 e3a00001 mov r0, #0x1 // adding link: 020755d4 -> 020755d8 // processing 02075608 // 02075608 e5990034 ldr r0, [r9, #0x34] // adding link: 02075608 -> 0207560c // processing 020755c0 // 020755c0 e580501c str r5, [r0, #0x1c] // adding link: 020755c0 -> 020755c4 // processing 020754cc // 020754cc ea000055 b 0x2075628 // adding jump: 020754cc -> 02075628 (sub=0) // processing 02075524 // 02075524 e5990030 ldr r0, [r9, #0x30] // adding link: 02075524 -> 02075528 // processing 02075534 // 02075534 e1d110d4 ldrsb r1, [r1, #0x4] // adding link: 02075534 -> 02075538 // processing 02075588 // 02075588 e5912004 ldr r2, [r1, #0x4] // adding link: 02075588 -> 0207558c // processing 020755a0 // 020755a0 e5991030 ldr r1, [r9, #0x30] // adding link: 020755a0 -> 020755a4 // processing 0207479c // 0207479c e1b01fc1 movs r1, r1, asr #0x1f // adding link: 0207479c -> 020747a0 // processing 020755e8 // 020755e8 e3500000 cmp r0, #0x0 // adding link: 020755e8 -> 020755ec // processing 020755d8 // 020755d8 e1c905b0 strh r0, [r9, #0x50] // adding link: 020755d8 -> 020755dc // processing 0207560c // 0207560c e5804014 str r4, [r0, #0x14] // adding link: 0207560c -> 02075610 // processing 020755c4 // 020755c4 e5990030 ldr r0, [r9, #0x30] // adding link: 020755c4 -> 020755c8 // processing 02075528 // 02075528 e5c06004 strb r6, [r0, #0x4] // adding link: 02075528 -> 0207552c // processing 02075538 // 02075538 e599003c ldr r0, [r9, #0x3c] // adding link: 02075538 -> 0207553c // processing 0207558c // 0207558c e5990034 ldr r0, [r9, #0x34] // adding link: 0207558c -> 02075590 // processing 020755a4 // 020755a4 e3a00003 mov r0, #0x3 // adding link: 020755a4 -> 020755a8 // processing 020747a0 // 020747a0 15901024 ldrne r1, [r0, #0x24] // adding link: 020747a0 -> 020747a4 // processing 020755ec // 020755ec 15991034 ldrne r1, [r9, #0x34] // adding link: 020755ec -> 020755f0 // processing 020755dc // 020755dc e1c905b2 strh r0, [r9, #0x52] // adding link: 020755dc -> 020755e0 // processing 02075610 // 02075610 e580501c str r5, [r0, #0x1c] // adding link: 02075610 -> 02075614 // processing 020755c8 // 020755c8 e580500c str r5, [r0, #0xc] // adding link: 020755c8 -> 020755cc // processing 0207552c // 0207552c e5c0a005 strb r10, [r0, #0x5] // adding link: 0207552c -> 02075530 // processing 0207553c // 0207553c e1a02005 mov r2, r5 // adding link: 0207553c -> 02075540 // processing 02075590 // 02075590 e589202c str r2, [r9, #0x2c] // adding link: 02075590 -> 02075594 // processing 020755a8 // 020755a8 e5c10004 strb r0, [r1, #0x4] // adding link: 020755a8 -> 020755ac // processing 020747a4 // 020747a4 e3e064ff mvn r6, #0xff000000 // adding link: 020747a4 -> 020747a8 // processing 020755f0 // 020755f0 11c955b0 strhne r5, [r9, #0x50] // adding link: 020755f0 -> 020755f4 // processing 020755e0 // 020755e0 ea000010 b 0x2075628 // adding jump: 020755e0 -> 02075628 (sub=0) // processing 02075614 // 02075614 e5990030 ldr r0, [r9, #0x30] // adding link: 02075614 -> 02075618 // processing 020755cc // 020755cc e5805008 str r5, [r0, #0x8] // adding link: 020755cc -> 020755d0 // processing 02075530 // 02075530 ea00003c b 0x2075628 // adding jump: 02075530 -> 02075628 (sub=0) // processing 02075540 // 02075540 ebfff299 bl 0x2071fac // adding jump: 02075540 -> 02071fac (sub=1) // adding link: 02075540 -> 02075544 // processing 02075594 // 02075594 e5911004 ldr r1, [r1, #0x4] // adding link: 02075594 -> 02075598 // processing 020755ac // 020755ac e3a00001 mov r0, #0x1 // adding link: 020755ac -> 020755b0 // processing 020747a8 // 020747a8 11a013c1 movne r1, r1, asr #0x7 // adding link: 020747a8 -> 020747ac // processing 020755f4 // 020755f4 15d10028 ldrbne r0, [r1, #0x28] // adding link: 020755f4 -> 020755f8 // processing 02075618 // 02075618 e580500c str r5, [r0, #0xc] // adding link: 02075618 -> 0207561c // processing 020755d0 // 020755d0 ea000014 b 0x2075628 // adding jump: 020755d0 -> 02075628 (sub=0) // processing 02071fac // 02071fac e5900018 ldr r0, [r0, #0x18] // adding link: 02071fac -> 02071fb0 // processing 02075544 // 02075544 e1d905b2 ldrh r0, [r9, #0x52] // adding link: 02075544 -> 02075548 // processing 02075598 // 02075598 eb00014d bl 0x2075ad4 // adding jump: 02075598 -> 02075ad4 (sub=1) // adding link: 02075598 -> 0207559c // processing 020755b0 // 020755b0 e5c10005 strb r0, [r1, #0x5] // adding link: 020755b0 -> 020755b4 // processing 020747ac // 020747ac 15801000 strne r1, [r0] // adding link: 020747ac -> 020747b0 // processing 020755f8 // 020755f8 13500000 cmpne r0, #0x0 // adding link: 020755f8 -> 020755fc // processing 0207561c // 0207561c e5805008 str r5, [r0, #0x8] // adding link: 0207561c -> 02075620 // processing 02071fb0 // 02071fb0 e59fc000 ldr r12, [r15] ; 0x2071fb8 // adding link: 02071fb0 -> 02071fb4 // processing 02075548 // 02075548 e3500000 cmp r0, #0x0 // adding link: 02075548 -> 0207554c // processing 02075ad4 // 02075ad4 e580102c str r1, [r0, #0x2c] // adding link: 02075ad4 -> 02075ad8 // processing 0207559c // 0207559c ea000021 b 0x2075628 // adding jump: 0207559c -> 02075628 (sub=0) // processing 020755b4 // 020755b4 ea00001b b 0x2075628 // adding jump: 020755b4 -> 02075628 (sub=0) // processing 020747b0 // 020747b0 e1a01003 mov r1, r3 // adding link: 020747b0 -> 020747b4 // processing 020755fc // 020755fc 15814014 strne r4, [r1, #0x14] // adding link: 020755fc -> 02075600 // processing 02075620 // 02075620 e5990040 ldr r0, [r9, #0x40] // adding link: 02075620 -> 02075624 // processing 02071fb4 // 02071fb4 e12fff1c bx r12 // processing 0207554c // 0207554c 0a000007 beq 0x2075570 // adding jump: 0207554c -> 02075570 (sub=0) // adding link: 0207554c -> 02075550 // processing 02075ad8 // 02075ad8 e1d013f0 ldrsh r1, [r0, #0x30] // adding link: 02075ad8 -> 02075adc // processing 020747b4 // 020747b4 e3530000 cmp r3, #0x0 // adding link: 020747b4 -> 020747b8 // processing 02075600 // 02075600 1581501c strne r5, [r1, #0x1c] // adding link: 02075600 -> 02075604 // processing 02075624 // 02075624 ebfff1fa bl 0x2071e14 // adding jump: 02075624 -> 02071e14 (sub=1) // adding link: 02075624 -> 02075628 // processing 02075570 // 02075570 e5991030 ldr r1, [r9, #0x30] // adding link: 02075570 -> 02075574 // processing 02075550 // 02075550 e5990030 ldr r0, [r9, #0x30] // adding link: 02075550 -> 02075554 // processing 02075adc // 02075adc e59fc000 ldr r12, [r15] ; 0x2075ae4 // adding link: 02075adc -> 02075ae0 // processing 020747b8 // 020747b8 d2631000 rsble r1, r3, #0x0 // adding link: 020747b8 -> 020747bc // processing 02075604 // 02075604 ea000007 b 0x2075628 // adding jump: 02075604 -> 02075628 (sub=0) // processing 02071e14 // 02071e14 e59f100c ldr r1, [r15, #0xc] ; 0x2071e28 // adding link: 02071e14 -> 02071e18 // processing 02075574 // 02075574 e1d100d5 ldrsb r0, [r1, #0x5] // adding link: 02075574 -> 02075578 // processing 02075554 // 02075554 e1c955b2 strh r5, [r9, #0x52] // adding link: 02075554 -> 02075558 // processing 02075ae0 // 02075ae0 e12fff1c bx r12 // processing 020747bc // 020747bc e1a01081 mov r1, r1, lsl #0x1 // adding link: 020747bc -> 020747c0 // processing 02071e18 // 02071e18 e3a02000 mov r2, #0x0 // adding link: 02071e18 -> 02071e1c // processing 02075578 // 02075578 e3500000 cmp r0, #0x0 // adding link: 02075578 -> 0207557c // processing 02075558 // 02075558 e580500c str r5, [r0, #0xc] // adding link: 02075558 -> 0207555c // processing 020747c0 // 020747c0 e2811001 add r1, r1, #0x1 // adding link: 020747c0 -> 020747c4 // processing 02071e1c // 02071e1c e5802014 str r2, [r0, #0x14] // adding link: 02071e1c -> 02071e20 // processing 0207557c // 0207557c 15c15004 strbne r5, [r1, #0x4] // adding link: 0207557c -> 02075580 // processing 0207555c // 0207555c e5805008 str r5, [r0, #0x8] // adding link: 0207555c -> 02075560 // processing 020747c4 // 020747c4 e5803004 str r3, [r0, #0x4] // adding link: 020747c4 -> 020747c8 // processing 02071e20 // 02071e20 e5801018 str r1, [r0, #0x18] // adding link: 02071e20 -> 02071e24 // processing 02075580 // 02075580 e5c15005 strb r5, [r1, #0x5] // adding link: 02075580 -> 02075584 // processing 02075560 // 02075560 e5991030 ldr r1, [r9, #0x30] // adding link: 02075560 -> 02075564 // processing 020747c8 // 020747c8 e28134ff add r3, r1, #0xff000000 // adding link: 020747c8 -> 020747cc // processing 02071e24 // 02071e24 e12fff1e bx r14 // processing 02075584 // 02075584 ea000027 b 0x2075628 // adding jump: 02075584 -> 02075628 (sub=0) // processing 02075564 // 02075564 e3a00001 mov r0, #0x1 // adding link: 02075564 -> 02075568 // processing 020747cc // 020747cc e2821401 add r1, r2, #0x1000000 // adding link: 020747cc -> 020747d0 // processing 02075568 // 02075568 e5c1b004 strb r11, [r1, #0x4] // adding link: 02075568 -> 0207556c // processing 020747d0 // 020747d0 e5803008 str r3, [r0, #0x8] // adding link: 020747d0 -> 020747d4 // processing 0207556c // 0207556c e5c10005 strb r0, [r1, #0x5] // adding link: 0207556c -> 02075570 // processing 020747d4 // 020747d4 e1a010c1 mov r1, r1, asr #0x1 // adding link: 020747d4 -> 020747d8 // processing 020747d8 // 020747d8 e580100c str r1, [r0, #0xc] // adding link: 020747d8 -> 020747dc // processing 020747dc // 020747dc e5940030 ldr r0, [r4, #0x30] // adding link: 020747dc -> 020747e0 // processing 020747e0 // 020747e0 e1d010d4 ldrsb r1, [r0, #0x4] // adding link: 020747e0 -> 020747e4 // processing 020747e4 // 020747e4 e3510003 cmp r1, #0x3 // adding link: 020747e4 -> 020747e8 // processing 020747e8 // 020747e8 908ff101 addls r15, r15, r1, lsl #0x2 // foudn addls sha=2 rm=1 // adding jump: 020747e8 -> 020747ec (sub=0) // target=02074800 // adding jump: 020747e8 -> 02074800 (sub=0) // target=02074878 // adding jump: 020747e8 -> 02074878 (sub=0) // target=020748bc // adding jump: 020747e8 -> 020748bc (sub=0) // target=020748cc // adding jump: 020747e8 -> 020748cc (sub=0) // processing 020747ec // 020747ec ea000043 b 0x2074900 // adding jump: 020747ec -> 02074900 (sub=0) // processing 02074800 // 02074800 e590800c ldr r8, [r0, #0xc] // adding link: 02074800 -> 02074804 // processing 02074878 // 02074878 e5902000 ldr r2, [r0] // adding link: 02074878 -> 0207487c // processing 020748bc // 020748bc e5901000 ldr r1, [r0] // adding link: 020748bc -> 020748c0 // processing 020748cc // 020748cc e590200c ldr r2, [r0, #0xc] // adding link: 020748cc -> 020748d0 // processing 02074900 // 02074900 e5940038 ldr r0, [r4, #0x38] // adding link: 02074900 -> 02074904 // processing 02074804 // 02074804 e59f2c28 ldr r2, [r15, #0xc28] ; 0x2075434 // adding link: 02074804 -> 02074808 // processing 0207487c // 0207487c e5905008 ldr r5, [r0, #0x8] // adding link: 0207487c -> 02074880 // processing 020748c0 // 020748c0 e5911008 ldr r1, [r1, #0x8] // adding link: 020748c0 -> 020748c4 // processing 020748d0 // 020748d0 e3a01042 mov r1, #0x42 // adding link: 020748d0 -> 020748d4 // processing 02074904 // 02074904 e590200c ldr r2, [r0, #0xc] // adding link: 02074904 -> 02074908 // processing 02074808 // 02074808 e3a01070 mov r1, #0x70 // adding link: 02074808 -> 0207480c // processing 02074880 // 02074880 e5921008 ldr r1, [r2, #0x8] // adding link: 02074880 -> 02074884 // processing 020748c4 // 020748c4 e5801008 str r1, [r0, #0x8] // adding link: 020748c4 -> 020748c8 // processing 020748d4 // 020748d4 e0010192 mul r1, r2, r1 // adding link: 020748d4 -> 020748d8 // processing 02074908 // 02074908 e8900022 ldmia r0, { r1, r5 } // adding link: 02074908 -> 0207490c // processing 0207480c // 0207480c e0423008 sub r3, r2, r8 // adding link: 0207480c -> 02074810 // processing 02074884 // 02074884 e5922004 ldr r2, [r2, #0x4] // adding link: 02074884 -> 02074888 // processing 020748c8 // 020748c8 ea00000c b 0x2074900 // adding jump: 020748c8 -> 02074900 (sub=0) // processing 020748d8 // 020748d8 e1a013c1 mov r1, r1, asr #0x7 // adding link: 020748d8 -> 020748dc // processing 0207490c // 0207490c e0411005 sub r1, r1, r5 // adding link: 0207490c -> 02074910 // processing 02074810 // 02074810 e0867193 umull r7, r6, r3, r1 // adding link: 02074810 -> 02074814 // processing 02074888 // 02074888 e0411005 sub r1, r1, r5 // adding link: 02074888 -> 0207488c // processing 020748dc // 020748dc e580100c str r1, [r0, #0xc] // adding link: 020748dc -> 020748e0 // processing 02074910 // 02074910 e0c13192 smull r3, r1, r2, r1 // adding link: 02074910 -> 02074914 // processing 02074814 // 02074814 e0266593 mla r6, r3, r5, r6 // adding link: 02074814 -> 02074818 // processing 0207488c // 0207488c e0c13192 smull r3, r1, r2, r1 // adding link: 0207488c -> 02074890 // processing 020748e0 // 020748e0 e5901000 ldr r1, [r0] // adding link: 020748e0 -> 020748e4 // processing 02074914 // 02074914 e1a027a3 mov r2, r3, lsr #0xf // adding link: 02074914 -> 02074918 // processing 02074818 // 02074818 e1a03fc3 mov r3, r3, asr #0x1f // adding link: 02074818 -> 0207481c // processing 02074890 // 02074890 e1a02c23 mov r2, r3, lsr #0x18 // adding link: 02074890 -> 02074894 // processing 020748e4 // 020748e4 e5902008 ldr r2, [r0, #0x8] // adding link: 020748e4 -> 020748e8 // processing 02074918 // 02074918 e1822881 orr r2, r2, r1, lsl #0x11 // adding link: 02074918 -> 0207491c // processing 0207481c // 0207481c e0266193 mla r6, r3, r1, r6 // adding link: 0207481c -> 02074820 // processing 02074894 // 02074894 e1822401 orr r2, r2, r1, lsl #0x8 // adding link: 02074894 -> 02074898 // processing 020748e8 // 020748e8 e591100c ldr r1, [r1, #0xc] // adding link: 020748e8 -> 020748ec // processing 0207491c // 0207491c e0851002 add r1, r5, r2 // adding link: 0207491c -> 02074920 // processing 02074820 // 02074820 e1a013a7 mov r1, r7, lsr #0x7 // adding link: 02074820 -> 02074824 // processing 02074898 // 02074898 e0852002 add r2, r5, r2 // adding link: 02074898 -> 0207489c // processing 020748ec // 020748ec e0461001 sub r1, r6, r1 // adding link: 020748ec -> 020748f0 // processing 02074920 // 02074920 e5801004 str r1, [r0, #0x4] // adding link: 02074920 -> 02074924 // processing 02074824 // 02074824 e1811c86 orr r1, r1, r6, lsl #0x19 // adding link: 02074824 -> 02074828 // processing 0207489c // 0207489c e5802008 str r2, [r0, #0x8] // adding link: 0207489c -> 020748a0 // processing 020748f0 // 020748f0 e0c13192 smull r3, r1, r2, r1 // adding link: 020748f0 -> 020748f4 // processing 02074924 // 02074924 e5d01010 ldrb r1, [r0, #0x10] // adding link: 02074924 -> 02074928 // processing 02074828 // 02074828 e0881001 add r1, r8, r1 // adding link: 02074828 -> 0207482c // processing 020748a0 // 020748a0 e5901000 ldr r1, [r0] // adding link: 020748a0 -> 020748a4 // processing 020748f4 // 020748f4 e1a02c23 mov r2, r3, lsr #0x18 // adding link: 020748f4 -> 020748f8 // processing 02074928 // 02074928 e5902000 ldr r2, [r0] // adding link: 02074928 -> 0207492c // processing 0207482c // 0207482c e580100c str r1, [r0, #0xc] // adding link: 0207482c -> 02074830 // processing 020748a4 // 020748a4 e5911008 ldr r1, [r1, #0x8] // adding link: 020748a4 -> 020748a8 // processing 020748f8 // 020748f8 e1822401 orr r2, r2, r1, lsl #0x8 // adding link: 020748f8 -> 020748fc // processing 0207492c // 0207492c e3510000 cmp r1, #0x0 // adding link: 0207492c -> 02074930 // processing 02074830 // 02074830 e1510002 cmp r1, r2 // adding link: 02074830 -> 02074834 // processing 020748a8 // 020748a8 e1520001 cmp r2, r1 // adding link: 020748a8 -> 020748ac // processing 020748fc // 020748fc e5802008 str r2, [r0, #0x8] // adding link: 020748fc -> 02074900 // processing 02074930 // 02074930 e5901004 ldr r1, [r0, #0x4] // adding link: 02074930 -> 02074934 // processing 02074834 // 02074834 c580200c strgt r2, [r0, #0xc] // adding link: 02074834 -> 02074838 // processing 020748ac // 020748ac b5801008 strlt r1, [r0, #0x8] // adding link: 020748ac -> 020748b0 // processing 02074934 // 02074934 0a000002 beq 0x2074944 // adding jump: 02074934 -> 02074944 (sub=0) // adding link: 02074934 -> 02074938 // processing 02074838 // 02074838 e5902000 ldr r2, [r0] // adding link: 02074838 -> 0207483c // processing 020748b0 // 020748b0 b3a01002 movlt r1, #0x2 // adding link: 020748b0 -> 020748b4 // processing 02074944 // 02074944 e1510002 cmp r1, r2 // adding link: 02074944 -> 02074948 // processing 02074938 // 02074938 e1510002 cmp r1, r2 // adding link: 02074938 -> 0207493c // processing 0207483c // 0207483c e5905008 ldr r5, [r0, #0x8] // adding link: 0207483c -> 02074840 // processing 020748b4 // 020748b4 b5c01004 strblt r1, [r0, #0x4] // adding link: 020748b4 -> 020748b8 // processing 02074948 // 02074948 b5802004 strlt r2, [r0, #0x4] // adding link: 02074948 -> 0207494c // processing 0207493c // 0207493c c5802004 strgt r2, [r0, #0x4] // adding link: 0207493c -> 02074940 // processing 02074840 // 02074840 e59f1bf0 ldr r1, [r15, #0xbf0] ; 0x2075438 // adding link: 02074840 -> 02074844 // processing 020748b8 // 020748b8 ea000010 b 0x2074900 // adding jump: 020748b8 -> 02074900 (sub=0) // processing 0207494c // 0207494c e594b03c ldr r11, [r4, #0x3c] // adding link: 0207494c -> 02074950 // processing 02074940 // 02074940 ea000001 b 0x207494c // adding jump: 02074940 -> 0207494c (sub=0) // processing 02074844 // 02074844 e5922000 ldr r2, [r2] // adding link: 02074844 -> 02074848 // processing 02074950 // 02074950 e59fcae4 ldr r12, [r15, #0xae4] ; 0x207543c // adding link: 02074950 -> 02074954 // processing 02074848 // 02074848 e0411005 sub r1, r1, r5 // adding link: 02074848 -> 0207484c // processing 02074954 // 02074954 e59b0040 ldr r0, [r11, #0x40] // adding link: 02074954 -> 02074958 // processing 0207484c // 0207484c e0c23291 smull r3, r2, r1, r2 // adding link: 0207484c -> 02074850 // processing 02074958 // 02074958 e59b2010 ldr r2, [r11, #0x10] // adding link: 02074958 -> 0207495c // processing 02074850 // 02074850 e1a01c23 mov r1, r3, lsr #0x18 // adding link: 02074850 -> 02074854 // processing 0207495c // 0207495c e1a05800 mov r5, r0, lsl #0x10 // adding link: 0207495c -> 02074960 // processing 02074854 // 02074854 e1811402 orr r1, r1, r2, lsl #0x8 // adding link: 02074854 -> 02074858 // processing 02074960 // 02074960 e59b104c ldr r1, [r11, #0x4c] // adding link: 02074960 -> 02074964 // processing 02074858 // 02074858 e0852001 add r2, r5, r1 // adding link: 02074858 -> 0207485c // processing 02074964 // 02074964 e59b0044 ldr r0, [r11, #0x44] // adding link: 02074964 -> 02074968 // processing 0207485c // 0207485c e3e014ff mvn r1, #0xff000000 // adding link: 0207485c -> 02074860 // processing 02074968 // 02074968 e0823101 add r3, r2, r1, lsl #0x2 // adding link: 02074968 -> 0207496c // processing 02074860 // 02074860 e5802008 str r2, [r0, #0x8] // adding link: 02074860 -> 02074864 // processing 0207496c // 0207496c e59b1050 ldr r1, [r11, #0x50] // adding link: 0207496c -> 02074970 // processing 02074864 // 02074864 e1520001 cmp r2, r1 // adding link: 02074864 -> 02074868 // processing 02074970 // 02074970 e1a00800 mov r0, r0, lsl #0x10 // adding link: 02074970 -> 02074974 // processing 02074868 // 02074868 c5801008 strgt r1, [r0, #0x8] // adding link: 02074868 -> 0207486c // processing 02074974 // 02074974 e0821101 add r1, r2, r1, lsl #0x2 // adding link: 02074974 -> 02074978 // processing 0207486c // 0207486c c3a01001 movgt r1, #0x1 // adding link: 0207486c -> 02074870 // processing 02074978 // 02074978 e5928008 ldr r8, [r2, #0x8] // adding link: 02074978 -> 0207497c // processing 02074870 // 02074870 c5c01004 strbgt r1, [r0, #0x4] // adding link: 02074870 -> 02074874 // processing 0207497c // 0207497c e59b2028 ldr r2, [r11, #0x28] // adding link: 0207497c -> 02074980 // processing 02074874 // 02074874 ea000021 b 0x2074900 // adding jump: 02074874 -> 02074900 (sub=0) // processing 02074980 // 02074980 e59b7014 ldr r7, [r11, #0x14] // adding link: 02074980 -> 02074984 // processing 02074984 // 02074984 e1a05845 mov r5, r5, asr #0x10 // adding link: 02074984 -> 02074988 // processing 02074988 // 02074988 e59b6024 ldr r6, [r11, #0x24] // adding link: 02074988 -> 0207498c // processing 0207498c // 0207498c e7975105 ldr r5, [r7, r5, lsl #0x2] // adding link: 0207498c -> 02074990 // processing 02074990 // 02074990 e5933008 ldr r3, [r3, #0x8] // adding link: 02074990 -> 02074994 // processing 02074994 // 02074994 e59b9020 ldr r9, [r11, #0x20] // adding link: 02074994 -> 02074998 // processing 02074998 // 02074998 e0853003 add r3, r5, r3 // adding link: 02074998 -> 0207499c // processing 0207499c // 0207499c e1a00840 mov r0, r0, asr #0x10 // adding link: 0207499c -> 020749a0 // processing 020749a0 // 020749a0 e79c5106 ldr r5, [r12, r6, lsl #0x2] // adding link: 020749a0 -> 020749a4 // processing 020749a4 // 020749a4 e1a034c3 mov r3, r3, asr #0x9 // adding link: 020749a4 -> 020749a8 // processing 020749a8 // 020749a8 e0030395 mul r3, r5, r3 // adding link: 020749a8 -> 020749ac // processing 020749ac // 020749ac e7976100 ldr r6, [r7, r0, lsl #0x2] // adding link: 020749ac -> 020749b0 // processing 020749b0 // 020749b0 e5911008 ldr r1, [r1, #0x8] // adding link: 020749b0 -> 020749b4 // processing 020749b4 // 020749b4 e79c5109 ldr r5, [r12, r9, lsl #0x2] // adding link: 020749b4 -> 020749b8 // processing 020749b8 // 020749b8 e0811006 add r1, r1, r6 // adding link: 020749b8 -> 020749bc // processing 020749bc // 020749bc e1a004c8 mov r0, r8, asr #0x9 // adding link: 020749bc -> 020749c0 // processing 020749c0 // 020749c0 e79c2102 ldr r2, [r12, r2, lsl #0x2] // adding link: 020749c0 -> 020749c4 // processing 020749c4 // 020749c4 e1a014c1 mov r1, r1, asr #0x9 // adding link: 020749c4 -> 020749c8 // processing 020749c8 // 020749c8 e0060095 mul r6, r5, r0 // adding link: 020749c8 -> 020749cc // processing 020749cc // 020749cc e0000192 mul r0, r2, r1 // adding link: 020749cc -> 020749d0 // processing 020749d0 // 020749d0 e1a037c3 mov r3, r3, asr #0xf // adding link: 020749d0 -> 020749d4 // processing 020749d4 // 020749d4 e08327c6 add r2, r3, r6, asr #0xf // adding link: 020749d4 -> 020749d8 // processing 020749d8 // 020749d8 e08217c0 add r1, r2, r0, asr #0xf // adding link: 020749d8 -> 020749dc // processing 020749dc // 020749dc e3a00030 mov r0, #0x30 // adding link: 020749dc -> 020749e0 // processing 020749e0 // 020749e0 e0000091 mul r0, r1, r0 // adding link: 020749e0 -> 020749e4 // processing 020749e4 // 020749e4 e59ba018 ldr r10, [r11, #0x18] // adding link: 020749e4 -> 020749e8 // processing 020749e8 // 020749e8 e59b3030 ldr r3, [r11, #0x30] // adding link: 020749e8 -> 020749ec // processing 020749ec // 020749ec e59a1004 ldr r1, [r10, #0x4] // adding link: 020749ec -> 020749f0 // processing 020749f0 // 020749f0 e0811783 add r1, r1, r3, lsl #0xf // adding link: 020749f0 -> 020749f4 // processing 020749f4 // 020749f4 e0907001 adds r7, r0, r1 // adding link: 020749f4 -> 020749f8 // processing 020749f8 // 020749f8 43a07000 movmi r7, #0x0 // adding link: 020749f8 -> 020749fc // processing 020749fc // 020749fc 4a000001 bmi 0x2074a08 // adding jump: 020749fc -> 02074a08 (sub=0) // adding link: 020749fc -> 02074a00 // processing 02074a08 // 02074a08 e59f0a30 ldr r0, [r15, #0xa30] ; 0x2075440 // adding link: 02074a08 -> 02074a0c // processing 02074a00 // 02074a00 e357070f cmp r7, #0x3c0000 // adding link: 02074a00 -> 02074a04 // processing 02074a0c // 02074a0c e1a067c7 mov r6, r7, asr #0xf // adding link: 02074a0c -> 02074a10 // processing 02074a04 // 02074a04 c3a0770f movgt r7, #0x3c0000 // adding link: 02074a04 -> 02074a08 // processing 02074a10 // 02074a10 e59f5a2c ldr r5, [r15, #0xa2c] ; 0x2075444 // adding link: 02074a10 -> 02074a14 // processing 02074a14 // 02074a14 e59f3a2c ldr r3, [r15, #0xa2c] ; 0x2075448 // adding link: 02074a14 -> 02074a18 // processing 02074a18 // 02074a18 e7900106 ldr r0, [r0, r6, lsl #0x2] // adding link: 02074a18 -> 02074a1c // processing 02074a1c // 02074a1c e7955106 ldr r5, [r5, r6, lsl #0x2] // adding link: 02074a1c -> 02074a20 // processing 02074a20 // 02074a20 e0076003 and r6, r7, r3 // adding link: 02074a20 -> 02074a24 // processing 02074a24 // 02074a24 e0453000 sub r3, r5, r0 // adding link: 02074a24 -> 02074a28 // processing 02074a28 // 02074a28 e0c35396 smull r5, r3, r6, r3 // adding link: 02074a28 -> 02074a2c // processing 02074a2c // 02074a2c e1a057a5 mov r5, r5, lsr #0xf // adding link: 02074a2c -> 02074a30 // processing 02074a30 // 02074a30 e1855883 orr r5, r5, r3, lsl #0x11 // adding link: 02074a30 -> 02074a34 // processing 02074a34 // 02074a34 e0900005 adds r0, r0, r5 // adding link: 02074a34 -> 02074a38 // processing 02074a38 // 02074a38 e58b0038 str r0, [r11, #0x38] // adding link: 02074a38 -> 02074a3c // processing 02074a3c // 02074a3c e59b0048 ldr r0, [r11, #0x48] // adding link: 02074a3c -> 02074a40 // processing 02074a40 // 02074a40 e59b5010 ldr r5, [r11, #0x10] // adding link: 02074a40 -> 02074a44 // processing 02074a44 // 02074a44 e59b3054 ldr r3, [r11, #0x54] // adding link: 02074a44 -> 02074a48 // processing 02074a48 // 02074a48 e1a00800 mov r0, r0, lsl #0x10 // adding link: 02074a48 -> 02074a4c // processing 02074a4c // 02074a4c e0857103 add r7, r5, r3, lsl #0x2 // adding link: 02074a4c -> 02074a50 // processing 02074a50 // 02074a50 e1a05840 mov r5, r0, asr #0x10 // adding link: 02074a50 -> 02074a54 // processing 02074a54 // 02074a54 e59b6014 ldr r6, [r11, #0x14] // adding link: 02074a54 -> 02074a58 // processing 02074a58 // 02074a58 e59b802c ldr r8, [r11, #0x2c] // adding link: 02074a58 -> 02074a5c // processing 02074a5c // 02074a5c e59f09d8 ldr r0, [r15, #0x9d8] ; 0x207543c // adding link: 02074a5c -> 02074a60 // processing 02074a60 // 02074a60 e7965105 ldr r5, [r6, r5, lsl #0x2] // adding link: 02074a60 -> 02074a64 // processing 02074a64 // 02074a64 e5977008 ldr r7, [r7, #0x8] // adding link: 02074a64 -> 02074a68 // processing 02074a68 // 02074a68 e1db33f4 ldrsh r3, [r11, #0x34] // adding link: 02074a68 -> 02074a6c // processing 02074a6c // 02074a6c e0875005 add r5, r7, r5 // adding link: 02074a6c -> 02074a70 // processing 02074a70 // 02074a70 e7906108 ldr r6, [r0, r8, lsl #0x2] // adding link: 02074a70 -> 02074a74 // processing 02074a74 // 02074a74 e1a054c5 mov r5, r5, asr #0x9 // adding link: 02074a74 -> 02074a78 // processing 02074a78 // 02074a78 e0050596 mul r5, r6, r5 // adding link: 02074a78 -> 02074a7c // processing 02074a7c // 02074a7c e7903103 ldr r3, [r0, r3, lsl #0x2] // adding link: 02074a7c -> 02074a80 // processing 02074a80 // 02074a80 e3a00030 mov r0, #0x30 // adding link: 02074a80 -> 02074a84 // processing 02074a84 // 02074a84 e08227c5 add r2, r2, r5, asr #0xf // adding link: 02074a84 -> 02074a88 // processing 02074a88 // 02074a88 e0211092 mla r1, r2, r0, r1 // adding link: 02074a88 -> 02074a8c // processing 02074a8c // 02074a8c e0000093 mul r0, r3, r0 // adding link: 02074a8c -> 02074a90 // processing 02074a90 // 02074a90 e0916000 adds r6, r1, r0 // adding link: 02074a90 -> 02074a94 // processing 02074a94 // 02074a94 43a06000 movmi r6, #0x0 // adding link: 02074a94 -> 02074a98 // processing 02074a98 // 02074a98 4a000001 bmi 0x2074aa4 // adding jump: 02074a98 -> 02074aa4 (sub=0) // adding link: 02074a98 -> 02074a9c // processing 02074aa4 // 02074aa4 e59f2994 ldr r2, [r15, #0x994] ; 0x2075440 // adding link: 02074aa4 -> 02074aa8 // processing 02074a9c // 02074a9c e356070f cmp r6, #0x3c0000 // adding link: 02074a9c -> 02074aa0 // processing 02074aa8 // 02074aa8 e1a057c6 mov r5, r6, asr #0xf // adding link: 02074aa8 -> 02074aac // processing 02074aa0 // 02074aa0 c3a0670f movgt r6, #0x3c0000 // adding link: 02074aa0 -> 02074aa4 // processing 02074aac // 02074aac e59f1990 ldr r1, [r15, #0x990] ; 0x2075444 // adding link: 02074aac -> 02074ab0 // processing 02074ab0 // 02074ab0 e59f0990 ldr r0, [r15, #0x990] ; 0x2075448 // adding link: 02074ab0 -> 02074ab4 // processing 02074ab4 // 02074ab4 e7923105 ldr r3, [r2, r5, lsl #0x2] // adding link: 02074ab4 -> 02074ab8 // processing 02074ab8 // 02074ab8 e7911105 ldr r1, [r1, r5, lsl #0x2] // adding link: 02074ab8 -> 02074abc // processing 02074abc // 02074abc e0062000 and r2, r6, r0 // adding link: 02074abc -> 02074ac0 // processing 02074ac0 // 02074ac0 e0410003 sub r0, r1, r3 // adding link: 02074ac0 -> 02074ac4 // processing 02074ac4 // 02074ac4 e0c01092 smull r1, r0, r2, r0 // adding link: 02074ac4 -> 02074ac8 // processing 02074ac8 // 02074ac8 e1a017a1 mov r1, r1, lsr #0xf // adding link: 02074ac8 -> 02074acc // processing 02074acc // 02074acc e1811880 orr r1, r1, r0, lsl #0x11 // adding link: 02074acc -> 02074ad0 // processing 02074ad0 // 02074ad0 e0930001 adds r0, r3, r1 // adding link: 02074ad0 -> 02074ad4 // processing 02074ad4 // 02074ad4 e58b003c str r0, [r11, #0x3c] // adding link: 02074ad4 -> 02074ad8 // processing 02074ad8 // 02074ad8 e5946040 ldr r6, [r4, #0x40] // adding link: 02074ad8 -> 02074adc // processing 02074adc // 02074adc e3a05000 mov r5, #0x0 // adding link: 02074adc -> 02074ae0 // processing 02074ae0 // 02074ae0 e5960010 ldr r0, [r6, #0x10] // adding link: 02074ae0 -> 02074ae4 // processing 02074ae4 // 02074ae4 e5901038 ldr r1, [r0, #0x38] // adding link: 02074ae4 -> 02074ae8 // processing 02074ae8 // 02074ae8 e586101c str r1, [r6, #0x1c] // adding link: 02074ae8 -> 02074aec // processing 02074aec // 02074aec e5960010 ldr r0, [r6, #0x10] // adding link: 02074aec -> 02074af0 // processing 02074af0 // 02074af0 e3510401 cmp r1, #0x1000000 // adding link: 02074af0 -> 02074af4 // processing 02074af4 // 02074af4 e590003c ldr r0, [r0, #0x3c] // adding link: 02074af4 -> 02074af8 // processing 02074af8 // 02074af8 e5860020 str r0, [r6, #0x20] // adding link: 02074af8 -> 02074afc // processing 02074afc // 02074afc b3e00102 mvnlt r0, #0x80000000 // adding link: 02074afc -> 02074b00 // processing 02074b00 // 02074b00 b5860024 strlt r0, [r6, #0x24] // adding link: 02074b00 -> 02074b04 // processing 02074b04 // 02074b04 ba00001c blt 0x2074b7c // adding jump: 02074b04 -> 02074b7c (sub=0) // adding link: 02074b04 -> 02074b08 // processing 02074b7c // 02074b7c e5960020 ldr r0, [r6, #0x20] // adding link: 02074b7c -> 02074b80 // processing 02074b08 // 02074b08 e28d0030 add r0, r13, #0x30 // adding link: 02074b08 -> 02074b0c // processing 02074b80 // 02074b80 e3500401 cmp r0, #0x1000000 // adding link: 02074b80 -> 02074b84 // processing 02074b0c // 02074b0c ebfe67b2 bl 0x200e9dc // adding jump: 02074b0c -> 0200e9dc (sub=1) // adding link: 02074b0c -> 02074b10 // processing 02074b84 // 02074b84 b3e00102 mvnlt r0, #0x80000000 // adding link: 02074b84 -> 02074b88 // processing 0200e9dc // 0200e9dc e59f1034 ldr r1, [r15, #0x34] ; 0x200ea18 // adding link: 0200e9dc -> 0200e9e0 // processing 02074b10 // 02074b10 e596801c ldr r8, [r6, #0x1c] // adding link: 02074b10 -> 02074b14 // processing 02074b88 // 02074b88 b5860028 strlt r0, [r6, #0x28] // adding link: 02074b88 -> 02074b8c // processing 0200e9e0 // 0200e9e0 e92d0010 stmdb r13!, { r4 } // adding link: 0200e9e0 -> 0200e9e4 // processing 02074b14 // 02074b14 e59f1930 ldr r1, [r15, #0x930] ; 0x207544c // adding link: 02074b14 -> 02074b18 // processing 02074b8c // 02074b8c ba00001c blt 0x2074c04 // adding jump: 02074b8c -> 02074c04 (sub=0) // adding link: 02074b8c -> 02074b90 // processing 0200e9e4 // 0200e9e4 e891101c ldmia r1, { r2-r4, r12 } // adding link: 0200e9e4 -> 0200e9e8 // processing 02074b18 // 02074b18 e3a02001 mov r2, #0x1 // adding link: 02074b18 -> 02074b1c // processing 02074c04 // 02074c04 e5960054 ldr r0, [r6, #0x54] // adding link: 02074c04 -> 02074c08 // processing 02074b90 // 02074b90 e28d004c add r0, r13, #0x4c // adding link: 02074b90 -> 02074b94 // processing 0200e9e8 // 0200e9e8 e8a0101c stmia r0!, { r2-r4, r12 } // adding link: 0200e9e8 -> 0200e9ec // processing 02074b1c // 02074b1c e3a004ff mov r0, #0xff000000 // adding link: 02074b1c -> 02074b20 // processing 02074c08 // 02074c08 e3a0392e mov r3, #0xb8000 // adding link: 02074c08 -> 02074c0c // processing 02074b94 // 02074b94 ebfe6790 bl 0x200e9dc // adding jump: 02074b94 -> 0200e9dc (sub=1) // adding link: 02074b94 -> 02074b98 // processing 0200e9ec // 0200e9ec e151c1b0 ldrh r12, [r1, #-0x10] // adding link: 0200e9ec -> 0200e9f0 // processing 02074b20 // 02074b20 e1c120b0 strh r2, [r1] // adding link: 02074b20 -> 02074b24 // processing 02074c0c // 02074c0c e5860060 str r0, [r6, #0x60] // adding link: 02074c0c -> 02074c10 // processing 02074b98 // 02074b98 e5968020 ldr r8, [r6, #0x20] // adding link: 02074b98 -> 02074b9c // processing 0200e9f0 // 0200e9f0 e2811028 add r1, r1, #0x28 // adding link: 0200e9f0 -> 0200e9f4 // processing 02074b24 // 02074b24 e5810010 str r0, [r1, #0x10] // adding link: 02074b24 -> 02074b28 // processing 02074c10 // 02074c10 e5960058 ldr r0, [r6, #0x58] // adding link: 02074c10 -> 02074c14 // processing 02074b9c // 02074b9c e59f18a8 ldr r1, [r15, #0x8a8] ; 0x207544c // adding link: 02074b9c -> 02074ba0 // processing 0200e9f4 // 0200e9f4 e891000c ldmia r1, { r2, r3 } // adding link: 0200e9f4 -> 0200e9f8 // processing 02074b28 // 02074b28 e2620502 rsb r0, r2, #0x800000 // adding link: 02074b28 -> 02074b2c // processing 02074c14 // 02074c14 e59fa838 ldr r10, [r15, #0x838] ; 0x2075454 // adding link: 02074c14 -> 02074c18 // processing 02074ba0 // 02074ba0 e3a02001 mov r2, #0x1 // adding link: 02074ba0 -> 02074ba4 // processing 0200e9f8 // 0200e9f8 e8a0000c stmia r0!, { r2, r3 } // adding link: 0200e9f8 -> 0200e9fc // processing 02074b2c // 02074b2c e5810014 str r0, [r1, #0x14] // adding link: 02074b2c -> 02074b30 // processing 02074c18 // 02074c18 e5860068 str r0, [r6, #0x68] // adding link: 02074c18 -> 02074c1c // processing 02074ba4 // 02074ba4 e3a004ff mov r0, #0xff000000 // adding link: 02074ba4 -> 02074ba8 // processing 0200e9fc // 0200e9fc e20cc003 and r12, r12, #0x3 // adding link: 0200e9fc -> 0200ea00 // processing 02074b30 // 02074b30 e5818018 str r8, [r1, #0x18] // adding link: 02074b30 -> 02074b34 // processing 02074c1c // 02074c1c e5961020 ldr r1, [r6, #0x20] // adding link: 02074c1c -> 02074c20 // processing 02074ba8 // 02074ba8 e1c120b0 strh r2, [r1] // adding link: 02074ba8 -> 02074bac // processing 0200ea00 // 0200ea00 e15120b8 ldrh r2, [r1, #-0x8] // adding link: 0200ea00 -> 0200ea04 // processing 02074b34 // 02074b34 e1a00005 mov r0, r5 // adding link: 02074b34 -> 02074b38 // processing 02074c20 // 02074c20 e5960054 ldr r0, [r6, #0x54] // adding link: 02074c20 -> 02074c24 // processing 02074bac // 02074bac e5810010 str r0, [r1, #0x10] // adding link: 02074bac -> 02074bb0 // processing 0200ea04 // 0200ea04 e1c0c0b0 strh r12, [r0] // adding link: 0200ea04 -> 0200ea08 // processing 02074b38 // 02074b38 e581001c str r0, [r1, #0x1c] // adding link: 02074b38 -> 02074b3c // processing 02074c24 // 02074c24 e59f782c ldr r7, [r15, #0x82c] ; 0x2075458 // adding link: 02074c24 -> 02074c28 // processing 02074bb0 // 02074bb0 e2620502 rsb r0, r2, #0x800000 // adding link: 02074bb0 -> 02074bb4 // processing 0200ea08 // 0200ea08 e2022001 and r2, r2, #0x1 // adding link: 0200ea08 -> 0200ea0c // processing 02074b3c // 02074b3c e1d100b0 ldrh r0, [r1] // adding link: 02074b3c -> 02074b40 // processing 02074c28 // 02074c28 e0c02091 smull r2, r0, r1, r0 // adding link: 02074c28 -> 02074c2c // processing 02074bb4 // 02074bb4 e5810014 str r0, [r1, #0x14] // adding link: 02074bb4 -> 02074bb8 // processing 0200ea0c // 0200ea0c e1c020b2 strh r2, [r0, #0x2] // adding link: 0200ea0c -> 0200ea10 // processing 02074b40 // 02074b40 e3100902 tst r0, #0x8000 // adding link: 02074b40 -> 02074b44 // processing 02074c2c // 02074c2c e1a013a2 mov r1, r2, lsr #0x7 // adding link: 02074c2c -> 02074c30 // processing 02074bb8 // 02074bb8 e5818018 str r8, [r1, #0x18] // adding link: 02074bb8 -> 02074bbc // processing 0200ea10 // 0200ea10 e8bd0010 ldmia r13!, { r4 } // adding link: 0200ea10 -> 0200ea14 // processing 02074b44 // 02074b44 1afffffc bne 0x2074b3c // adding jump: 02074b44 -> 02074b3c (sub=0) // adding link: 02074b44 -> 02074b48 // processing 02074c30 // 02074c30 e1811c80 orr r1, r1, r0, lsl #0x19 // adding link: 02074c30 -> 02074c34 // processing 02074bbc // 02074bbc e3a00000 mov r0, #0x0 // adding link: 02074bbc -> 02074bc0 // processing 0200ea14 // 0200ea14 e12fff1e bx r14 // processing 02074b48 // 02074b48 e59f18fc ldr r1, [r15, #0x8fc] ; 0x207544c // adding link: 02074b48 -> 02074b4c // processing 02074c34 // 02074c34 e5861064 str r1, [r6, #0x64] // adding link: 02074c34 -> 02074c38 // processing 02074bc0 // 02074bc0 e581001c str r0, [r1, #0x1c] // adding link: 02074bc0 -> 02074bc4 // processing 02074b4c // 02074b4c e1d100b0 ldrh r0, [r1] // adding link: 02074b4c -> 02074b50 // processing 02074c38 // 02074c38 e5961020 ldr r1, [r6, #0x20] // adding link: 02074c38 -> 02074c3c // processing 02074bc4 // 02074bc4 e1d100b0 ldrh r0, [r1] // adding link: 02074bc4 -> 02074bc8 // processing 02074b50 // 02074b50 e3100902 tst r0, #0x8000 // adding link: 02074b50 -> 02074b54 // processing 02074c3c // 02074c3c e596005c ldr r0, [r6, #0x5c] // adding link: 02074c3c -> 02074c40 // processing 02074bc8 // 02074bc8 e3100902 tst r0, #0x8000 // adding link: 02074bc8 -> 02074bcc // processing 02074b54 // 02074b54 1afffffc bne 0x2074b4c // adding jump: 02074b54 -> 02074b4c (sub=0) // adding link: 02074b54 -> 02074b58 // processing 02074c40 // 02074c40 e2633000 rsb r3, r3, #0x0 // adding link: 02074c40 -> 02074c44 // processing 02074bcc // 02074bcc 1afffffc bne 0x2074bc4 // adding jump: 02074bcc -> 02074bc4 (sub=0) // adding link: 02074bcc -> 02074bd0 // processing 02074b58 // 02074b58 e59f78f0 ldr r7, [r15, #0x8f0] ; 0x2075450 // adding link: 02074b58 -> 02074b5c // processing 02074c44 // 02074c44 e0c02091 smull r2, r0, r1, r0 // adding link: 02074c44 -> 02074c48 // processing 02074bd0 // 02074bd0 e59f1874 ldr r1, [r15, #0x874] ; 0x207544c // adding link: 02074bd0 -> 02074bd4 // processing 02074b5c // 02074b5c e28d0030 add r0, r13, #0x30 // adding link: 02074b5c -> 02074b60 // processing 02074c48 // 02074c48 e1a013a2 mov r1, r2, lsr #0x7 // adding link: 02074c48 -> 02074c4c // processing 02074bd4 // 02074bd4 e1d100b0 ldrh r0, [r1] // adding link: 02074bd4 -> 02074bd8 // processing 02074b60 // 02074b60 e5971000 ldr r1, [r7] // adding link: 02074b60 -> 02074b64 // processing 02074c4c // 02074c4c e1811c80 orr r1, r1, r0, lsl #0x19 // adding link: 02074c4c -> 02074c50 // processing 02074bd8 // 02074bd8 e3100902 tst r0, #0x8000 // adding link: 02074bd8 -> 02074bdc // processing 02074b64 // 02074b64 e5861024 str r1, [r6, #0x24] // adding link: 02074b64 -> 02074b68 // processing 02074c50 // 02074c50 e586106c str r1, [r6, #0x6c] // adding link: 02074c50 -> 02074c54 // processing 02074bdc // 02074bdc 1afffffc bne 0x2074bd4 // adding jump: 02074bdc -> 02074bd4 (sub=0) // adding link: 02074bdc -> 02074be0 // processing 02074b68 // 02074b68 ebfe67ab bl 0x200ea1c // adding jump: 02074b68 -> 0200ea1c (sub=1) // adding link: 02074b68 -> 02074b6c // processing 02074c54 // 02074c54 e5942044 ldr r2, [r4, #0x44] // adding link: 02074c54 -> 02074c58 // processing 02074be0 // 02074be0 e59f7868 ldr r7, [r15, #0x868] ; 0x2075450 // adding link: 02074be0 -> 02074be4 // processing 0200ea1c // 0200ea1c e92d0010 stmdb r13!, { r4 } // adding link: 0200ea1c -> 0200ea20 // processing 02074b6c // 02074b6c e2471020 sub r1, r7, #0x20 // adding link: 02074b6c -> 02074b70 // processing 02074c58 // 02074c58 e9920101 ldmib r2, { r0, r8 } // adding link: 02074c58 -> 02074c5c // processing 02074be4 // 02074be4 e28d004c add r0, r13, #0x4c // adding link: 02074be4 -> 02074be8 // processing 0200ea20 // 0200ea20 e59f102c ldr r1, [r15, #0x2c] ; 0x200ea54 // adding link: 0200ea20 -> 0200ea24 // processing 02074b70 // 02074b70 e1d100b0 ldrh r0, [r1] // adding link: 02074b70 -> 02074b74 // processing 02074c5c // 02074c5c e5929010 ldr r9, [r2, #0x10] // adding link: 02074c5c -> 02074c60 // processing 02074be8 // 02074be8 e5971000 ldr r1, [r7] // adding link: 02074be8 -> 02074bec // processing 0200ea24 // 0200ea24 e890101c ldmia r0, { r2-r4, r12 } // adding link: 0200ea24 -> 0200ea28 // processing 02074b74 // 02074b74 e3100902 tst r0, #0x8000 // adding link: 02074b74 -> 02074b78 // processing 02074c60 // 02074c60 e1a01800 mov r1, r0, lsl #0x10 // adding link: 02074c60 -> 02074c64 // processing 02074bec // 02074bec e5861028 str r1, [r6, #0x28] // adding link: 02074bec -> 02074bf0 // processing 0200ea28 // 0200ea28 e881101c stmia r1, { r2-r4, r12 } // adding link: 0200ea28 -> 0200ea2c // processing 02074b78 // 02074b78 1afffffc bne 0x2074b70 // adding jump: 02074b78 -> 02074b70 (sub=0) // adding link: 02074b78 -> 02074b7c // processing 02074c64 // 02074c64 e0890108 add r0, r9, r8, lsl #0x2 // adding link: 02074c64 -> 02074c68 // processing 02074bf0 // 02074bf0 ebfe6789 bl 0x200ea1c // adding jump: 02074bf0 -> 0200ea1c (sub=1) // adding link: 02074bf0 -> 02074bf4 // processing 0200ea2c // 0200ea2c e1d021b8 ldrh r2, [r0, #0x18] // adding link: 0200ea2c -> 0200ea30 // processing 02074c68 // 02074c68 e5998008 ldr r8, [r9, #0x8] // adding link: 02074c68 -> 02074c6c // processing 02074bf4 // 02074bf4 e2471020 sub r1, r7, #0x20 // adding link: 02074bf4 -> 02074bf8 // processing 0200ea30 // 0200ea30 e1d031ba ldrh r3, [r0, #0x1a] // adding link: 0200ea30 -> 0200ea34 // processing 02074c6c // 02074c6c e5909008 ldr r9, [r0, #0x8] // adding link: 02074c6c -> 02074c70 // processing 02074bf8 // 02074bf8 e1d100b0 ldrh r0, [r1] // adding link: 02074bf8 -> 02074bfc // processing 0200ea34 // 0200ea34 e14121b0 strh r2, [r1, #-0x10] // adding link: 0200ea34 -> 0200ea38 // processing 02074c70 // 02074c70 e1a004c8 mov r0, r8, asr #0x9 // adding link: 02074c70 -> 02074c74 // processing 02074bfc // 02074bfc e3100902 tst r0, #0x8000 // adding link: 02074bfc -> 02074c00 // processing 0200ea38 // 0200ea38 e1c132b0 strh r3, [r1, #0x20] // adding link: 0200ea38 -> 0200ea3c // processing 02074c74 // 02074c74 e1a08841 mov r8, r1, asr #0x10 // adding link: 02074c74 -> 02074c78 // processing 02074c00 // 02074c00 1afffffc bne 0x2074bf8 // adding jump: 02074c00 -> 02074bf8 (sub=0) // adding link: 02074c00 -> 02074c04 // processing 0200ea3c // 0200ea3c e2800010 add r0, r0, #0x10 // adding link: 0200ea3c -> 0200ea40 // processing 02074c78 // 02074c78 e5921044 ldr r1, [r2, #0x44] // adding link: 02074c78 -> 02074c7c // processing 0200ea40 // 0200ea40 e2811028 add r1, r1, #0x28 // adding link: 0200ea40 -> 0200ea44 // processing 02074c7c // 02074c7c e5926018 ldr r6, [r2, #0x18] // adding link: 02074c7c -> 02074c80 // processing 0200ea44 // 0200ea44 e890000c ldmia r0, { r2, r3 } // adding link: 0200ea44 -> 0200ea48 // processing 02074c80 // 02074c80 e1a01081 mov r1, r1, lsl #0x1 // adding link: 02074c80 -> 02074c84 // processing 0200ea48 // 0200ea48 e881000c stmia r1, { r2, r3 } // adding link: 0200ea48 -> 0200ea4c // processing 02074c84 // 02074c84 e19a10f1 ldrsh r1, [r10, r1] // adding link: 02074c84 -> 02074c88 // processing 0200ea4c // 0200ea4c e8bd0010 ldmia r13!, { r4 } // adding link: 0200ea4c -> 0200ea50 // processing 02074c88 // 02074c88 e592b048 ldr r11, [r2, #0x48] // adding link: 02074c88 -> 02074c8c // processing 0200ea50 // 0200ea50 e12fff1e bx r14 // processing 02074c8c // 02074c8c e596604c ldr r6, [r6, #0x4c] // adding link: 02074c8c -> 02074c90 // processing 02074c90 // 02074c90 e1a0b08b mov r11, r11, lsl #0x1 // adding link: 02074c90 -> 02074c94 // processing 02074c94 // 02074c94 e0000091 mul r0, r1, r0 // adding link: 02074c94 -> 02074c98 // processing 02074c98 // 02074c98 e592100c ldr r1, [r2, #0xc] // adding link: 02074c98 -> 02074c9c // processing 02074c9c // 02074c9c e19aa0fb ldrsh r10, [r10, r11] // adding link: 02074c9c -> 02074ca0 // processing 02074ca0 // 02074ca0 e19770fb ldrsh r7, [r7, r11] // adding link: 02074ca0 -> 02074ca4 // processing 02074ca4 // 02074ca4 e592b014 ldr r11, [r2, #0x14] // adding link: 02074ca4 -> 02074ca8 // processing 02074ca8 // 02074ca8 e0060691 mul r6, r1, r6 // adding link: 02074ca8 -> 02074cac // processing 02074cac // 02074cac e79b8108 ldr r8, [r11, r8, lsl #0x2] // adding link: 02074cac -> 02074cb0 // processing 02074cb0 // 02074cb0 e0891008 add r1, r9, r8 // adding link: 02074cb0 -> 02074cb4 // processing 02074cb4 // 02074cb4 e1a014c1 mov r1, r1, asr #0x9 // adding link: 02074cb4 -> 02074cb8 // processing 02074cb8 // 02074cb8 e008019a mul r8, r10, r1 // adding link: 02074cb8 -> 02074cbc // processing 02074cbc // 02074cbc e1a014c6 mov r1, r6, asr #0x9 // adding link: 02074cbc -> 02074cc0 // processing 02074cc0 // 02074cc0 e1a067c8 mov r6, r8, asr #0xf // adding link: 02074cc0 -> 02074cc4 // processing 02074cc4 // 02074cc4 e0010197 mul r1, r7, r1 // adding link: 02074cc4 -> 02074cc8 // processing 02074cc8 // 02074cc8 e08607c0 add r0, r6, r0, asr #0xf // adding link: 02074cc8 -> 02074ccc // processing 02074ccc // 02074ccc e08017c1 add r1, r0, r1, asr #0xf // adding link: 02074ccc -> 02074cd0 // processing 02074cd0 // 02074cd0 e592001c ldr r0, [r2, #0x1c] // adding link: 02074cd0 -> 02074cd4 // processing 02074cd4 // 02074cd4 e0611381 rsb r1, r1, r1, lsl #0x7 // adding link: 02074cd4 -> 02074cd8 // processing 02074cd8 // 02074cd8 e0810000 add r0, r1, r0 // adding link: 02074cd8 -> 02074cdc // processing 02074cdc // 02074cdc e1500003 cmp r0, r3 // adding link: 02074cdc -> 02074ce0 // processing 02074ce0 // 02074ce0 b1a00003 movlt r0, r3 // adding link: 02074ce0 -> 02074ce4 // processing 02074ce4 // 02074ce4 ba000001 blt 0x2074cf0 // adding jump: 02074ce4 -> 02074cf0 (sub=0) // adding link: 02074ce4 -> 02074ce8 // processing 02074cf0 // 02074cf0 e280792e add r7, r0, #0xb8000 // adding link: 02074cf0 -> 02074cf4 // processing 02074ce8 // 02074ce8 e35009fe cmp r0, #0x3f8000 // adding link: 02074ce8 -> 02074cec // processing 02074cf4 // 02074cf4 e59f3760 ldr r3, [r15, #0x760] ; 0x207545c // adding link: 02074cf4 -> 02074cf8 // processing 02074cec // 02074cec c3a009fe movgt r0, #0x3f8000 // adding link: 02074cec -> 02074cf0 // processing 02074cf8 // 02074cf8 e1a087c7 mov r8, r7, asr #0xf // adding link: 02074cf8 -> 02074cfc // processing 02074cfc // 02074cfc e59f175c ldr r1, [r15, #0x75c] ; 0x2075460 // adding link: 02074cfc -> 02074d00 // processing 02074d00 // 02074d00 e59f0740 ldr r0, [r15, #0x740] ; 0x2075448 // adding link: 02074d00 -> 02074d04 // processing 02074d04 // 02074d04 e7936108 ldr r6, [r3, r8, lsl #0x2] // adding link: 02074d04 -> 02074d08 // processing 02074d08 // 02074d08 e7911108 ldr r1, [r1, r8, lsl #0x2] // adding link: 02074d08 -> 02074d0c // processing 02074d0c // 02074d0c e0073000 and r3, r7, r0 // adding link: 02074d0c -> 02074d10 // processing 02074d10 // 02074d10 e0410006 sub r0, r1, r6 // adding link: 02074d10 -> 02074d14 // processing 02074d14 // 02074d14 e0c01093 smull r1, r0, r3, r0 // adding link: 02074d14 -> 02074d18 // processing 02074d18 // 02074d18 e1a017a1 mov r1, r1, lsr #0xf // adding link: 02074d18 -> 02074d1c // processing 02074d1c // 02074d1c e1811880 orr r1, r1, r0, lsl #0x11 // adding link: 02074d1c -> 02074d20 // processing 02074d20 // 02074d20 e0960001 adds r0, r6, r1 // adding link: 02074d20 -> 02074d24 // processing 02074d24 // 02074d24 e59f1738 ldr r1, [r15, #0x738] ; 0x2075464 // adding link: 02074d24 -> 02074d28 // processing 02074d28 // 02074d28 e5820028 str r0, [r2, #0x28] // adding link: 02074d28 -> 02074d2c // processing 02074d2c // 02074d2c e0806001 add r6, r0, r1 // adding link: 02074d2c -> 02074d30 // processing 02074d30 // 02074d30 e3560000 cmp r6, #0x0 // adding link: 02074d30 -> 02074d34 // processing 02074d34 // 02074d34 d3a06000 movle r6, #0x0 // adding link: 02074d34 -> 02074d38 // processing 02074d38 // 02074d38 e0c13696 smull r3, r1, r6, r6 // adding link: 02074d38 -> 02074d3c // processing 02074d3c // 02074d3c e1a03fa3 mov r3, r3, lsr #0x1f // adding link: 02074d3c -> 02074d40 // processing 02074d40 // 02074d40 e1833081 orr r3, r3, r1, lsl #0x1 // adding link: 02074d40 -> 02074d44 // processing 02074d44 // 02074d44 e1a033c3 mov r3, r3, asr #0x7 // adding link: 02074d44 -> 02074d48 // processing 02074d48 // 02074d48 e3a01506 mov r1, #0x1800000 // adding link: 02074d48 -> 02074d4c // processing 02074d4c // 02074d4c e0878193 umull r8, r7, r3, r1 // adding link: 02074d4c -> 02074d50 // processing 02074d50 // 02074d50 e0277593 mla r7, r3, r5, r7 // adding link: 02074d50 -> 02074d54 // processing 02074d54 // 02074d54 e1a06fc3 mov r6, r3, asr #0x1f // adding link: 02074d54 -> 02074d58 // processing 02074d58 // 02074d58 e0277196 mla r7, r6, r1, r7 // adding link: 02074d58 -> 02074d5c // processing 02074d5c // 02074d5c e1a01c28 mov r1, r8, lsr #0x18 // adding link: 02074d5c -> 02074d60 // processing 02074d60 // 02074d60 e1811407 orr r1, r1, r7, lsl #0x8 // adding link: 02074d60 -> 02074d64 // processing 02074d64 // 02074d64 e1a00440 mov r0, r0, asr #0x8 // adding link: 02074d64 -> 02074d68 // processing 02074d68 // 02074d68 e5923020 ldr r3, [r2, #0x20] // adding link: 02074d68 -> 02074d6c // processing 02074d6c // 02074d6c e2616401 rsb r6, r1, #0x1000000 // adding link: 02074d6c -> 02074d70 // processing 02074d70 // 02074d70 e1a013c3 mov r1, r3, asr #0x7 // adding link: 02074d70 -> 02074d74 // processing 02074d74 // 02074d74 e0c36691 smull r6, r3, r1, r6 // adding link: 02074d74 -> 02074d78 // processing 02074d78 // 02074d78 e1a07c26 mov r7, r6, lsr #0x18 // adding link: 02074d78 -> 02074d7c // processing 02074d7c // 02074d7c e1877403 orr r7, r7, r3, lsl #0x8 // adding link: 02074d7c -> 02074d80 // processing 02074d80 // 02074d80 e2671401 rsb r1, r7, #0x1000000 // adding link: 02074d80 -> 02074d84 // processing 02074d84 // 02074d84 e2600401 rsb r0, r0, #0x1000000 // adding link: 02074d84 -> 02074d88 // processing 02074d88 // 02074d88 e0c30091 smull r0, r3, r1, r0 // adding link: 02074d88 -> 02074d8c // processing 02074d8c // 02074d8c e1a06c20 mov r6, r0, lsr #0x18 // adding link: 02074d8c -> 02074d90 // processing 02074d90 // 02074d90 e5921058 ldr r1, [r2, #0x58] // adding link: 02074d90 -> 02074d94 // processing 02074d94 // 02074d94 e1866403 orr r6, r6, r3, lsl #0x8 // adding link: 02074d94 -> 02074d98 // processing 02074d98 // 02074d98 e0461001 sub r1, r6, r1 // adding link: 02074d98 -> 02074d9c // processing 02074d9c // 02074d9c e1a01341 mov r1, r1, asr #0x6 // adding link: 02074d9c -> 02074da0 // processing 02074da0 // 02074da0 e5821060 str r1, [r2, #0x60] // adding link: 02074da0 -> 02074da4 // processing 02074da4 // 02074da4 e5921058 ldr r1, [r2, #0x58] // adding link: 02074da4 -> 02074da8 // processing 02074da8 // 02074da8 e1a000c7 mov r0, r7, asr #0x1 // adding link: 02074da8 -> 02074dac // processing 02074dac // 02074dac e582105c str r1, [r2, #0x5c] // adding link: 02074dac -> 02074db0 // processing 02074db0 // 02074db0 e5826058 str r6, [r2, #0x58] // adding link: 02074db0 -> 02074db4 // processing 02074db4 // 02074db4 e5921028 ldr r1, [r2, #0x28] // adding link: 02074db4 -> 02074db8 // processing 02074db8 // 02074db8 e2803502 add r3, r0, #0x800000 // adding link: 02074db8 -> 02074dbc // processing 02074dbc // 02074dbc e1a013c1 mov r1, r1, asr #0x7 // adding link: 02074dbc -> 02074dc0 // processing 02074dc0 // 02074dc0 e0c16193 smull r6, r1, r3, r1 // adding link: 02074dc0 -> 02074dc4 // processing 02074dc4 // 02074dc4 e1a03c26 mov r3, r6, lsr #0x18 // adding link: 02074dc4 -> 02074dc8 // processing 02074dc8 // 02074dc8 e592004c ldr r0, [r2, #0x4c] // adding link: 02074dc8 -> 02074dcc // processing 02074dcc // 02074dcc e1833401 orr r3, r3, r1, lsl #0x8 // adding link: 02074dcc -> 02074dd0 // processing 02074dd0 // 02074dd0 e0430000 sub r0, r3, r0 // adding link: 02074dd0 -> 02074dd4 // processing 02074dd4 // 02074dd4 e1a00340 mov r0, r0, asr #0x6 // adding link: 02074dd4 -> 02074dd8 // processing 02074dd8 // 02074dd8 e5820054 str r0, [r2, #0x54] // adding link: 02074dd8 -> 02074ddc // processing 02074ddc // 02074ddc e592004c ldr r0, [r2, #0x4c] // adding link: 02074ddc -> 02074de0 // processing 02074de0 // 02074de0 e5820050 str r0, [r2, #0x50] // adding link: 02074de0 -> 02074de4 // processing 02074de4 // 02074de4 e582304c str r3, [r2, #0x4c] // adding link: 02074de4 -> 02074de8 // processing 02074de8 // 02074de8 e592103c ldr r1, [r2, #0x3c] // adding link: 02074de8 -> 02074dec // processing 02074dec // 02074dec e5920040 ldr r0, [r2, #0x40] // adding link: 02074dec -> 02074df0 // processing 02074df0 // 02074df0 e1500001 cmp r0, r1 // adding link: 02074df0 -> 02074df4 // processing 02074df4 // 02074df4 15821040 strne r1, [r2, #0x40] // adding link: 02074df4 -> 02074df8 // processing 02074df8 // 02074df8 15825034 strne r5, [r2, #0x34] // adding link: 02074df8 -> 02074dfc // processing 02074dfc // 02074dfc 15825038 strne r5, [r2, #0x38] // adding link: 02074dfc -> 02074e00 // processing 02074e00 // 02074e00 e5941048 ldr r1, [r4, #0x48] // adding link: 02074e00 -> 02074e04 // processing 02074e04 // 02074e04 e3e004ff mvn r0, #0xff000000 // adding link: 02074e04 -> 02074e08 // processing 02074e08 // 02074e08 e5915004 ldr r5, [r1, #0x4] // adding link: 02074e08 -> 02074e0c // processing 02074e0c // 02074e0c e5913014 ldr r3, [r1, #0x14] // adding link: 02074e0c -> 02074e10 // processing 02074e10 // 02074e10 e1a02805 mov r2, r5, lsl #0x10 // adding link: 02074e10 -> 02074e14 // processing 02074e14 // 02074e14 e1a02842 mov r2, r2, asr #0x10 // adding link: 02074e14 -> 02074e18 // processing 02074e18 // 02074e18 e3550003 cmp r5, #0x3 // adding link: 02074e18 -> 02074e1c // processing 02074e1c // 02074e1c e7936102 ldr r6, [r3, r2, lsl #0x2] // adding link: 02074e1c -> 02074e20 // processing 02074e20 // 02074e20 0a000003 beq 0x2074e34 // adding jump: 02074e20 -> 02074e34 (sub=0) // adding link: 02074e20 -> 02074e24 // processing 02074e34 // 02074e34 e591501c ldr r5, [r1, #0x1c] // adding link: 02074e34 -> 02074e38 // processing 02074e24 // 02074e24 e3550004 cmp r5, #0x4 // adding link: 02074e24 -> 02074e28 // processing 02074e38 // 02074e38 e0c23596 smull r3, r2, r6, r5 // adding link: 02074e38 -> 02074e3c // processing 02074e28 // 02074e28 1a00000a bne 0x2074e58 // adding jump: 02074e28 -> 02074e58 (sub=0) // adding link: 02074e28 -> 02074e2c // processing 02074e3c // 02074e3c e1a03c23 mov r3, r3, lsr #0x18 // adding link: 02074e3c -> 02074e40 // processing 02074e58 // 02074e58 e0862000 add r2, r6, r0 // adding link: 02074e58 -> 02074e5c // processing 02074e2c // 02074e2c e3a05401 mov r5, #0x1000000 // adding link: 02074e2c -> 02074e30 // processing 02074e40 // 02074e40 e1833402 orr r3, r3, r2, lsl #0x8 // adding link: 02074e40 -> 02074e44 // processing 02074e5c // 02074e5c e591601c ldr r6, [r1, #0x1c] // adding link: 02074e5c -> 02074e60 // processing 02074e30 // 02074e30 ea000012 b 0x2074e80 // adding jump: 02074e30 -> 02074e80 (sub=0) // processing 02074e44 // 02074e44 e3550000 cmp r5, #0x0 // adding link: 02074e44 -> 02074e48 // processing 02074e60 // 02074e60 e1a020c2 mov r2, r2, asr #0x1 // adding link: 02074e60 -> 02074e64 // processing 02074e80 // 02074e80 e5916010 ldr r6, [r1, #0x10] // adding link: 02074e80 -> 02074e84 // processing 02074e48 // 02074e48 c0830000 addgt r0, r3, r0 // adding link: 02074e48 -> 02074e4c // processing 02074e64 // 02074e64 e0c35692 smull r5, r3, r2, r6 // adding link: 02074e64 -> 02074e68 // processing 02074e84 // 02074e84 e5910008 ldr r0, [r1, #0x8] // adding link: 02074e84 -> 02074e88 // processing 02074e4c // 02074e4c c0405005 subgt r5, r0, r5 // adding link: 02074e4c -> 02074e50 // processing 02074e68 // 02074e68 e1a02c25 mov r2, r5, lsr #0x18 // adding link: 02074e68 -> 02074e6c // processing 02074e88 // 02074e88 e5913018 ldr r3, [r1, #0x18] // adding link: 02074e88 -> 02074e8c // processing 02074e50 // 02074e50 d0835000 addle r5, r3, r0 // adding link: 02074e50 -> 02074e54 // processing 02074e6c // 02074e6c e1822403 orr r2, r2, r3, lsl #0x8 // adding link: 02074e6c -> 02074e70 // processing 02074e8c // 02074e8c e0860100 add r0, r6, r0, lsl #0x2 // adding link: 02074e8c -> 02074e90 // processing 02074e54 // 02074e54 ea000009 b 0x2074e80 // adding jump: 02074e54 -> 02074e80 (sub=0) // processing 02074e70 // 02074e70 e3560000 cmp r6, #0x0 // adding link: 02074e70 -> 02074e74 // processing 02074e90 // 02074e90 e591201c ldr r2, [r1, #0x1c] // adding link: 02074e90 -> 02074e94 // processing 02074e74 // 02074e74 c0820000 addgt r0, r2, r0 // adding link: 02074e74 -> 02074e78 // processing 02074e94 // 02074e94 e5900008 ldr r0, [r0, #0x8] // adding link: 02074e94 -> 02074e98 // processing 02074e78 // 02074e78 c0405006 subgt r5, r0, r6 // adding link: 02074e78 -> 02074e7c // processing 02074e98 // 02074e98 e0c78395 smull r8, r7, r5, r3 // adding link: 02074e98 -> 02074e9c // processing 02074e7c // 02074e7c d0825000 addle r5, r2, r0 // adding link: 02074e7c -> 02074e80 // processing 02074e9c // 02074e9c e0c30092 smull r0, r3, r2, r0 // adding link: 02074e9c -> 02074ea0 // processing 02074ea0 // 02074ea0 e5915024 ldr r5, [r1, #0x24] // adding link: 02074ea0 -> 02074ea4 // processing 02074ea4 // 02074ea4 e1a02c20 mov r2, r0, lsr #0x18 // adding link: 02074ea4 -> 02074ea8 // processing 02074ea8 // 02074ea8 e0865105 add r5, r6, r5, lsl #0x2 // adding link: 02074ea8 -> 02074eac // processing 02074eac // 02074eac e1a00c28 mov r0, r8, lsr #0x18 // adding link: 02074eac -> 02074eb0 // processing 02074eb0 // 02074eb0 e1800407 orr r0, r0, r7, lsl #0x8 // adding link: 02074eb0 -> 02074eb4 // processing 02074eb4 // 02074eb4 e5955008 ldr r5, [r5, #0x8] // adding link: 02074eb4 -> 02074eb8 // processing 02074eb8 // 02074eb8 e1822403 orr r2, r2, r3, lsl #0x8 // adding link: 02074eb8 -> 02074ebc // processing 02074ebc // 02074ebc e0956002 adds r6, r5, r2 // adding link: 02074ebc -> 02074ec0 // processing 02074ec0 // 02074ec0 e1a02c43 mov r2, r3, asr #0x18 // adding link: 02074ec0 -> 02074ec4 // processing 02074ec4 // 02074ec4 e0837690 umull r7, r3, r0, r6 // adding link: 02074ec4 -> 02074ec8 // processing 02074ec8 // 02074ec8 e0a22fc5 adc r2, r2, r5, asr #0x1f // adding link: 02074ec8 -> 02074ecc // processing 02074ecc // 02074ecc e0233290 mla r3, r0, r2, r3 // adding link: 02074ecc -> 02074ed0 // processing 02074ed0 // 02074ed0 e1a00fc0 mov r0, r0, asr #0x1f // adding link: 02074ed0 -> 02074ed4 // processing 02074ed4 // 02074ed4 e0233690 mla r3, r0, r6, r3 // adding link: 02074ed4 -> 02074ed8 // processing 02074ed8 // 02074ed8 e1a02c27 mov r2, r7, lsr #0x18 // adding link: 02074ed8 -> 02074edc // processing 02074edc // 02074edc e5910028 ldr r0, [r1, #0x28] // adding link: 02074edc -> 02074ee0 // processing 02074ee0 // 02074ee0 e1822403 orr r2, r2, r3, lsl #0x8 // adding link: 02074ee0 -> 02074ee4 // processing 02074ee4 // 02074ee4 e0420000 sub r0, r2, r0 // adding link: 02074ee4 -> 02074ee8 // processing 02074ee8 // 02074ee8 e1a00340 mov r0, r0, asr #0x6 // adding link: 02074ee8 -> 02074eec // processing 02074eec // 02074eec e5810030 str r0, [r1, #0x30] // adding link: 02074eec -> 02074ef0 // processing 02074ef0 // 02074ef0 e5910028 ldr r0, [r1, #0x28] // adding link: 02074ef0 -> 02074ef4 // processing 02074ef4 // 02074ef4 e3a06000 mov r6, #0x0 // adding link: 02074ef4 -> 02074ef8 // processing 02074ef8 // 02074ef8 e581002c str r0, [r1, #0x2c] // adding link: 02074ef8 -> 02074efc // processing 02074efc // 02074efc e5812028 str r2, [r1, #0x28] // adding link: 02074efc -> 02074f00 // processing 02074f00 // 02074f00 e5940020 ldr r0, [r4, #0x20] // adding link: 02074f00 -> 02074f04 // processing 02074f04 // 02074f04 e3500000 cmp r0, #0x0 // adding link: 02074f04 -> 02074f08 // processing 02074f08 // 02074f08 da000145 ble 0x2075424 // adding jump: 02074f08 -> 02075424 (sub=0) // adding link: 02074f08 -> 02074f0c // processing 02075424 // 02075424 e3a00000 mov r0, #0x0 // adding link: 02075424 -> 02075428 // processing 02074f0c // 02074f0c e59fc554 ldr r12, [r15, #0x554] ; 0x2075468 // adding link: 02074f0c -> 02074f10 // processing 02075428 // 02075428 e28dd068 add r13, r13, #0x68 // adding link: 02075428 -> 0207542c // processing 02074f10 // 02074f10 e3e00102 mvn r0, #0x80000000 // adding link: 02074f10 -> 02074f14 // processing 0207542c // 0207542c e8bd8ff8 ldmia r13!, { r3-r11, r15 } // return // processing 02074f14 // 02074f14 e1a0292c mov r2, r12, lsr #0x12 // adding link: 02074f14 -> 02074f18 // processing 02074f18 // 02074f18 e58d2008 str r2, [r13, #0x8] // adding link: 02074f18 -> 02074f1c // processing 02074f1c // 02074f1c e59f250c ldr r2, [r15, #0x50c] ; 0x2075430 // adding link: 02074f1c -> 02074f20 // processing 02074f20 // 02074f20 e58d0004 str r0, [r13, #0x4] // adding link: 02074f20 -> 02074f24 // processing 02074f24 // 02074f24 e282203f add r2, r2, #0x3f // adding link: 02074f24 -> 02074f28 // processing 02074f28 // 02074f28 e58d200c str r2, [r13, #0xc] // adding link: 02074f28 -> 02074f2c // processing 02074f2c // 02074f2c e59f24fc ldr r2, [r15, #0x4fc] ; 0x2075430 // adding link: 02074f2c -> 02074f30 // processing 02074f30 // 02074f30 e59d1004 ldr r1, [r13, #0x4] // adding link: 02074f30 -> 02074f34 // processing 02074f34 // 02074f34 e282203f add r2, r2, #0x3f // adding link: 02074f34 -> 02074f38 // processing 02074f38 // 02074f38 e58d2010 str r2, [r13, #0x10] // adding link: 02074f38 -> 02074f3c // processing 02074f3c // 02074f3c e59d2004 ldr r2, [r13, #0x4] // adding link: 02074f3c -> 02074f40 // processing 02074f40 // 02074f40 e1a0e8ac mov r14, r12, lsr #0x11 // adding link: 02074f40 -> 02074f44 // processing 02074f44 // 02074f44 e242247f sub r2, r2, #0x7f000000 // adding link: 02074f44 -> 02074f48 // processing 02074f48 // 02074f48 e58d2014 str r2, [r13, #0x14] // adding link: 02074f48 -> 02074f4c // processing 02074f4c // 02074f4c e59d2004 ldr r2, [r13, #0x4] // adding link: 02074f4c -> 02074f50 // processing 02074f50 // 02074f50 e260047f rsb r0, r0, #0x7f000000 // adding link: 02074f50 -> 02074f54 // processing 02074f54 // 02074f54 e262247f rsb r2, r2, #0x7f000000 // adding link: 02074f54 -> 02074f58 // processing 02074f58 // 02074f58 e58d2018 str r2, [r13, #0x18] // adding link: 02074f58 -> 02074f5c // processing 02074f5c // 02074f5c e59d2004 ldr r2, [r13, #0x4] // adding link: 02074f5c -> 02074f60 // processing 02074f60 // 02074f60 e241147f sub r1, r1, #0x7f000000 // adding link: 02074f60 -> 02074f64 // processing 02074f64 // 02074f64 e242247f sub r2, r2, #0x7f000000 // adding link: 02074f64 -> 02074f68 // processing 02074f68 // 02074f68 e58d201c str r2, [r13, #0x1c] // adding link: 02074f68 -> 02074f6c // processing 02074f6c // 02074f6c e59d2004 ldr r2, [r13, #0x4] // adding link: 02074f6c -> 02074f70 // processing 02074f70 // 02074f70 e262247f rsb r2, r2, #0x7f000000 // adding link: 02074f70 -> 02074f74 // processing 02074f74 // 02074f74 e58d2020 str r2, [r13, #0x20] // adding link: 02074f74 -> 02074f78 // processing 02074f78 // 02074f78 e59d2004 ldr r2, [r13, #0x4] // adding link: 02074f78 -> 02074f7c // processing 02074f7c // 02074f7c e242247f sub r2, r2, #0x7f000000 // adding link: 02074f7c -> 02074f80 // processing 02074f80 // 02074f80 e58d2024 str r2, [r13, #0x24] // adding link: 02074f80 -> 02074f84 // processing 02074f84 // 02074f84 e59d2004 ldr r2, [r13, #0x4] // adding link: 02074f84 -> 02074f88 // processing 02074f88 // 02074f88 e262247f rsb r2, r2, #0x7f000000 // adding link: 02074f88 -> 02074f8c // processing 02074f8c // 02074f8c e58d2028 str r2, [r13, #0x28] // adding link: 02074f8c -> 02074f90 // processing 02074f90 // 02074f90 e28c2901 add r2, r12, #0x4000 // adding link: 02074f90 -> 02074f94 // processing 02074f94 // 02074f94 e58d202c str r2, [r13, #0x2c] // adding link: 02074f94 -> 02074f98 // processing 02074f98 // 02074f98 e5942040 ldr r2, [r4, #0x40] // adding link: 02074f98 -> 02074f9c // processing 02074f9c // 02074f9c e5923014 ldr r3, [r2, #0x14] // adding link: 02074f9c -> 02074fa0 // processing 02074fa0 // 02074fa0 e592501c ldr r5, [r2, #0x1c] // adding link: 02074fa0 -> 02074fa4 // processing 02074fa4 // 02074fa4 e0435005 sub r5, r3, r5 // adding link: 02074fa4 -> 02074fa8 // processing 02074fa8 // 02074fa8 e5825014 str r5, [r2, #0x14] // adding link: 02074fa8 -> 02074fac // processing 02074fac // 02074fac e592a018 ldr r10, [r2, #0x18] // adding link: 02074fac -> 02074fb0 // processing 02074fb0 // 02074fb0 e5925020 ldr r5, [r2, #0x20] // adding link: 02074fb0 -> 02074fb4 // processing 02074fb4 // 02074fb4 e04a5005 sub r5, r10, r5 // adding link: 02074fb4 -> 02074fb8 // processing 02074fb8 // 02074fb8 e5825018 str r5, [r2, #0x18] // adding link: 02074fb8 -> 02074fbc // processing 02074fbc // 02074fbc e592500c ldr r5, [r2, #0xc] // adding link: 02074fbc -> 02074fc0 // processing 02074fc0 // 02074fc0 e3550003 cmp r5, #0x3 // adding link: 02074fc0 -> 02074fc4 // processing 02074fc4 // 02074fc4 908ff105 addls r15, r15, r5, lsl #0x2 // foudn addls sha=2 rm=5 // adding jump: 02074fc4 -> 02074fc8 (sub=0) // target=02075050 // adding jump: 02074fc4 -> 02075050 (sub=0) // target=02074fdc // adding jump: 02074fc4 -> 02074fdc (sub=0) // target=0207500c // adding jump: 02074fc4 -> 0207500c (sub=0) // target=02075030 // adding jump: 02074fc4 -> 02075030 (sub=0) // processing 02074fc8 // 02074fc8 ea000020 b 0x2075050 // adding jump: 02074fc8 -> 02075050 (sub=0) // processing 02075050 // 02075050 e5925048 ldr r5, [r2, #0x48] // adding link: 02075050 -> 02075054 // processing 02074fdc // 02074fdc e5929060 ldr r9, [r2, #0x60] // adding link: 02074fdc -> 02074fe0 // processing 0207500c // 0207500c e5929068 ldr r9, [r2, #0x68] // adding link: 0207500c -> 02075010 // processing 02075030 // 02075030 e5929018 ldr r9, [r2, #0x18] // adding link: 02075030 -> 02075034 // processing 02075054 // 02075054 e3550001 cmp r5, #0x1 // adding link: 02075054 -> 02075058 // processing 02074fe0 // 02074fe0 e5928014 ldr r8, [r2, #0x14] // adding link: 02074fe0 -> 02074fe4 // processing 02075010 // 02075010 e5928014 ldr r8, [r2, #0x14] // adding link: 02075010 -> 02075014 // processing 02075034 // 02075034 e592504c ldr r5, [r2, #0x4c] // adding link: 02075034 -> 02075038 // processing 02075058 // 02075058 1a000003 bne 0x207506c // adding jump: 02075058 -> 0207506c (sub=0) // adding link: 02075058 -> 0207505c // processing 02074fe4 // 02074fe4 e592504c ldr r5, [r2, #0x4c] // adding link: 02074fe4 -> 02074fe8 // processing 02075014 // 02075014 e592504c ldr r5, [r2, #0x4c] // adding link: 02075014 -> 02075018 // processing 02075038 // 02075038 e592706c ldr r7, [r2, #0x6c] // adding link: 02075038 -> 0207503c // processing 0207506c // 0207506c e592502c ldr r5, [r2, #0x2c] // adding link: 0207506c -> 02075070 // processing 0207505c // 0207505c e5925014 ldr r5, [r2, #0x14] // adding link: 0207505c -> 02075060 // processing 02074fe8 // 02074fe8 e0070995 mul r7, r5, r9 // adding link: 02074fe8 -> 02074fec // processing 02075018 // 02075018 e0070995 mul r7, r5, r9 // adding link: 02075018 -> 0207501c // processing 0207503c // 0207503c e0c78795 smull r8, r7, r5, r7 // adding link: 0207503c -> 02075040 // processing 02075070 // 02075070 e5923014 ldr r3, [r2, #0x14] // adding link: 02075070 -> 02075074 // processing 02075060 // 02075060 e1550003 cmp r5, r3 // adding link: 02075060 -> 02075064 // processing 02074fec // 02074fec e1a053c7 mov r5, r7, asr #0x7 // adding link: 02074fec -> 02074ff0 // processing 0207501c // 0207501c e1a053c7 mov r5, r7, asr #0x7 // adding link: 0207501c -> 02075020 // processing 02075040 // 02075040 e1a05c28 mov r5, r8, lsr #0x18 // adding link: 02075040 -> 02075044 // processing 02075074 // 02075074 e5929018 ldr r9, [r2, #0x18] // adding link: 02075074 -> 02075078 // processing 02075064 // 02075064 c59d3004 ldrgt r3, [r13, #0x4] // adding link: 02075064 -> 02075068 // processing 02074ff0 // 02074ff0 e0050599 mul r5, r9, r5 // adding link: 02074ff0 -> 02074ff4 // processing 02075020 // 02075020 e0050599 mul r5, r9, r5 // adding link: 02075020 -> 02075024 // processing 02075044 // 02075044 e1855407 orr r5, r5, r7, lsl #0x8 // adding link: 02075044 -> 02075048 // processing 02075078 // 02075078 e3550003 cmp r5, #0x3 // adding link: 02075078 -> 0207507c // processing 02075068 // 02075068 c5823018 strgt r3, [r2, #0x18] // adding link: 02075068 -> 0207506c // processing 02074ff4 // 02074ff4 e04850c5 sub r5, r8, r5, asr #0x1 // adding link: 02074ff4 -> 02074ff8 // processing 02075024 // 02075024 e04850c5 sub r5, r8, r5, asr #0x1 // adding link: 02075024 -> 02075028 // processing 02075048 // 02075048 e0495005 sub r5, r9, r5 // adding link: 02075048 -> 0207504c // processing 0207507c // 0207507c 908ff105 addls r15, r15, r5, lsl #0x2 // foudn addls sha=2 rm=5 // adding jump: 0207507c -> 02075080 (sub=0) // target=020750fc // adding jump: 0207507c -> 020750fc (sub=0) // target=02075094 // adding jump: 0207507c -> 02075094 (sub=0) // target=020750c4 // adding jump: 0207507c -> 020750c4 (sub=0) // target=02075124 // adding jump: 0207507c -> 02075124 (sub=0) // processing 02074ff8 // 02074ff8 e5825014 str r5, [r2, #0x14] // adding link: 02074ff8 -> 02074ffc // processing 02075028 // 02075028 e5825014 str r5, [r2, #0x14] // adding link: 02075028 -> 0207502c // processing 0207504c // 0207504c e5825018 str r5, [r2, #0x18] // adding link: 0207504c -> 02075050 // processing 02075080 // 02075080 ea000031 b 0x207514c // adding jump: 02075080 -> 0207514c (sub=0) // processing 020750fc // 020750fc e5925014 ldr r5, [r2, #0x14] // adding link: 020750fc -> 02075100 // processing 02075094 // 02075094 e5925024 ldr r5, [r2, #0x24] // adding link: 02075094 -> 02075098 // processing 020750c4 // 020750c4 e1a03843 mov r3, r3, asr #0x10 // adding link: 020750c4 -> 020750c8 // processing 02075124 // 02075124 e5925040 ldr r5, [r2, #0x40] // adding link: 02075124 -> 02075128 // processing 02074ffc // 02074ffc e5929018 ldr r9, [r2, #0x18] // adding link: 02074ffc -> 02075000 // processing 0207502c // 0207502c ea000007 b 0x2075050 // adding jump: 0207502c -> 02075050 (sub=0) // processing 0207514c // 0207514c e5925030 ldr r5, [r2, #0x30] // adding link: 0207514c -> 02075150 // processing 02075100 // 02075100 e1a03843 mov r3, r3, asr #0x10 // adding link: 02075100 -> 02075104 // processing 02075098 // 02075098 e1a03843 mov r3, r3, asr #0x10 // adding link: 02075098 -> 0207509c // processing 020750c8 // 020750c8 e5925024 ldr r5, [r2, #0x24] // adding link: 020750c8 -> 020750cc // processing 02075128 // 02075128 e3150101 tst r5, #0x40000000 // adding link: 02075128 -> 0207512c // processing 02075000 // 02075000 e592504c ldr r5, [r2, #0x4c] // adding link: 02075000 -> 02075004 // processing 02075150 // 02075150 e3550003 cmp r5, #0x3 // adding link: 02075150 -> 02075154 // processing 02075104 // 02075104 e1a07845 mov r7, r5, asr #0x10 // adding link: 02075104 -> 02075108 // processing 0207509c // 0207509c e1a05845 mov r5, r5, asr #0x10 // adding link: 0207509c -> 020750a0 // processing 020750cc // 020750cc e3530000 cmp r3, #0x0 // adding link: 020750cc -> 020750d0 // processing 0207512c // 0207512c 059f32fc ldreq r3, [r15, #0x2fc] ; 0x2075430 // adding link: 0207512c -> 02075130 // processing 02075004 // 02075004 e5927064 ldr r7, [r2, #0x64] // adding link: 02075004 -> 02075008 // processing 02075154 // 02075154 908ff105 addls r15, r15, r5, lsl #0x2 // foudn addls sha=2 rm=5 // adding jump: 02075154 -> 02075158 (sub=0) // target=020751d4 // adding jump: 02075154 -> 020751d4 (sub=0) // target=0207516c // adding jump: 02075154 -> 0207516c (sub=0) // target=0207519c // adding jump: 02075154 -> 0207519c (sub=0) // target=020751fc // adding jump: 02075154 -> 020751fc (sub=0) // processing 02075108 // 02075108 e59d500c ldr r5, [r13, #0xc] // adding link: 02075108 -> 0207510c // processing 020750a0 // 020750a0 e0050593 mul r5, r3, r5 // adding link: 020750a0 -> 020750a4 // processing 020750d0 // 020750d0 d2633000 rsble r3, r3, #0x0 // adding link: 020750d0 -> 020750d4 // processing 02075130 // 02075130 00253003 eoreq r3, r5, r3 // adding link: 02075130 -> 02075134 // processing 02075008 // 02075008 ea00000b b 0x207503c // adding jump: 02075008 -> 0207503c (sub=0) // processing 02075158 // 02075158 ea000035 b 0x2075234 // adding jump: 02075158 -> 02075234 (sub=0) // processing 020751d4 // 020751d4 e5927018 ldr r7, [r2, #0x18] // adding link: 020751d4 -> 020751d8 // processing 0207516c // 0207516c e5925028 ldr r5, [r2, #0x28] // adding link: 0207516c -> 02075170 // processing 0207519c // 0207519c e1a05849 mov r5, r9, asr #0x10 // adding link: 0207519c -> 020751a0 // processing 020751fc // 020751fc e5927044 ldr r7, [r2, #0x44] // adding link: 020751fc -> 02075200 // processing 0207510c // 0207510c e3530000 cmp r3, #0x0 // adding link: 0207510c -> 02075110 // processing 020750a4 // 020750a4 e1a05445 mov r5, r5, asr #0x8 // adding link: 020750a4 -> 020750a8 // processing 020750d4 // 020750d4 e08c3083 add r3, r12, r3, lsl #0x1 // adding link: 020750d4 -> 020750d8 // processing 02075134 // 02075134 01a03083 moveq r3, r3, lsl #0x1 // adding link: 02075134 -> 02075138 // processing 02075234 // 02075234 e1a05489 mov r5, r9, lsl #0x9 // adding link: 02075234 -> 02075238 // processing 020751d8 // 020751d8 e1a05849 mov r5, r9, asr #0x10 // adding link: 020751d8 -> 020751dc // processing 02075170 // 02075170 e1a07849 mov r7, r9, asr #0x10 // adding link: 02075170 -> 02075174 // processing 020751a0 // 020751a0 e3550000 cmp r5, #0x0 // adding link: 020751a0 -> 020751a4 // processing 02075200 // 02075200 e3170101 tst r7, #0x40000000 // adding link: 02075200 -> 02075204 // processing 02075110 // 02075110 e0050597 mul r5, r7, r5 // adding link: 02075110 -> 02075114 // processing 020750a8 // 020750a8 e15508ac cmp r5, r12, lsr #0x11 // adding link: 020750a8 -> 020750ac // processing 020750d8 // 020750d8 e1a05845 mov r5, r5, asr #0x10 // adding link: 020750d8 -> 020750dc // processing 02075138 // 02075138 03833001 orreq r3, r3, #0x1 // adding link: 02075138 -> 0207513c // processing 02075238 // 02075238 e582504c str r5, [r2, #0x4c] // adding link: 02075238 -> 0207523c // processing 020751dc // 020751dc e1a08847 mov r8, r7, asr #0x10 // adding link: 020751dc -> 020751e0 // processing 02075174 // 02075174 e1a05845 mov r5, r5, asr #0x10 // adding link: 02075174 -> 02075178 // processing 020751a4 // 020751a4 d2655000 rsble r5, r5, #0x0 // adding link: 020751a4 -> 020751a8 // processing 02075204 // 02075204 059f5224 ldreq r5, [r15, #0x224] ; 0x2075430 // adding link: 02075204 -> 02075208 // processing 02075114 // 02075114 d2633000 rsble r3, r3, #0x0 // adding link: 02075114 -> 02075118 // processing 020750ac // 020750ac c1a0500e movgt r5, r14 // adding link: 020750ac -> 020750b0 // processing 020750dc // 020750dc e0050593 mul r5, r3, r5 // adding link: 020750dc -> 020750e0 // processing 0207513c // 0207513c 11a03085 movne r3, r5, lsl #0x1 // adding link: 0207513c -> 02075140 // processing 0207523c // 0207523c e5925038 ldr r5, [r2, #0x38] // adding link: 0207523c -> 02075240 // processing 020751e0 // 020751e0 e59d7010 ldr r7, [r13, #0x10] // adding link: 020751e0 -> 020751e4 // processing 02075178 // 02075178 e0050597 mul r5, r7, r5 // adding link: 02075178 -> 0207517c // processing 020751a8 // 020751a8 e08c7085 add r7, r12, r5, lsl #0x1 // adding link: 020751a8 -> 020751ac // processing 02075208 // 02075208 00275005 eoreq r5, r7, r5 // adding link: 02075208 -> 0207520c // processing 02075118 // 02075118 e08c3083 add r3, r12, r3, lsl #0x1 // adding link: 02075118 -> 0207511c // processing 020750b0 // 020750b0 ca000001 bgt 0x20750bc // adding jump: 020750b0 -> 020750bc (sub=0) // adding link: 020750b0 -> 020750b4 // processing 020750e0 // 020750e0 e1a03445 mov r3, r5, asr #0x8 // adding link: 020750e0 -> 020750e4 // processing 02075140 // 02075140 e5823040 str r3, [r2, #0x40] // adding link: 02075140 -> 02075144 // processing 02075240 // 02075240 e592203c ldr r2, [r2, #0x3c] // adding link: 02075240 -> 02075244 // processing 020751e4 // 020751e4 e3550000 cmp r5, #0x0 // adding link: 020751e4 -> 020751e8 // processing 0207517c // 0207517c e1a05445 mov r5, r5, asr #0x8 // adding link: 0207517c -> 02075180 // processing 020751ac // 020751ac e5925028 ldr r5, [r2, #0x28] // adding link: 020751ac -> 020751b0 // processing 0207520c // 0207520c 01a05085 moveq r5, r5, lsl #0x1 // adding link: 0207520c -> 02075210 // processing 0207511c // 0207511c e08337c5 add r3, r3, r5, asr #0xf // adding link: 0207511c -> 02075120 // processing 020750bc // 020750bc e0433005 sub r3, r3, r5 // adding link: 020750bc -> 020750c0 // processing 020750b4 // 020750b4 e155000c cmp r5, r12 // adding link: 020750b4 -> 020750b8 // processing 020750e4 // 020750e4 e15c0445 cmp r12, r5, asr #0x8 // adding link: 020750e4 -> 020750e8 // processing 02075144 // 02075144 e1a03003 mov r3, r3 // adding link: 02075144 -> 02075148 // processing 02075244 // 02075244 e5947044 ldr r7, [r4, #0x44] // adding link: 02075244 -> 02075248 // processing 020751e8 // 020751e8 e0070798 mul r7, r8, r7 // adding link: 020751e8 -> 020751ec // processing 02075180 // 02075180 e15508ac cmp r5, r12, lsr #0x11 // adding link: 02075180 -> 02075184 // processing 020751b0 // 020751b0 e1a05845 mov r5, r5, asr #0x10 // adding link: 020751b0 -> 020751b4 // processing 02075210 // 02075210 03855001 orreq r5, r5, #0x1 // adding link: 02075210 -> 02075214 // processing 02075120 // 02075120 ea000009 b 0x207514c // adding jump: 02075120 -> 0207514c (sub=0) // processing 020750c0 // 020750c0 ea000021 b 0x207514c // adding jump: 020750c0 -> 0207514c (sub=0) // processing 020750b8 // 020750b8 b1a0500c movlt r5, r12 // adding link: 020750b8 -> 020750bc // processing 020750e8 // 020750e8 c1a0300c movgt r3, r12 // adding link: 020750e8 -> 020750ec // processing 02075148 // 02075148 e1a03843 mov r3, r3, asr #0x10 // adding link: 02075148 -> 0207514c // processing 02075248 // 02075248 e0020299 mul r2, r9, r2 // adding link: 02075248 -> 0207524c // processing 020751ec // 020751ec d2655000 rsble r5, r5, #0x0 // adding link: 020751ec -> 020751f0 // processing 02075184 // 02075184 c1a0500e movgt r5, r14 // adding link: 02075184 -> 02075188 // processing 020751b4 // 020751b4 e0050597 mul r5, r7, r5 // adding link: 020751b4 -> 020751b8 // processing 02075214 // 02075214 11a05087 movne r5, r7, lsl #0x1 // adding link: 02075214 -> 02075218 // processing 020750ec // 020750ec ca000016 bgt 0x207514c // adding jump: 020750ec -> 0207514c (sub=0) // adding link: 020750ec -> 020750f0 // processing 0207524c // 0207524c e0222593 mla r2, r3, r5, r2 // adding link: 0207524c -> 02075250 // processing 020751f0 // 020751f0 e08c5085 add r5, r12, r5, lsl #0x1 // adding link: 020751f0 -> 020751f4 // processing 02075188 // 02075188 ca000001 bgt 0x2075194 // adding jump: 02075188 -> 02075194 (sub=0) // adding link: 02075188 -> 0207518c // processing 020751b8 // 020751b8 e1a09445 mov r9, r5, asr #0x8 // adding link: 020751b8 -> 020751bc // processing 02075218 // 02075218 e5825044 str r5, [r2, #0x44] // adding link: 02075218 -> 0207521c // processing 020750f0 // 020750f0 e15308ac cmp r3, r12, lsr #0x11 // adding link: 020750f0 -> 020750f4 // processing 02075250 // 02075250 e1a027c2 mov r2, r2, asr #0xf // adding link: 02075250 -> 02075254 // processing 020751f4 // 020751f4 e08597c7 add r9, r5, r7, asr #0xf // adding link: 020751f4 -> 020751f8 // processing 02075194 // 02075194 e0479005 sub r9, r7, r5 // adding link: 02075194 -> 02075198 // processing 0207518c // 0207518c e155000c cmp r5, r12 // adding link: 0207518c -> 02075190 // processing 020751bc // 020751bc e15c0445 cmp r12, r5, asr #0x8 // adding link: 020751bc -> 020751c0 // processing 0207521c // 0207521c e029500a eor r5, r9, r10 // adding link: 0207521c -> 02075220 // processing 020750f4 // 020750f4 c1a0300e movgt r3, r14 // adding link: 020750f4 -> 020750f8 // processing 02075254 // 02075254 e5973024 ldr r3, [r7, #0x24] // adding link: 02075254 -> 02075258 // processing 020751f8 // 020751f8 ea00000d b 0x2075234 // adding jump: 020751f8 -> 02075234 (sub=0) // processing 02075198 // 02075198 ea000025 b 0x2075234 // adding jump: 02075198 -> 02075234 (sub=0) // processing 02075190 // 02075190 b1a0500c movlt r5, r12 // adding link: 02075190 -> 02075194 // processing 020751c0 // 020751c0 c1a0900c movgt r9, r12 // adding link: 020751c0 -> 020751c4 // processing 02075220 // 02075220 e1b05fc5 movs r5, r5, asr #0x1f // adding link: 02075220 -> 02075224 // processing 020750f8 // 020750f8 ea000013 b 0x207514c // adding jump: 020750f8 -> 0207514c (sub=0) // processing 02075258 // 02075258 e1a05482 mov r5, r2, lsl #0x9 // adding link: 02075258 -> 0207525c // processing 020751c4 // 020751c4 ca00001a bgt 0x2075234 // adding jump: 020751c4 -> 02075234 (sub=0) // adding link: 020751c4 -> 020751c8 // processing 02075224 // 02075224 15925044 ldrne r5, [r2, #0x44] // adding link: 02075224 -> 02075228 // processing 0207525c // 0207525c e0030392 mul r3, r2, r3 // adding link: 0207525c -> 02075260 // processing 020751c8 // 020751c8 e15908ac cmp r9, r12, lsr #0x11 // adding link: 020751c8 -> 020751cc // processing 02075228 // 02075228 11a09845 movne r9, r5, asr #0x10 // adding link: 02075228 -> 0207522c // processing 02075260 // 02075260 e5978034 ldr r8, [r7, #0x34] // adding link: 02075260 -> 02075264 // processing 020751cc // 020751cc c1a0900e movgt r9, r14 // adding link: 020751cc -> 020751d0 // processing 0207522c // 0207522c 15829050 strne r9, [r2, #0x50] // adding link: 0207522c -> 02075230 // processing 02075264 // 02075264 e597205c ldr r2, [r7, #0x5c] // adding link: 02075264 -> 02075268 // processing 020751d0 // 020751d0 ea000017 b 0x2075234 // adding jump: 020751d0 -> 02075234 (sub=0) // processing 02075230 // 02075230 05929050 ldreq r9, [r2, #0x50] // adding link: 02075230 -> 02075234 // processing 02075268 // 02075268 e597b038 ldr r11, [r7, #0x38] // adding link: 02075268 -> 0207526c // processing 0207526c // 0207526c e0ca2298 smull r2, r10, r8, r2 // adding link: 0207526c -> 02075270 // processing 02075270 // 02075270 e1a02ba2 mov r2, r2, lsr #0x17 // adding link: 02075270 -> 02075274 // processing 02075274 // 02075274 e182248a orr r2, r2, r10, lsl #0x9 // adding link: 02075274 -> 02075278 // processing 02075278 // 02075278 e09b2002 adds r2, r11, r2 // adding link: 02075278 -> 0207527c // processing 0207527c // 0207527c e0623343 rsb r3, r2, r3, asr #0x6 // adding link: 0207527c -> 02075280 // processing 02075280 // 02075280 e59d2014 ldr r2, [r13, #0x14] // adding link: 02075280 -> 02075284 // processing 02075284 // 02075284 e1530002 cmp r3, r2 // adding link: 02075284 -> 02075288 // processing 02075288 // 02075288 c1a03001 movgt r3, r1 // adding link: 02075288 -> 0207528c // processing 0207528c // 0207528c ca000002 bgt 0x207529c // adding jump: 0207528c -> 0207529c (sub=0) // adding link: 0207528c -> 02075290 // processing 0207529c // 0207529c e5972050 ldr r2, [r7, #0x50] // adding link: 0207529c -> 020752a0 // processing 02075290 // 02075290 e59d2018 ldr r2, [r13, #0x18] // adding link: 02075290 -> 02075294 // processing 020752a0 // 020752a0 e597b040 ldr r11, [r7, #0x40] // adding link: 020752a0 -> 020752a4 // processing 02075294 // 02075294 e1530002 cmp r3, r2 // adding link: 02075294 -> 02075298 // processing 020752a4 // 020752a4 e0ca2293 smull r2, r10, r3, r2 // adding link: 020752a4 -> 020752a8 // processing 02075298 // 02075298 b1a03000 movlt r3, r0 // adding link: 02075298 -> 0207529c // processing 020752a8 // 020752a8 e1a02ba2 mov r2, r2, lsr #0x17 // adding link: 020752a8 -> 020752ac // processing 020752ac // 020752ac e182248a orr r2, r2, r10, lsl #0x9 // adding link: 020752ac -> 020752b0 // processing 020752b0 // 020752b0 e35b0001 cmp r11, #0x1 // adding link: 020752b0 -> 020752b4 // processing 020752b4 // 020752b4 01a05003 moveq r5, r3 // adding link: 020752b4 -> 020752b8 // processing 020752b8 // 020752b8 e0988002 adds r8, r8, r2 // adding link: 020752b8 -> 020752bc // processing 020752bc // 020752bc e59d201c ldr r2, [r13, #0x1c] // adding link: 020752bc -> 020752c0 // processing 020752c0 // 020752c0 e1580002 cmp r8, r2 // adding link: 020752c0 -> 020752c4 // processing 020752c4 // 020752c4 c1a08001 movgt r8, r1 // adding link: 020752c4 -> 020752c8 // processing 020752c8 // 020752c8 ca000002 bgt 0x20752d8 // adding jump: 020752c8 -> 020752d8 (sub=0) // adding link: 020752c8 -> 020752cc // processing 020752d8 // 020752d8 e5878034 str r8, [r7, #0x34] // adding link: 020752d8 -> 020752dc // processing 020752cc // 020752cc e59d2020 ldr r2, [r13, #0x20] // adding link: 020752cc -> 020752d0 // processing 020752dc // 020752dc e5972050 ldr r2, [r7, #0x50] // adding link: 020752dc -> 020752e0 // processing 020752d0 // 020752d0 e1580002 cmp r8, r2 // adding link: 020752d0 -> 020752d4 // processing 020752e0 // 020752e0 e35b0002 cmp r11, #0x2 // adding link: 020752e0 -> 020752e4 // processing 020752d4 // 020752d4 b1a08000 movlt r8, r0 // adding link: 020752d4 -> 020752d8 // processing 020752e4 // 020752e4 e0ca2298 smull r2, r10, r8, r2 // adding link: 020752e4 -> 020752e8 // processing 020752e8 // 020752e8 e1a02ba2 mov r2, r2, lsr #0x17 // adding link: 020752e8 -> 020752ec // processing 020752ec // 020752ec e5973038 ldr r3, [r7, #0x38] // adding link: 020752ec -> 020752f0 // processing 020752f0 // 020752f0 e182248a orr r2, r2, r10, lsl #0x9 // adding link: 020752f0 -> 020752f4 // processing 020752f4 // 020752f4 01a05008 moveq r5, r8 // adding link: 020752f4 -> 020752f8 // processing 020752f8 // 020752f8 e0932002 adds r2, r3, r2 // adding link: 020752f8 -> 020752fc // processing 020752fc // 020752fc e59d3024 ldr r3, [r13, #0x24] // adding link: 020752fc -> 02075300 // processing 02075300 // 02075300 e1520003 cmp r2, r3 // adding link: 02075300 -> 02075304 // processing 02075304 // 02075304 c1a02001 movgt r2, r1 // adding link: 02075304 -> 02075308 // processing 02075308 // 02075308 ca000002 bgt 0x2075318 // adding jump: 02075308 -> 02075318 (sub=0) // adding link: 02075308 -> 0207530c // processing 02075318 // 02075318 e5872038 str r2, [r7, #0x38] // adding link: 02075318 -> 0207531c // processing 0207530c // 0207530c e59d3028 ldr r3, [r13, #0x28] // adding link: 0207530c -> 02075310 // processing 0207531c // 0207531c e5973040 ldr r3, [r7, #0x40] // adding link: 0207531c -> 02075320 // processing 02075310 // 02075310 e1520003 cmp r2, r3 // adding link: 02075310 -> 02075314 // processing 02075320 // 02075320 e3530000 cmp r3, #0x0 // adding link: 02075320 -> 02075324 // processing 02075314 // 02075314 b1a02000 movlt r2, r0 // adding link: 02075314 -> 02075318 // processing 02075324 // 02075324 01a05002 moveq r5, r2 // adding link: 02075324 -> 02075328 // processing 02075328 // 02075328 e5973050 ldr r3, [r7, #0x50] // adding link: 02075328 -> 0207532c // processing 0207532c // 0207532c e5972054 ldr r2, [r7, #0x54] // adding link: 0207532c -> 02075330 // processing 02075330 // 02075330 e1a054c5 mov r5, r5, asr #0x9 // adding link: 02075330 -> 02075334 // processing 02075334 // 02075334 e0832002 add r2, r3, r2 // adding link: 02075334 -> 02075338 // processing 02075338 // 02075338 e5872050 str r2, [r7, #0x50] // adding link: 02075338 -> 0207533c // processing 0207533c // 0207533c e597305c ldr r3, [r7, #0x5c] // adding link: 0207533c -> 02075340 // processing 02075340 // 02075340 e5972060 ldr r2, [r7, #0x60] // adding link: 02075340 -> 02075344 // processing 02075344 // 02075344 e0832002 add r2, r3, r2 // adding link: 02075344 -> 02075348 // processing 02075348 // 02075348 e587205c str r2, [r7, #0x5c] // adding link: 02075348 -> 0207534c // processing 0207534c // 0207534c e5942048 ldr r2, [r4, #0x48] // adding link: 0207534c -> 02075350 // processing 02075350 // 02075350 e5923038 ldr r3, [r2, #0x38] // adding link: 02075350 -> 02075354 // processing 02075354 // 02075354 e0030395 mul r3, r5, r3 // adding link: 02075354 -> 02075358 // processing 02075358 // 02075358 e15c05c3 cmp r12, r3, asr #0xb // adding link: 02075358 -> 0207535c // processing 0207535c // 0207535c e1a035c3 mov r3, r3, asr #0xb // adding link: 0207535c -> 02075360 // processing 02075360 // 02075360 e5823034 str r3, [r2, #0x34] // adding link: 02075360 -> 02075364 // processing 02075364 // 02075364 c1a0300c movgt r3, r12 // adding link: 02075364 -> 02075368 // processing 02075368 // 02075368 ca000001 bgt 0x2075374 // adding jump: 02075368 -> 02075374 (sub=0) // adding link: 02075368 -> 0207536c // processing 02075374 // 02075374 e5823034 str r3, [r2, #0x34] // adding link: 02075374 -> 02075378 // processing 0207536c // 0207536c e15308ac cmp r3, r12, lsr #0x11 // adding link: 0207536c -> 02075370 // processing 02075378 // 02075378 e1a070c3 mov r7, r3, asr #0x1 // adding link: 02075378 -> 0207537c // processing 02075370 // 02075370 c1a0300e movgt r3, r14 // adding link: 02075370 -> 02075374 // processing 0207537c // 0207537c e592803c ldr r8, [r2, #0x3c] // adding link: 0207537c -> 02075380 // processing 02075380 // 02075380 e592302c ldr r3, [r2, #0x2c] // adding link: 02075380 -> 02075384 // processing 02075384 // 02075384 e0080895 mul r8, r5, r8 // adding link: 02075384 -> 02075388 // processing 02075388 // 02075388 e08757c8 add r5, r7, r8, asr #0xf // adding link: 02075388 -> 0207538c // processing 0207538c // 0207538c e1a050c5 mov r5, r5, asr #0x1 // adding link: 0207538c -> 02075390 // processing 02075390 // 02075390 e1a034c3 mov r3, r3, asr #0x9 // adding link: 02075390 -> 02075394 // processing 02075394 // 02075394 e0030395 mul r3, r5, r3 // adding link: 02075394 -> 02075398 // processing 02075398 // 02075398 e1a037c3 mov r3, r3, asr #0xf // adding link: 02075398 -> 0207539c // processing 0207539c // 0207539c e592500c ldr r5, [r2, #0xc] // adding link: 0207539c -> 020753a0 // processing 020753a0 // 020753a0 e3550000 cmp r5, #0x0 // adding link: 020753a0 -> 020753a4 // processing 020753a4 // 020753a4 0a000007 beq 0x20753c8 // adding jump: 020753a4 -> 020753c8 (sub=0) // adding link: 020753a4 -> 020753a8 // processing 020753c8 // 020753c8 e59d502c ldr r5, [r13, #0x2c] // adding link: 020753c8 -> 020753cc // processing 020753a8 // 020753a8 e0050399 mul r5, r9, r3 // adding link: 020753a8 -> 020753ac // processing 020753cc // 020753cc e1530005 cmp r3, r5 // adding link: 020753cc -> 020753d0 // processing 020753ac // 020753ac e1a087c5 mov r8, r5, asr #0xf // adding link: 020753ac -> 020753b0 // processing 020753d0 // 020753d0 b28c3901 addlt r3, r12, #0x4000 // adding link: 020753d0 -> 020753d4 // processing 020753b0 // 020753b0 e5927020 ldr r7, [r2, #0x20] // adding link: 020753b0 -> 020753b4 // processing 020753d4 // 020753d4 ba000001 blt 0x20753e0 // adding jump: 020753d4 -> 020753e0 (sub=0) // adding link: 020753d4 -> 020753d8 // processing 020753b4 // 020753b4 e0050798 mul r5, r8, r7 // adding link: 020753b4 -> 020753b8 // processing 020753e0 // 020753e0 e1a07083 mov r7, r3, lsl #0x1 // adding link: 020753e0 -> 020753e4 // processing 020753d8 // 020753d8 e153092c cmp r3, r12, lsr #0x12 // adding link: 020753d8 -> 020753dc // processing 020753b8 // 020753b8 e06778ac rsb r7, r7, r12, lsr #0x11 // adding link: 020753b8 -> 020753bc // processing 020753e4 // 020753e4 e15c0083 cmp r12, r3, lsl #0x1 // adding link: 020753e4 -> 020753e8 // processing 020753dc // 020753dc c59d3008 ldrgt r3, [r13, #0x8] // adding link: 020753dc -> 020753e0 // processing 020753bc // 020753bc e0070793 mul r7, r3, r7 // adding link: 020753bc -> 020753c0 // processing 020753e8 // 020753e8 c1a0700c movgt r7, r12 // adding link: 020753e8 -> 020753ec // processing 020753c0 // 020753c0 e1a037c5 mov r3, r5, asr #0xf // adding link: 020753c0 -> 020753c4 // processing 020753ec // 020753ec ca000001 bgt 0x20753f8 // adding jump: 020753ec -> 020753f8 (sub=0) // adding link: 020753ec -> 020753f0 // processing 020753c4 // 020753c4 e08337c7 add r3, r3, r7, asr #0xf // adding link: 020753c4 -> 020753c8 // processing 020753f8 // 020753f8 e592502c ldr r5, [r2, #0x2c] // adding link: 020753f8 -> 020753fc // processing 020753f0 // 020753f0 e15708ac cmp r7, r12, lsr #0x11 // adding link: 020753f0 -> 020753f4 // processing 020753fc // 020753fc e5923030 ldr r3, [r2, #0x30] // adding link: 020753fc -> 02075400 // processing 020753f4 // 020753f4 c1a0700e movgt r7, r14 // adding link: 020753f4 -> 020753f8 // processing 02075400 // 02075400 e2866001 add r6, r6, #0x1 // adding link: 02075400 -> 02075404 // processing 02075404 // 02075404 e0853003 add r3, r5, r3 // adding link: 02075404 -> 02075408 // processing 02075408 // 02075408 e582302c str r3, [r2, #0x2c] // adding link: 02075408 -> 0207540c // processing 0207540c // 0207540c e59d2000 ldr r2, [r13] // adding link: 0207540c -> 02075410 // processing 02075410 // 02075410 e0c270b2 strh r7, [r2], #0x2 // adding link: 02075410 -> 02075414 // processing 02075414 // 02075414 e58d2000 str r2, [r13] // adding link: 02075414 -> 02075418 // processing 02075418 // 02075418 e5942020 ldr r2, [r4, #0x20] // adding link: 02075418 -> 0207541c // processing 0207541c // 0207541c e1560002 cmp r6, r2 // adding link: 0207541c -> 02075420 // processing 02075420 // 02075420 bafffedc blt 0x2074f98 // adding jump: 02075420 -> 02074f98 (sub=0) // adding link: 02075420 -> 02075424 tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick // cfg /*** SUBROUTINE, color=1 ***/ case 0x02074720: lab02074720: /* 02074720: stmdb r13!, { r3-r11, r14 } in=06ff9 out=00000 */ *MEM32(R13 - 4) = R14; *MEM32(R13 - 8) = R11; *MEM32(R13 - 12) = R10; *MEM32(R13 - 16) = R9; *MEM32(R13 - 20) = R8; *MEM32(R13 - 24) = R7; *MEM32(R13 - 28) = R6; *MEM32(R13 - 32) = R5; *MEM32(R13 - 36) = R4; *MEM32(R13 - 40) = R3; R13 -= 40; /* 02074724: sub r13, r13, #0x68 in=02fc9 out=00000 */ R13 = R13 - 104; /* 02074728: ldr r1, [r0] in=02fc9 out=00000 */ R1 = *MEM32(R0); /* 0207472c: mov r4, r0 in=02fcb out=00000 */ R4 = R0; /* 02074730: ldr r1, [r1, #0x28] in=02fdb out=00000 */ R1 = *MEM32(R1 + 0x28); /* 02074734: mov r5, #0x0 in=02fdb out=00000 */ R5 = 0; /* 02074738: blx r1 in=02ffb out=00000 */ R14 = 0x0207473c; R15 = R1; goto dispatch; case 0x0207473c: lab0207473c: /* 0207473c: ldr r0, [r4, #0x34] in=0a030 out=00000 */ R0 = *MEM32(R4 + 0x34); /* 02074740: ldr r1, [r4, #0x1c] in=0a031 out=00000 */ R1 = *MEM32(R4 + 0x1c); /* 02074744: ldr r3, [r0, #0x14] in=0a033 out=00000 */ R3 = *MEM32(R0 + 0x14); /* 02074748: ldr r2, [r0, #0x18] in=0a03b out=00000 */ R2 = *MEM32(R0 + 0x18); /* 0207474c: ldr r1, [r1] in=0a03f out=00000 */ R1 = *MEM32(R1); /* 02074750: sub r3, r3, r2 in=0a03f out=00000 */ R3 = R3 - R2; /* 02074754: str r3, [r0, #0x14] in=0a03b out=00000 */ *MEM32(R0 + 0x14) = R3; /* 02074758: str r1, [r13] in=0a03b out=00000 */ *MEM32(R13) = R1; /* 0207475c: ldr r1, [r0, #0x1c] in=0a039 out=00000 */ R1 = *MEM32(R0 + 0x1c); /* 02074760: ldr r2, [r0, #0x18] in=0a03b out=00000 */ R2 = *MEM32(R0 + 0x18); /* 02074764: mov r3, r3, asr #0x7 in=0a03f out=00000 */ R3 = ((int32_t)R3 >> 7); /* 02074768: add r2, r1, r2 in=0a03f out=00000 */ R2 = R1 + R2; /* 0207476c: str r2, [r0, #0x1c] in=0a03f out=00000 */ *MEM32(R0 + 0x1c) = R2; /* 02074770: ldr r7, [r0, #0x24] in=0a03f out=00000 */ R7 = *MEM32(R0 + 0x24); /* 02074774: add r2, r3, r2, asr #0x7 in=0a0bf out=00000 */ R2 = R3 + ((int32_t)R2 >> 7); /* 02074778: tst r7, #0x40000000 in=0a0bf out=00000 */ tmpA = R7 & 0x40000000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 0207477c: ldreq r6, [r15, #0xcac] ; 0x2075430 in=1a0bf out=00000 */ if (Z) { R6 = 0x00001064; } /* 02074780: eoreq r6, r7, r6 in=1a0ff out=00000 */ if (Z) { R6 = R7 ^ R6; } /* 02074784: moveq r6, r6, lsl #0x1 in=1a0ff out=00000 */ if (Z) { R6 = (R6 << 1); } /* 02074788: orreq r6, r6, #0x1 in=1a0ff out=00000 */ if (Z) { R6 = R6 | 1; } /* 0207478c: movne r6, r7, lsl #0x1 in=1a0bf out=00000 */ if (!Z) { R6 = (R7 << 1); } /* 02074790: str r6, [r0, #0x24] in=0a07f out=00000 */ *MEM32(R0 + 0x24) = R6; /* 02074794: ldr r6, [r0, #0x1c] in=0a03f out=00000 */ R6 = *MEM32(R0 + 0x1c); /* 02074798: eor r1, r1, r6 in=0a07f out=00000 */ R1 = R1 ^ R6; /* 0207479c: movs r1, r1, asr #0x1f in=0a03f out=00000 */ C = ((int32_t)R1 >> 30) & 1; R1 = ((int32_t)R1 >> 31); Z = R1 == 0; N = (int32_t)R1 < 0; /* 020747a0: ldrne r1, [r0, #0x24] in=1a03d out=00000 */ if (!Z) { R1 = *MEM32(R0 + 0x24); } /* 020747a4: mvn r6, #0xff000000 in=1a03f out=00000 */ R6 = ~0xff000000; /* 020747a8: movne r1, r1, asr #0x7 in=1a07f out=00000 */ if (!Z) { R1 = ((int32_t)R1 >> 7); } /* 020747ac: strne r1, [r0] in=1a07f out=00000 */ if (!Z) { *MEM32(R0) = R1; } /* 020747b0: mov r1, r3 in=0a07d out=00000 */ R1 = R3; /* 020747b4: cmp r3, #0x0 in=0a07d out=00000 */ tmpA = R3; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020747b8: rsble r1, r3, #0x0 in=da07d out=00000 */ if (Z || (N != V)) { R1 = 0 - R3; } /* 020747bc: mov r1, r1, lsl #0x1 in=0a07f out=00000 */ R1 = (R1 << 1); /* 020747c0: add r1, r1, #0x1 in=0a07f out=00000 */ R1 = R1 + 1; /* 020747c4: str r3, [r0, #0x4] in=0a07f out=00000 */ *MEM32(R0 + 0x4) = R3; /* 020747c8: add r3, r1, #0xff000000 in=0a077 out=00000 */ R3 = R1 + 0xff000000; /* 020747cc: add r1, r2, #0x1000000 in=0a07d out=00000 */ R1 = R2 + 0x1000000; /* 020747d0: str r3, [r0, #0x8] in=0a07b out=00000 */ *MEM32(R0 + 0x8) = R3; /* 020747d4: mov r1, r1, asr #0x1 in=0a073 out=00000 */ R1 = ((int32_t)R1 >> 1); /* 020747d8: str r1, [r0, #0xc] in=0a073 out=00000 */ *MEM32(R0 + 0xc) = R1; /* 020747dc: ldr r0, [r4, #0x30] in=0a070 out=00000 */ R0 = *MEM32(R4 + 0x30); /* 020747e0: ldrsb r1, [r0, #0x4] in=0a071 out=00000 */ R1 = (int8_t)*MEM8(R0 + 0x4); /* 020747e4: cmp r1, #0x3 in=0a073 out=00000 */ tmpA = R1; tmpB = 3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020747e8: addls r15, r15, r1, lsl #0x2 in=3a073 out=00000 */ switch(R1) { default: goto lab020747ec; case 0: goto lab02074800; case 1: goto lab02074878; case 2: goto lab020748bc; case 3: goto lab020748cc; } case 0x020747ec: lab020747ec: /* 020747ec: b 0x2074900 in=02010 out=00000 */ goto lab02074900; case 0x02074900: lab02074900: /* 02074900: ldr r0, [r4, #0x38] in=02010 out=00000 */ R0 = *MEM32(R4 + 0x38); /* 02074904: ldr r2, [r0, #0xc] in=02011 out=00000 */ R2 = *MEM32(R0 + 0xc); /* 02074908: ldmia r0, { r1, r5 } in=02015 out=00000 */ R1 = *MEM32(R0 + 0); R5 = *MEM32(R0 + 4); /* 0207490c: sub r1, r1, r5 in=02037 out=00000 */ R1 = R1 - R5; /* 02074910: smull r3, r1, r2, r1 in=02037 out=00000 */ tmp64 = (int64_t)(int32_t)R2 * (int64_t)(int32_t)R1; R3 = tmp64; R1 = tmp64 >> 32; /* 02074914: mov r2, r3, lsr #0xf in=0203b out=00000 */ R2 = (R3 >> 15); /* 02074918: orr r2, r2, r1, lsl #0x11 in=02037 out=00000 */ R2 = R2 | (R1 << 17); /* 0207491c: add r1, r5, r2 in=02035 out=00000 */ R1 = R5 + R2; /* 02074920: str r1, [r0, #0x4] in=02013 out=00000 */ *MEM32(R0 + 0x4) = R1; /* 02074924: ldrb r1, [r0, #0x10] in=02011 out=00000 */ R1 = *MEM8(R0 + 0x10); /* 02074928: ldr r2, [r0] in=02013 out=00000 */ R2 = *MEM32(R0); /* 0207492c: cmp r1, #0x0 in=02017 out=00000 */ tmpA = R1; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074930: ldr r1, [r0, #0x4] in=12015 out=00000 */ R1 = *MEM32(R0 + 0x4); /* 02074934: beq 0x2074944 in=12017 out=00000 */ if (Z) { goto lab02074944; } /* 02074938: cmp r1, r2 in=02017 out=00000 */ tmpA = R1; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 0207493c: strgt r2, [r0, #0x4] in=d2015 out=00000 */ if (!Z && (N == V)) { *MEM32(R0 + 0x4) = R2; } /* 02074940: b 0x207494c in=02010 out=00000 */ goto lab0207494c; case 0x0207494c: lab0207494c: /* 0207494c: ldr r11, [r4, #0x3c] in=0a010 out=00000 */ R11 = *MEM32(R4 + 0x3c); /* 02074950: ldr r12, [r15, #0xae4] ; 0x207543c in=0a810 out=00000 */ R12 = 0x0207eb38; /* 02074954: ldr r0, [r11, #0x40] in=03810 out=00000 */ R0 = *MEM32(R11 + 0x40); /* 02074958: ldr r2, [r11, #0x10] in=03811 out=00000 */ R2 = *MEM32(R11 + 0x10); /* 0207495c: mov r5, r0, lsl #0x10 in=03815 out=00000 */ R5 = (R0 << 16); /* 02074960: ldr r1, [r11, #0x4c] in=03834 out=00000 */ R1 = *MEM32(R11 + 0x4c); /* 02074964: ldr r0, [r11, #0x44] in=03836 out=00000 */ R0 = *MEM32(R11 + 0x44); /* 02074968: add r3, r2, r1, lsl #0x2 in=03837 out=00000 */ R3 = R2 + (R1 << 2); /* 0207496c: ldr r1, [r11, #0x50] in=0383d out=00000 */ R1 = *MEM32(R11 + 0x50); /* 02074970: mov r0, r0, lsl #0x10 in=0383f out=00000 */ R0 = (R0 << 16); /* 02074974: add r1, r2, r1, lsl #0x2 in=0383f out=00000 */ R1 = R2 + (R1 << 2); /* 02074978: ldr r8, [r2, #0x8] in=0383f out=00000 */ R8 = *MEM32(R2 + 0x8); /* 0207497c: ldr r2, [r11, #0x28] in=0393b out=00000 */ R2 = *MEM32(R11 + 0x28); /* 02074980: ldr r7, [r11, #0x14] in=0393f out=00000 */ R7 = *MEM32(R11 + 0x14); /* 02074984: mov r5, r5, asr #0x10 in=039bf out=00000 */ R5 = ((int32_t)R5 >> 16); /* 02074988: ldr r6, [r11, #0x24] in=039bf out=00000 */ R6 = *MEM32(R11 + 0x24); /* 0207498c: ldr r5, [r7, r5, lsl #0x2] in=039ff out=00000 */ R5 = *MEM32(R7 + (R5 << 2)); /* 02074990: ldr r3, [r3, #0x8] in=039ff out=00000 */ R3 = *MEM32(R3 + 0x8); /* 02074994: ldr r9, [r11, #0x20] in=039ff out=00000 */ R9 = *MEM32(R11 + 0x20); /* 02074998: add r3, r5, r3 in=03bff out=00000 */ R3 = R5 + R3; /* 0207499c: mov r0, r0, asr #0x10 in=03bdf out=00000 */ R0 = ((int32_t)R0 >> 16); /* 020749a0: ldr r5, [r12, r6, lsl #0x2] in=03bdf out=00000 */ R5 = *MEM32(R12 + (R6 << 2)); /* 020749a4: mov r3, r3, asr #0x9 in=03bbf out=00000 */ R3 = ((int32_t)R3 >> 9); /* 020749a8: mul r3, r5, r3 in=03bbf out=00000 */ R3 = R5 * R3; /* 020749ac: ldr r6, [r7, r0, lsl #0x2] in=03b9f out=00000 */ R6 = *MEM32(R7 + (R0 << 2)); /* 020749b0: ldr r1, [r1, #0x8] in=03b5e out=00000 */ R1 = *MEM32(R1 + 0x8); /* 020749b4: ldr r5, [r12, r9, lsl #0x2] in=03b5e out=00000 */ R5 = *MEM32(R12 + (R9 << 2)); /* 020749b8: add r1, r1, r6 in=0397e out=00000 */ R1 = R1 + R6; /* 020749bc: mov r0, r8, asr #0x9 in=0393e out=00000 */ R0 = ((int32_t)R8 >> 9); /* 020749c0: ldr r2, [r12, r2, lsl #0x2] in=0383f out=00000 */ R2 = *MEM32(R12 + (R2 << 2)); /* 020749c4: mov r1, r1, asr #0x9 in=0283f out=00000 */ R1 = ((int32_t)R1 >> 9); /* 020749c8: mul r6, r5, r0 in=0283f out=00000 */ R6 = R5 * R0; /* 020749cc: mul r0, r2, r1 in=0285e out=00000 */ R0 = R2 * R1; /* 020749d0: mov r3, r3, asr #0xf in=02859 out=00000 */ R3 = ((int32_t)R3 >> 15); /* 020749d4: add r2, r3, r6, asr #0xf in=02859 out=00000 */ R2 = R3 + ((int32_t)R6 >> 15); /* 020749d8: add r1, r2, r0, asr #0xf in=02815 out=00000 */ R1 = R2 + ((int32_t)R0 >> 15); /* 020749dc: mov r0, #0x30 in=02816 out=00000 */ R0 = 48; /* 020749e0: mul r0, r1, r0 in=02817 out=00000 */ R0 = R1 * R0; /* 020749e4: ldr r10, [r11, #0x18] in=02815 out=00000 */ R10 = *MEM32(R11 + 0x18); /* 020749e8: ldr r3, [r11, #0x30] in=02c15 out=00000 */ R3 = *MEM32(R11 + 0x30); /* 020749ec: ldr r1, [r10, #0x4] in=02c1d out=00000 */ R1 = *MEM32(R10 + 0x4); /* 020749f0: add r1, r1, r3, lsl #0xf in=0281f out=00000 */ R1 = R1 + (R3 << 15); /* 020749f4: adds r7, r0, r1 in=02817 out=00000 */ tmpA = R0; tmpB = R1; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R7 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R7 == 0; N = (int32_t)R7 < 0; /* 020749f8: movmi r7, #0x0 in=42816 out=00000 */ if (N) { R7 = 0; } /* 020749fc: bmi 0x2074a08 in=42896 out=00000 */ if (N) { goto lab02074a08; } /* 02074a00: cmp r7, #0x3c0000 in=0a896 out=00000 */ tmpA = R7; tmpB = 0x3c0000; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074a04: movgt r7, #0x3c0000 in=da816 out=00000 */ if (!Z && (N == V)) { R7 = 0x3c0000; } case 0x02074a08: lab02074a08: /* 02074a08: ldr r0, [r15, #0xa30] ; 0x2075440 in=0a896 out=00000 */ R0 = 0x0207e950; /* 02074a0c: mov r6, r7, asr #0xf in=0a897 out=00000 */ R6 = ((int32_t)R7 >> 15); /* 02074a10: ldr r5, [r15, #0xa2c] ; 0x2075444 in=0a8d7 out=00000 */ R5 = 0x0207e954; /* 02074a14: ldr r3, [r15, #0xa2c] ; 0x2075448 in=0a8f7 out=00000 */ R3 = 0x00007fff; /* 02074a18: ldr r0, [r0, r6, lsl #0x2] in=0a8ff out=00000 */ R0 = *MEM32(R0 + (R6 << 2)); /* 02074a1c: ldr r5, [r5, r6, lsl #0x2] in=0a8ff out=00000 */ R5 = *MEM32(R5 + (R6 << 2)); /* 02074a20: and r6, r7, r3 in=0a8bf out=00000 */ R6 = R7 & R3; /* 02074a24: sub r3, r5, r0 in=0a877 out=00000 */ R3 = R5 - R0; /* 02074a28: smull r5, r3, r6, r3 in=0a85f out=00000 */ tmp64 = (int64_t)(int32_t)R6 * (int64_t)(int32_t)R3; R5 = tmp64; R3 = tmp64 >> 32; /* 02074a2c: mov r5, r5, lsr #0xf in=0a83f out=00000 */ R5 = (R5 >> 15); /* 02074a30: orr r5, r5, r3, lsl #0x11 in=0a83f out=00000 */ R5 = R5 | (R3 << 17); /* 02074a34: adds r0, r0, r5 in=0a837 out=00000 */ tmpA = R0; tmpB = R5; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R0 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R0 == 0; N = (int32_t)R0 < 0; /* 02074a38: str r0, [r11, #0x38] in=0a817 out=00000 */ *MEM32(R11 + 0x38) = R0; /* 02074a3c: ldr r0, [r11, #0x48] in=0a816 out=00000 */ R0 = *MEM32(R11 + 0x48); /* 02074a40: ldr r5, [r11, #0x10] in=0a817 out=00000 */ R5 = *MEM32(R11 + 0x10); /* 02074a44: ldr r3, [r11, #0x54] in=0a837 out=00000 */ R3 = *MEM32(R11 + 0x54); /* 02074a48: mov r0, r0, lsl #0x10 in=0a83f out=00000 */ R0 = (R0 << 16); /* 02074a4c: add r7, r5, r3, lsl #0x2 in=0a83f out=00000 */ R7 = R5 + (R3 << 2); /* 02074a50: mov r5, r0, asr #0x10 in=0a897 out=00000 */ R5 = ((int32_t)R0 >> 16); /* 02074a54: ldr r6, [r11, #0x14] in=0a8b6 out=00000 */ R6 = *MEM32(R11 + 0x14); /* 02074a58: ldr r8, [r11, #0x2c] in=0a8f6 out=00000 */ R8 = *MEM32(R11 + 0x2c); /* 02074a5c: ldr r0, [r15, #0x9d8] ; 0x207543c in=0a9f6 out=00000 */ R0 = 0x0207eb38; /* 02074a60: ldr r5, [r6, r5, lsl #0x2] in=029f7 out=00000 */ R5 = *MEM32(R6 + (R5 << 2)); /* 02074a64: ldr r7, [r7, #0x8] in=029b7 out=00000 */ R7 = *MEM32(R7 + 0x8); /* 02074a68: ldrsh r3, [r11, #0x34] in=029b7 out=00000 */ R3 = (int16_t)*MEM16(R11 + 0x34); /* 02074a6c: add r5, r7, r5 in=029bf out=00000 */ R5 = R7 + R5; /* 02074a70: ldr r6, [r0, r8, lsl #0x2] in=0293f out=00000 */ R6 = *MEM32(R0 + (R8 << 2)); /* 02074a74: mov r5, r5, asr #0x9 in=0287f out=00000 */ R5 = ((int32_t)R5 >> 9); /* 02074a78: mul r5, r6, r5 in=0287f out=00000 */ R5 = R6 * R5; /* 02074a7c: ldr r3, [r0, r3, lsl #0x2] in=0283f out=00000 */ R3 = *MEM32(R0 + (R3 << 2)); /* 02074a80: mov r0, #0x30 in=0283e out=00000 */ R0 = 48; /* 02074a84: add r2, r2, r5, asr #0xf in=0283f out=00000 */ R2 = R2 + ((int32_t)R5 >> 15); /* 02074a88: mla r1, r2, r0, r1 in=0281f out=00000 */ R1 = R2 * R0 + R1; /* 02074a8c: mul r0, r3, r0 in=0281b out=00000 */ R0 = R3 * R0; /* 02074a90: adds r6, r1, r0 in=02813 out=00000 */ tmpA = R1; tmpB = R0; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R6 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R6 == 0; N = (int32_t)R6 < 0; /* 02074a94: movmi r6, #0x0 in=42810 out=00000 */ if (N) { R6 = 0; } /* 02074a98: bmi 0x2074aa4 in=42850 out=00000 */ if (N) { goto lab02074aa4; } /* 02074a9c: cmp r6, #0x3c0000 in=0a850 out=00000 */ tmpA = R6; tmpB = 0x3c0000; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074aa0: movgt r6, #0x3c0000 in=da810 out=00000 */ if (!Z && (N == V)) { R6 = 0x3c0000; } case 0x02074aa4: lab02074aa4: /* 02074aa4: ldr r2, [r15, #0x994] ; 0x2075440 in=0a850 out=00000 */ R2 = 0x0207e950; /* 02074aa8: mov r5, r6, asr #0xf in=0a854 out=00000 */ R5 = ((int32_t)R6 >> 15); /* 02074aac: ldr r1, [r15, #0x990] ; 0x2075444 in=0a874 out=00000 */ R1 = 0x0207e954; /* 02074ab0: ldr r0, [r15, #0x990] ; 0x2075448 in=0a876 out=00000 */ R0 = 0x00007fff; /* 02074ab4: ldr r3, [r2, r5, lsl #0x2] in=02877 out=00000 */ R3 = *MEM32(R2 + (R5 << 2)); /* 02074ab8: ldr r1, [r1, r5, lsl #0x2] in=0287b out=00000 */ R1 = *MEM32(R1 + (R5 << 2)); /* 02074abc: and r2, r6, r0 in=0285b out=00000 */ R2 = R6 & R0; /* 02074ac0: sub r0, r1, r3 in=0281e out=00000 */ R0 = R1 - R3; /* 02074ac4: smull r1, r0, r2, r0 in=0281d out=00000 */ tmp64 = (int64_t)(int32_t)R2 * (int64_t)(int32_t)R0; R1 = tmp64; R0 = tmp64 >> 32; /* 02074ac8: mov r1, r1, lsr #0xf in=0281b out=00000 */ R1 = (R1 >> 15); /* 02074acc: orr r1, r1, r0, lsl #0x11 in=0281b out=00000 */ R1 = R1 | (R0 << 17); /* 02074ad0: adds r0, r3, r1 in=0281a out=00000 */ tmpA = R3; tmpB = R1; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R0 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R0 == 0; N = (int32_t)R0 < 0; /* 02074ad4: str r0, [r11, #0x3c] in=02811 out=00000 */ *MEM32(R11 + 0x3c) = R0; /* 02074ad8: ldr r6, [r4, #0x40] in=02010 out=00000 */ R6 = *MEM32(R4 + 0x40); /* 02074adc: mov r5, #0x0 in=02050 out=00000 */ R5 = 0; /* 02074ae0: ldr r0, [r6, #0x10] in=02070 out=00000 */ R0 = *MEM32(R6 + 0x10); /* 02074ae4: ldr r1, [r0, #0x38] in=02071 out=00000 */ R1 = *MEM32(R0 + 0x38); /* 02074ae8: str r1, [r6, #0x1c] in=02072 out=00000 */ *MEM32(R6 + 0x1c) = R1; /* 02074aec: ldr r0, [r6, #0x10] in=02072 out=00000 */ R0 = *MEM32(R6 + 0x10); /* 02074af0: cmp r1, #0x1000000 in=02073 out=00000 */ tmpA = R1; tmpB = 0x1000000; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074af4: ldr r0, [r0, #0x3c] in=c2071 out=00000 */ R0 = *MEM32(R0 + 0x3c); /* 02074af8: str r0, [r6, #0x20] in=c2071 out=00000 */ *MEM32(R6 + 0x20) = R0; /* 02074afc: mvnlt r0, #0x80000000 in=c2070 out=00000 */ if (N != V) { R0 = ~0x80000000; } /* 02074b00: strlt r0, [r6, #0x24] in=c2071 out=00000 */ if (N != V) { *MEM32(R6 + 0x24) = R0; } /* 02074b04: blt 0x2074b7c in=c2070 out=00000 */ if (N != V) { goto lab02074b7c; } /* 02074b08: add r0, r13, #0x30 in=02070 out=00000 */ R0 = R13 + 48; /* 02074b0c: bl 0x200e9dc in=02071 out=00000 */ R14 = 0x02074b10; goto lab0200e9dc; case 0x02074b10: lab02074b10: /* 02074b10: ldr r8, [r6, #0x1c] in=0a070 out=00000 */ R8 = *MEM32(R6 + 0x1c); /* 02074b14: ldr r1, [r15, #0x930] ; 0x207544c in=0a170 out=00000 */ R1 = 0x04000280; /* 02074b18: mov r2, #0x1 in=02172 out=00000 */ R2 = 1; /* 02074b1c: mov r0, #0xff000000 in=02176 out=00000 */ R0 = 0xff000000; /* 02074b20: strh r2, [r1] in=02177 out=00000 */ *MEM16(R1) = R2; /* 02074b24: str r0, [r1, #0x10] in=02177 out=00000 */ *MEM32(R1 + 0x10) = R0; /* 02074b28: rsb r0, r2, #0x800000 in=02176 out=00000 */ R0 = 0x800000 - R2; /* 02074b2c: str r0, [r1, #0x14] in=02173 out=00000 */ *MEM32(R1 + 0x14) = R0; /* 02074b30: str r8, [r1, #0x18] in=02172 out=00000 */ *MEM32(R1 + 0x18) = R8; /* 02074b34: mov r0, r5 in=02072 out=00000 */ R0 = R5; /* 02074b38: str r0, [r1, #0x1c] in=02073 out=00000 */ *MEM32(R1 + 0x1c) = R0; case 0x02074b3c: lab02074b3c: /* 02074b3c: ldrh r0, [r1] in=02072 out=00000 */ R0 = *MEM16(R1); /* 02074b40: tst r0, #0x8000 in=02073 out=00000 */ tmpA = R0 & 0x8000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02074b44: bne 0x2074b3c in=12072 out=00000 */ if (!Z) { goto lab02074b3c; } /* 02074b48: ldr r1, [r15, #0x8fc] ; 0x207544c in=0a070 out=00000 */ R1 = 0x04000280; case 0x02074b4c: lab02074b4c: /* 02074b4c: ldrh r0, [r1] in=02072 out=00000 */ R0 = *MEM16(R1); /* 02074b50: tst r0, #0x8000 in=02073 out=00000 */ tmpA = R0 & 0x8000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02074b54: bne 0x2074b4c in=12072 out=00000 */ if (!Z) { goto lab02074b4c; } /* 02074b58: ldr r7, [r15, #0x8f0] ; 0x2075450 in=0a070 out=00000 */ R7 = 0x040002a0; /* 02074b5c: add r0, r13, #0x30 in=020f0 out=00000 */ R0 = R13 + 48; /* 02074b60: ldr r1, [r7] in=020f1 out=00000 */ R1 = *MEM32(R7); /* 02074b64: str r1, [r6, #0x24] in=020f3 out=00000 */ *MEM32(R6 + 0x24) = R1; /* 02074b68: bl 0x200ea1c in=020f1 out=00000 */ R14 = 0x02074b6c; goto lab0200ea1c; case 0x02074b6c: lab02074b6c: /* 02074b6c: sub r1, r7, #0x20 in=020f0 out=00000 */ R1 = R7 - 32; case 0x02074b70: lab02074b70: /* 02074b70: ldrh r0, [r1] in=02072 out=00000 */ R0 = *MEM16(R1); /* 02074b74: tst r0, #0x8000 in=02073 out=00000 */ tmpA = R0 & 0x8000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02074b78: bne 0x2074b70 in=12072 out=00000 */ if (!Z) { goto lab02074b70; } case 0x02074b7c: lab02074b7c: /* 02074b7c: ldr r0, [r6, #0x20] in=02070 out=00000 */ R0 = *MEM32(R6 + 0x20); /* 02074b80: cmp r0, #0x1000000 in=02071 out=00000 */ tmpA = R0; tmpB = 0x1000000; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074b84: mvnlt r0, #0x80000000 in=c2070 out=00000 */ if (N != V) { R0 = ~0x80000000; } /* 02074b88: strlt r0, [r6, #0x28] in=c2071 out=00000 */ if (N != V) { *MEM32(R6 + 0x28) = R0; } /* 02074b8c: blt 0x2074c04 in=c2070 out=00000 */ if (N != V) { goto lab02074c04; } /* 02074b90: add r0, r13, #0x4c in=02070 out=00000 */ R0 = R13 + 76; /* 02074b94: bl 0x200e9dc in=02071 out=00000 */ R14 = 0x02074b98; goto lab0200e9dc; case 0x02074b98: lab02074b98: /* 02074b98: ldr r8, [r6, #0x20] in=0a070 out=00000 */ R8 = *MEM32(R6 + 0x20); /* 02074b9c: ldr r1, [r15, #0x8a8] ; 0x207544c in=0a170 out=00000 */ R1 = 0x04000280; /* 02074ba0: mov r2, #0x1 in=02172 out=00000 */ R2 = 1; /* 02074ba4: mov r0, #0xff000000 in=02176 out=00000 */ R0 = 0xff000000; /* 02074ba8: strh r2, [r1] in=02177 out=00000 */ *MEM16(R1) = R2; /* 02074bac: str r0, [r1, #0x10] in=02177 out=00000 */ *MEM32(R1 + 0x10) = R0; /* 02074bb0: rsb r0, r2, #0x800000 in=02176 out=00000 */ R0 = 0x800000 - R2; /* 02074bb4: str r0, [r1, #0x14] in=02173 out=00000 */ *MEM32(R1 + 0x14) = R0; /* 02074bb8: str r8, [r1, #0x18] in=02172 out=00000 */ *MEM32(R1 + 0x18) = R8; /* 02074bbc: mov r0, #0x0 in=02072 out=00000 */ R0 = 0; /* 02074bc0: str r0, [r1, #0x1c] in=02073 out=00000 */ *MEM32(R1 + 0x1c) = R0; case 0x02074bc4: lab02074bc4: /* 02074bc4: ldrh r0, [r1] in=02072 out=00000 */ R0 = *MEM16(R1); /* 02074bc8: tst r0, #0x8000 in=02073 out=00000 */ tmpA = R0 & 0x8000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02074bcc: bne 0x2074bc4 in=12072 out=00000 */ if (!Z) { goto lab02074bc4; } /* 02074bd0: ldr r1, [r15, #0x874] ; 0x207544c in=0a070 out=00000 */ R1 = 0x04000280; case 0x02074bd4: lab02074bd4: /* 02074bd4: ldrh r0, [r1] in=02072 out=00000 */ R0 = *MEM16(R1); /* 02074bd8: tst r0, #0x8000 in=02073 out=00000 */ tmpA = R0 & 0x8000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02074bdc: bne 0x2074bd4 in=12072 out=00000 */ if (!Z) { goto lab02074bd4; } /* 02074be0: ldr r7, [r15, #0x868] ; 0x2075450 in=0a070 out=00000 */ R7 = 0x040002a0; /* 02074be4: add r0, r13, #0x4c in=020f0 out=00000 */ R0 = R13 + 76; /* 02074be8: ldr r1, [r7] in=020f1 out=00000 */ R1 = *MEM32(R7); /* 02074bec: str r1, [r6, #0x28] in=020f3 out=00000 */ *MEM32(R6 + 0x28) = R1; /* 02074bf0: bl 0x200ea1c in=020f1 out=00000 */ R14 = 0x02074bf4; goto lab0200ea1c; case 0x02074bf4: lab02074bf4: /* 02074bf4: sub r1, r7, #0x20 in=020f0 out=00000 */ R1 = R7 - 32; case 0x02074bf8: lab02074bf8: /* 02074bf8: ldrh r0, [r1] in=02072 out=00000 */ R0 = *MEM16(R1); /* 02074bfc: tst r0, #0x8000 in=02073 out=00000 */ tmpA = R0 & 0x8000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02074c00: bne 0x2074bf8 in=12072 out=00000 */ if (!Z) { goto lab02074bf8; } case 0x02074c04: lab02074c04: /* 02074c04: ldr r0, [r6, #0x54] in=0a070 out=00000 */ R0 = *MEM32(R6 + 0x54); /* 02074c08: mov r3, #0xb8000 in=0a071 out=00000 */ R3 = 0xb8000; /* 02074c0c: str r0, [r6, #0x60] in=0a079 out=00000 */ *MEM32(R6 + 0x60) = R0; /* 02074c10: ldr r0, [r6, #0x58] in=0a078 out=00000 */ R0 = *MEM32(R6 + 0x58); /* 02074c14: ldr r10, [r15, #0x838] ; 0x2075454 in=0a079 out=00000 */ R10 = 0x020803c4; /* 02074c18: str r0, [r6, #0x68] in=0a479 out=00000 */ *MEM32(R6 + 0x68) = R0; /* 02074c1c: ldr r1, [r6, #0x20] in=0a478 out=00000 */ R1 = *MEM32(R6 + 0x20); /* 02074c20: ldr r0, [r6, #0x54] in=0a47a out=00000 */ R0 = *MEM32(R6 + 0x54); /* 02074c24: ldr r7, [r15, #0x82c] ; 0x2075458 in=0a47b out=00000 */ R7 = 0x020804c4; /* 02074c28: smull r2, r0, r1, r0 in=024fb out=00000 */ tmp64 = (int64_t)(int32_t)R1 * (int64_t)(int32_t)R0; R2 = tmp64; R0 = tmp64 >> 32; /* 02074c2c: mov r1, r2, lsr #0x7 in=024fd out=00000 */ R1 = (R2 >> 7); /* 02074c30: orr r1, r1, r0, lsl #0x19 in=024fb out=00000 */ R1 = R1 | (R0 << 25); /* 02074c34: str r1, [r6, #0x64] in=024fa out=00000 */ *MEM32(R6 + 0x64) = R1; /* 02074c38: ldr r1, [r6, #0x20] in=024f8 out=00000 */ R1 = *MEM32(R6 + 0x20); /* 02074c3c: ldr r0, [r6, #0x5c] in=024fa out=00000 */ R0 = *MEM32(R6 + 0x5c); /* 02074c40: rsb r3, r3, #0x0 in=024fb out=00000 */ R3 = 0 - R3; /* 02074c44: smull r2, r0, r1, r0 in=024fb out=00000 */ tmp64 = (int64_t)(int32_t)R1 * (int64_t)(int32_t)R0; R2 = tmp64; R0 = tmp64 >> 32; /* 02074c48: mov r1, r2, lsr #0x7 in=024fd out=00000 */ R1 = (R2 >> 7); /* 02074c4c: orr r1, r1, r0, lsl #0x19 in=024fb out=00000 */ R1 = R1 | (R0 << 25); /* 02074c50: str r1, [r6, #0x6c] in=024fa out=00000 */ *MEM32(R6 + 0x6c) = R1; /* 02074c54: ldr r2, [r4, #0x44] in=024b8 out=00000 */ R2 = *MEM32(R4 + 0x44); /* 02074c58: ldmib r2, { r0, r8 } in=024bc out=00000 */ R0 = *MEM32(R2 + 4); R8 = *MEM32(R2 + 8); /* 02074c5c: ldr r9, [r2, #0x10] in=025bd out=00000 */ R9 = *MEM32(R2 + 0x10); /* 02074c60: mov r1, r0, lsl #0x10 in=027bd out=00000 */ R1 = (R0 << 16); /* 02074c64: add r0, r9, r8, lsl #0x2 in=027be out=00000 */ R0 = R9 + (R8 << 2); /* 02074c68: ldr r8, [r9, #0x8] in=026bf out=00000 */ R8 = *MEM32(R9 + 0x8); /* 02074c6c: ldr r9, [r0, #0x8] in=025bf out=00000 */ R9 = *MEM32(R0 + 0x8); /* 02074c70: mov r0, r8, asr #0x9 in=027be out=00000 */ R0 = ((int32_t)R8 >> 9); /* 02074c74: mov r8, r1, asr #0x10 in=026bf out=00000 */ R8 = ((int32_t)R1 >> 16); /* 02074c78: ldr r1, [r2, #0x44] in=027bd out=00000 */ R1 = *MEM32(R2 + 0x44); /* 02074c7c: ldr r6, [r2, #0x18] in=027bf out=00000 */ R6 = *MEM32(R2 + 0x18); /* 02074c80: mov r1, r1, lsl #0x1 in=027ff out=00000 */ R1 = (R1 << 1); /* 02074c84: ldrsh r1, [r10, r1] in=027ff out=00000 */ R1 = (int16_t)*MEM16(R10 + R1); /* 02074c88: ldr r11, [r2, #0x48] in=027ff out=00000 */ R11 = *MEM32(R2 + 0x48); /* 02074c8c: ldr r6, [r6, #0x4c] in=02fff out=00000 */ R6 = *MEM32(R6 + 0x4c); /* 02074c90: mov r11, r11, lsl #0x1 in=02fff out=00000 */ R11 = (R11 << 1); /* 02074c94: mul r0, r1, r0 in=02fff out=00000 */ R0 = R1 * R0; /* 02074c98: ldr r1, [r2, #0xc] in=02ffd out=00000 */ R1 = *MEM32(R2 + 0xc); /* 02074c9c: ldrsh r10, [r10, r11] in=02fff out=00000 */ R10 = (int16_t)*MEM16(R10 + R11); /* 02074ca0: ldrsh r7, [r7, r11] in=02fff out=00000 */ R7 = (int16_t)*MEM16(R7 + R11); /* 02074ca4: ldr r11, [r2, #0x14] in=027ff out=00000 */ R11 = *MEM32(R2 + 0x14); /* 02074ca8: mul r6, r1, r6 in=02fff out=00000 */ R6 = R1 * R6; /* 02074cac: ldr r8, [r11, r8, lsl #0x2] in=02ffd out=00000 */ R8 = *MEM32(R11 + (R8 << 2)); /* 02074cb0: add r1, r9, r8 in=027fd out=00000 */ R1 = R9 + R8; /* 02074cb4: mov r1, r1, asr #0x9 in=024ff out=00000 */ R1 = ((int32_t)R1 >> 9); /* 02074cb8: mul r8, r10, r1 in=024ff out=00000 */ R8 = R10 * R1; /* 02074cbc: mov r1, r6, asr #0x9 in=021fd out=00000 */ R1 = ((int32_t)R6 >> 9); /* 02074cc0: mov r6, r8, asr #0xf in=021bf out=00000 */ R6 = ((int32_t)R8 >> 15); /* 02074cc4: mul r1, r7, r1 in=020ff out=00000 */ R1 = R7 * R1; /* 02074cc8: add r0, r6, r0, asr #0xf in=0207f out=00000 */ R0 = R6 + ((int32_t)R0 >> 15); /* 02074ccc: add r1, r0, r1, asr #0xf in=0203f out=00000 */ R1 = R0 + ((int32_t)R1 >> 15); /* 02074cd0: ldr r0, [r2, #0x1c] in=0203e out=00000 */ R0 = *MEM32(R2 + 0x1c); /* 02074cd4: rsb r1, r1, r1, lsl #0x7 in=0203f out=00000 */ R1 = (R1 << 7) - R1; /* 02074cd8: add r0, r1, r0 in=0203f out=00000 */ R0 = R1 + R0; /* 02074cdc: cmp r0, r3 in=0203d out=00000 */ tmpA = R0; tmpB = R3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074ce0: movlt r0, r3 in=c203c out=00000 */ if (N != V) { R0 = R3; } /* 02074ce4: blt 0x2074cf0 in=c2035 out=00000 */ if (N != V) { goto lab02074cf0; } /* 02074ce8: cmp r0, #0x3f8000 in=0a035 out=00000 */ tmpA = R0; tmpB = 0x3f8000; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074cec: movgt r0, #0x3f8000 in=da034 out=00000 */ if (!Z && (N == V)) { R0 = 0x3f8000; } case 0x02074cf0: lab02074cf0: /* 02074cf0: add r7, r0, #0xb8000 in=0a035 out=00000 */ R7 = R0 + 0xb8000; /* 02074cf4: ldr r3, [r15, #0x760] ; 0x207545c in=0a0b4 out=00000 */ R3 = 0x020807c4; /* 02074cf8: mov r8, r7, asr #0xf in=0a0bc out=00000 */ R8 = ((int32_t)R7 >> 15); /* 02074cfc: ldr r1, [r15, #0x75c] ; 0x2075460 in=0a1bc out=00000 */ R1 = 0x020807c8; /* 02074d00: ldr r0, [r15, #0x740] ; 0x2075448 in=0a1be out=00000 */ R0 = 0x00007fff; /* 02074d04: ldr r6, [r3, r8, lsl #0x2] in=0a1bf out=00000 */ R6 = *MEM32(R3 + (R8 << 2)); /* 02074d08: ldr r1, [r1, r8, lsl #0x2] in=0a1f7 out=00000 */ R1 = *MEM32(R1 + (R8 << 2)); /* 02074d0c: and r3, r7, r0 in=0a0f7 out=00000 */ R3 = R7 & R0; /* 02074d10: sub r0, r1, r6 in=0a07e out=00000 */ R0 = R1 - R6; /* 02074d14: smull r1, r0, r3, r0 in=0a07d out=00000 */ tmp64 = (int64_t)(int32_t)R3 * (int64_t)(int32_t)R0; R1 = tmp64; R0 = tmp64 >> 32; /* 02074d18: mov r1, r1, lsr #0xf in=0a077 out=00000 */ R1 = (R1 >> 15); /* 02074d1c: orr r1, r1, r0, lsl #0x11 in=0a077 out=00000 */ R1 = R1 | (R0 << 17); /* 02074d20: adds r0, r6, r1 in=0a076 out=00000 */ tmpA = R6; tmpB = R1; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R0 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R0 == 0; N = (int32_t)R0 < 0; /* 02074d24: ldr r1, [r15, #0x738] ; 0x2075464 in=0a035 out=00000 */ R1 = 0xae7c972b; /* 02074d28: str r0, [r2, #0x28] in=02037 out=00000 */ *MEM32(R2 + 0x28) = R0; /* 02074d2c: add r6, r0, r1 in=02037 out=00000 */ R6 = R0 + R1; /* 02074d30: cmp r6, #0x0 in=02075 out=00000 */ tmpA = R6; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074d34: movle r6, #0x0 in=d2035 out=00000 */ if (Z || (N != V)) { R6 = 0; } /* 02074d38: smull r3, r1, r6, r6 in=02075 out=00000 */ tmp64 = (int64_t)(int32_t)R6 * (int64_t)(int32_t)R6; R3 = tmp64; R1 = tmp64 >> 32; /* 02074d3c: mov r3, r3, lsr #0x1f in=0203f out=00000 */ R3 = (R3 >> 31); /* 02074d40: orr r3, r3, r1, lsl #0x1 in=0203f out=00000 */ R3 = R3 | (R1 << 1); /* 02074d44: mov r3, r3, asr #0x7 in=0203d out=00000 */ R3 = ((int32_t)R3 >> 7); /* 02074d48: mov r1, #0x1800000 in=0203d out=00000 */ R1 = 0x1800000; /* 02074d4c: umull r8, r7, r3, r1 in=0203f out=00000 */ tmp64 = (uint64_t)R3 * (uint64_t)R1; R8 = tmp64; R7 = tmp64 >> 32; /* 02074d50: mla r7, r3, r5, r7 in=021bf out=00000 */ R7 = R3 * R5 + R7; /* 02074d54: mov r6, r3, asr #0x1f in=021bf out=00000 */ R6 = ((int32_t)R3 >> 31); /* 02074d58: mla r7, r6, r1, r7 in=021f7 out=00000 */ R7 = R6 * R1 + R7; /* 02074d5c: mov r1, r8, lsr #0x18 in=021b5 out=00000 */ R1 = (R8 >> 24); /* 02074d60: orr r1, r1, r7, lsl #0x8 in=020b7 out=00000 */ R1 = R1 | (R7 << 8); /* 02074d64: mov r0, r0, asr #0x8 in=02037 out=00000 */ R0 = ((int32_t)R0 >> 8); /* 02074d68: ldr r3, [r2, #0x20] in=02037 out=00000 */ R3 = *MEM32(R2 + 0x20); /* 02074d6c: rsb r6, r1, #0x1000000 in=0203f out=00000 */ R6 = 0x1000000 - R1; /* 02074d70: mov r1, r3, asr #0x7 in=0207d out=00000 */ R1 = ((int32_t)R3 >> 7); /* 02074d74: smull r6, r3, r1, r6 in=02077 out=00000 */ tmp64 = (int64_t)(int32_t)R1 * (int64_t)(int32_t)R6; R6 = tmp64; R3 = tmp64 >> 32; /* 02074d78: mov r7, r6, lsr #0x18 in=0207d out=00000 */ R7 = (R6 >> 24); /* 02074d7c: orr r7, r7, r3, lsl #0x8 in=020bd out=00000 */ R7 = R7 | (R3 << 8); /* 02074d80: rsb r1, r7, #0x1000000 in=020b5 out=00000 */ R1 = 0x1000000 - R7; /* 02074d84: rsb r0, r0, #0x1000000 in=020b7 out=00000 */ R0 = 0x1000000 - R0; /* 02074d88: smull r0, r3, r1, r0 in=020b7 out=00000 */ tmp64 = (int64_t)(int32_t)R1 * (int64_t)(int32_t)R0; R0 = tmp64; R3 = tmp64 >> 32; /* 02074d8c: mov r6, r0, lsr #0x18 in=020bd out=00000 */ R6 = (R0 >> 24); /* 02074d90: ldr r1, [r2, #0x58] in=020fc out=00000 */ R1 = *MEM32(R2 + 0x58); /* 02074d94: orr r6, r6, r3, lsl #0x8 in=020fe out=00000 */ R6 = R6 | (R3 << 8); /* 02074d98: sub r1, r6, r1 in=020f6 out=00000 */ R1 = R6 - R1; /* 02074d9c: mov r1, r1, asr #0x6 in=020f6 out=00000 */ R1 = ((int32_t)R1 >> 6); /* 02074da0: str r1, [r2, #0x60] in=020f6 out=00000 */ *MEM32(R2 + 0x60) = R1; /* 02074da4: ldr r1, [r2, #0x58] in=020f4 out=00000 */ R1 = *MEM32(R2 + 0x58); /* 02074da8: mov r0, r7, asr #0x1 in=020f6 out=00000 */ R0 = ((int32_t)R7 >> 1); /* 02074dac: str r1, [r2, #0x5c] in=02077 out=00000 */ *MEM32(R2 + 0x5c) = R1; /* 02074db0: str r6, [r2, #0x58] in=02075 out=00000 */ *MEM32(R2 + 0x58) = R6; /* 02074db4: ldr r1, [r2, #0x28] in=02035 out=00000 */ R1 = *MEM32(R2 + 0x28); /* 02074db8: add r3, r0, #0x800000 in=02037 out=00000 */ R3 = R0 + 0x800000; /* 02074dbc: mov r1, r1, asr #0x7 in=0203e out=00000 */ R1 = ((int32_t)R1 >> 7); /* 02074dc0: smull r6, r1, r3, r1 in=0203e out=00000 */ tmp64 = (int64_t)(int32_t)R3 * (int64_t)(int32_t)R1; R6 = tmp64; R1 = tmp64 >> 32; /* 02074dc4: mov r3, r6, lsr #0x18 in=02076 out=00000 */ R3 = (R6 >> 24); /* 02074dc8: ldr r0, [r2, #0x4c] in=0203e out=00000 */ R0 = *MEM32(R2 + 0x4c); /* 02074dcc: orr r3, r3, r1, lsl #0x8 in=0203f out=00000 */ R3 = R3 | (R1 << 8); /* 02074dd0: sub r0, r3, r0 in=0203d out=00000 */ R0 = R3 - R0; /* 02074dd4: mov r0, r0, asr #0x6 in=0203d out=00000 */ R0 = ((int32_t)R0 >> 6); /* 02074dd8: str r0, [r2, #0x54] in=0203d out=00000 */ *MEM32(R2 + 0x54) = R0; /* 02074ddc: ldr r0, [r2, #0x4c] in=0203c out=00000 */ R0 = *MEM32(R2 + 0x4c); /* 02074de0: str r0, [r2, #0x50] in=0203d out=00000 */ *MEM32(R2 + 0x50) = R0; /* 02074de4: str r3, [r2, #0x4c] in=0203c out=00000 */ *MEM32(R2 + 0x4c) = R3; /* 02074de8: ldr r1, [r2, #0x3c] in=02034 out=00000 */ R1 = *MEM32(R2 + 0x3c); /* 02074dec: ldr r0, [r2, #0x40] in=02036 out=00000 */ R0 = *MEM32(R2 + 0x40); /* 02074df0: cmp r0, r1 in=02037 out=00000 */ tmpA = R0; tmpB = R1; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074df4: strne r1, [r2, #0x40] in=12036 out=00000 */ if (!Z) { *MEM32(R2 + 0x40) = R1; } /* 02074df8: strne r5, [r2, #0x34] in=12034 out=00000 */ if (!Z) { *MEM32(R2 + 0x34) = R5; } /* 02074dfc: strne r5, [r2, #0x38] in=12034 out=00000 */ if (!Z) { *MEM32(R2 + 0x38) = R5; } /* 02074e00: ldr r1, [r4, #0x48] in=02010 out=00000 */ R1 = *MEM32(R4 + 0x48); /* 02074e04: mvn r0, #0xff000000 in=02012 out=00000 */ R0 = ~0xff000000; /* 02074e08: ldr r5, [r1, #0x4] in=02013 out=00000 */ R5 = *MEM32(R1 + 0x4); /* 02074e0c: ldr r3, [r1, #0x14] in=02033 out=00000 */ R3 = *MEM32(R1 + 0x14); /* 02074e10: mov r2, r5, lsl #0x10 in=0203b out=00000 */ R2 = (R5 << 16); /* 02074e14: mov r2, r2, asr #0x10 in=0203f out=00000 */ R2 = ((int32_t)R2 >> 16); /* 02074e18: cmp r5, #0x3 in=0203f out=00000 */ tmpA = R5; tmpB = 3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074e1c: ldr r6, [r3, r2, lsl #0x2] in=1203f out=00000 */ R6 = *MEM32(R3 + (R2 << 2)); /* 02074e20: beq 0x2074e34 in=12073 out=00000 */ if (Z) { goto lab02074e34; } /* 02074e24: cmp r5, #0x4 in=02073 out=00000 */ tmpA = R5; tmpB = 4; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074e28: bne 0x2074e58 in=12053 out=00000 */ if (!Z) { goto lab02074e58; } /* 02074e2c: mov r5, #0x1000000 in=02012 out=00000 */ R5 = 0x1000000; /* 02074e30: b 0x2074e80 in=02032 out=00000 */ goto lab02074e80; case 0x02074e80: lab02074e80: /* 02074e80: ldr r6, [r1, #0x10] in=02032 out=00000 */ R6 = *MEM32(R1 + 0x10); /* 02074e84: ldr r0, [r1, #0x8] in=02072 out=00000 */ R0 = *MEM32(R1 + 0x8); /* 02074e88: ldr r3, [r1, #0x18] in=02073 out=00000 */ R3 = *MEM32(R1 + 0x18); /* 02074e8c: add r0, r6, r0, lsl #0x2 in=0207b out=00000 */ R0 = R6 + (R0 << 2); /* 02074e90: ldr r2, [r1, #0x1c] in=0207b out=00000 */ R2 = *MEM32(R1 + 0x1c); /* 02074e94: ldr r0, [r0, #0x8] in=0207f out=00000 */ R0 = *MEM32(R0 + 0x8); /* 02074e98: smull r8, r7, r5, r3 in=0207f out=00000 */ tmp64 = (int64_t)(int32_t)R5 * (int64_t)(int32_t)R3; R8 = tmp64; R7 = tmp64 >> 32; /* 02074e9c: smull r0, r3, r2, r0 in=021d7 out=00000 */ tmp64 = (int64_t)(int32_t)R2 * (int64_t)(int32_t)R0; R0 = tmp64; R3 = tmp64 >> 32; /* 02074ea0: ldr r5, [r1, #0x24] in=021db out=00000 */ R5 = *MEM32(R1 + 0x24); /* 02074ea4: mov r2, r0, lsr #0x18 in=021fb out=00000 */ R2 = (R0 >> 24); /* 02074ea8: add r5, r6, r5, lsl #0x2 in=021fe out=00000 */ R5 = R6 + (R5 << 2); /* 02074eac: mov r0, r8, lsr #0x18 in=021be out=00000 */ R0 = (R8 >> 24); /* 02074eb0: orr r0, r0, r7, lsl #0x8 in=020bf out=00000 */ R0 = R0 | (R7 << 8); /* 02074eb4: ldr r5, [r5, #0x8] in=0203f out=00000 */ R5 = *MEM32(R5 + 0x8); /* 02074eb8: orr r2, r2, r3, lsl #0x8 in=0203f out=00000 */ R2 = R2 | (R3 << 8); /* 02074ebc: adds r6, r5, r2 in=0203f out=00000 */ tmpA = R5; tmpB = R2; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R6 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R6 == 0; N = (int32_t)R6 < 0; /* 02074ec0: mov r2, r3, asr #0x18 in=0207b out=00000 */ R2 = ((int32_t)R3 >> 24); /* 02074ec4: umull r7, r3, r0, r6 in=02077 out=00000 */ tmp64 = (uint64_t)R0 * (uint64_t)R6; R7 = tmp64; R3 = tmp64 >> 32; /* 02074ec8: adc r2, r2, r5, asr #0x1f in=020ff out=00000 */ R2 = R2 + ((int32_t)R5 >> 31) + C; /* 02074ecc: mla r3, r0, r2, r3 in=020df out=00000 */ R3 = R0 * R2 + R3; /* 02074ed0: mov r0, r0, asr #0x1f in=020db out=00000 */ R0 = ((int32_t)R0 >> 31); /* 02074ed4: mla r3, r0, r6, r3 in=020db out=00000 */ R3 = R0 * R6 + R3; /* 02074ed8: mov r2, r7, lsr #0x18 in=0209a out=00000 */ R2 = (R7 >> 24); /* 02074edc: ldr r0, [r1, #0x28] in=0201e out=00000 */ R0 = *MEM32(R1 + 0x28); /* 02074ee0: orr r2, r2, r3, lsl #0x8 in=0201f out=00000 */ R2 = R2 | (R3 << 8); /* 02074ee4: sub r0, r2, r0 in=02017 out=00000 */ R0 = R2 - R0; /* 02074ee8: mov r0, r0, asr #0x6 in=02017 out=00000 */ R0 = ((int32_t)R0 >> 6); /* 02074eec: str r0, [r1, #0x30] in=02017 out=00000 */ *MEM32(R1 + 0x30) = R0; /* 02074ef0: ldr r0, [r1, #0x28] in=02016 out=00000 */ R0 = *MEM32(R1 + 0x28); /* 02074ef4: mov r6, #0x0 in=02017 out=00000 */ R6 = 0; /* 02074ef8: str r0, [r1, #0x2c] in=02057 out=00000 */ *MEM32(R1 + 0x2c) = R0; /* 02074efc: str r2, [r1, #0x28] in=02056 out=00000 */ *MEM32(R1 + 0x28) = R2; /* 02074f00: ldr r0, [r4, #0x20] in=02050 out=00000 */ R0 = *MEM32(R4 + 0x20); /* 02074f04: cmp r0, #0x0 in=02051 out=00000 */ tmpA = R0; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074f08: ble 0x2075424 in=d2050 out=00000 */ if (Z || (N != V)) { goto lab02075424; } /* 02074f0c: ldr r12, [r15, #0x554] ; 0x2075468 in=0a050 out=00000 */ R12 = 0xffff8001; /* 02074f10: mvn r0, #0x80000000 in=0b050 out=00000 */ R0 = ~0x80000000; /* 02074f14: mov r2, r12, lsr #0x12 in=0b051 out=00000 */ R2 = (R12 >> 18); /* 02074f18: str r2, [r13, #0x8] in=0b055 out=00000 */ *MEM32(R13 + 0x8) = R2; /* 02074f1c: ldr r2, [r15, #0x50c] ; 0x2075430 in=0b051 out=00000 */ R2 = 0x00001064; /* 02074f20: str r0, [r13, #0x4] in=0b055 out=00000 */ *MEM32(R13 + 0x4) = R0; /* 02074f24: add r2, r2, #0x3f in=0b055 out=00000 */ R2 = R2 + 63; /* 02074f28: str r2, [r13, #0xc] in=0b055 out=00000 */ *MEM32(R13 + 0xc) = R2; /* 02074f2c: ldr r2, [r15, #0x4fc] ; 0x2075430 in=0b051 out=00000 */ R2 = 0x00001064; /* 02074f30: ldr r1, [r13, #0x4] in=0b055 out=00000 */ R1 = *MEM32(R13 + 0x4); /* 02074f34: add r2, r2, #0x3f in=0b057 out=00000 */ R2 = R2 + 63; /* 02074f38: str r2, [r13, #0x10] in=0b057 out=00000 */ *MEM32(R13 + 0x10) = R2; /* 02074f3c: ldr r2, [r13, #0x4] in=0b053 out=00000 */ R2 = *MEM32(R13 + 0x4); /* 02074f40: mov r14, r12, lsr #0x11 in=0b057 out=00000 */ R14 = (R12 >> 17); /* 02074f44: sub r2, r2, #0x7f000000 in=0f057 out=00000 */ R2 = R2 - 0x7f000000; /* 02074f48: str r2, [r13, #0x14] in=0f057 out=00000 */ *MEM32(R13 + 0x14) = R2; /* 02074f4c: ldr r2, [r13, #0x4] in=0f053 out=00000 */ R2 = *MEM32(R13 + 0x4); /* 02074f50: rsb r0, r0, #0x7f000000 in=0f057 out=00000 */ R0 = 0x7f000000 - R0; /* 02074f54: rsb r2, r2, #0x7f000000 in=0f057 out=00000 */ R2 = 0x7f000000 - R2; /* 02074f58: str r2, [r13, #0x18] in=0f057 out=00000 */ *MEM32(R13 + 0x18) = R2; /* 02074f5c: ldr r2, [r13, #0x4] in=0f053 out=00000 */ R2 = *MEM32(R13 + 0x4); /* 02074f60: sub r1, r1, #0x7f000000 in=0f057 out=00000 */ R1 = R1 - 0x7f000000; /* 02074f64: sub r2, r2, #0x7f000000 in=0f057 out=00000 */ R2 = R2 - 0x7f000000; /* 02074f68: str r2, [r13, #0x1c] in=0f057 out=00000 */ *MEM32(R13 + 0x1c) = R2; /* 02074f6c: ldr r2, [r13, #0x4] in=0f053 out=00000 */ R2 = *MEM32(R13 + 0x4); /* 02074f70: rsb r2, r2, #0x7f000000 in=0f057 out=00000 */ R2 = 0x7f000000 - R2; /* 02074f74: str r2, [r13, #0x20] in=0f057 out=00000 */ *MEM32(R13 + 0x20) = R2; /* 02074f78: ldr r2, [r13, #0x4] in=0f053 out=00000 */ R2 = *MEM32(R13 + 0x4); /* 02074f7c: sub r2, r2, #0x7f000000 in=0f057 out=00000 */ R2 = R2 - 0x7f000000; /* 02074f80: str r2, [r13, #0x24] in=0f057 out=00000 */ *MEM32(R13 + 0x24) = R2; /* 02074f84: ldr r2, [r13, #0x4] in=0f053 out=00000 */ R2 = *MEM32(R13 + 0x4); /* 02074f88: rsb r2, r2, #0x7f000000 in=0f057 out=00000 */ R2 = 0x7f000000 - R2; /* 02074f8c: str r2, [r13, #0x28] in=0f057 out=00000 */ *MEM32(R13 + 0x28) = R2; /* 02074f90: add r2, r12, #0x4000 in=0f053 out=00000 */ R2 = R12 + 0x4000; /* 02074f94: str r2, [r13, #0x2c] in=0f057 out=00000 */ *MEM32(R13 + 0x2c) = R2; case 0x02074f98: lab02074f98: /* 02074f98: ldr r2, [r4, #0x40] in=0f053 out=00000 */ R2 = *MEM32(R4 + 0x40); /* 02074f9c: ldr r3, [r2, #0x14] in=0f057 out=00000 */ R3 = *MEM32(R2 + 0x14); /* 02074fa0: ldr r5, [r2, #0x1c] in=0f05f out=00000 */ R5 = *MEM32(R2 + 0x1c); /* 02074fa4: sub r5, r3, r5 in=0f07f out=00000 */ R5 = R3 - R5; /* 02074fa8: str r5, [r2, #0x14] in=0f07f out=00000 */ *MEM32(R2 + 0x14) = R5; /* 02074fac: ldr r10, [r2, #0x18] in=0f05f out=00000 */ R10 = *MEM32(R2 + 0x18); /* 02074fb0: ldr r5, [r2, #0x20] in=0f45f out=00000 */ R5 = *MEM32(R2 + 0x20); /* 02074fb4: sub r5, r10, r5 in=0f47f out=00000 */ R5 = R10 - R5; /* 02074fb8: str r5, [r2, #0x18] in=0f47f out=00000 */ *MEM32(R2 + 0x18) = R5; /* 02074fbc: ldr r5, [r2, #0xc] in=0f45f out=00000 */ R5 = *MEM32(R2 + 0xc); /* 02074fc0: cmp r5, #0x3 in=0f47f out=00000 */ tmpA = R5; tmpB = 3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074fc4: addls r15, r15, r5, lsl #0x2 in=3f47f out=00000 */ switch(R5) { default: goto lab02074fc8; case 0: goto lab02075050; case 1: goto lab02074fdc; case 2: goto lab0207500c; case 3: goto lab02075030; } case 0x02074fc8: lab02074fc8: /* 02074fc8: b 0x2075050 in=0745f out=00000 */ goto lab02075050; case 0x02075030: lab02075030: /* 02075030: ldr r9, [r2, #0x18] in=0745f out=00000 */ R9 = *MEM32(R2 + 0x18); /* 02075034: ldr r5, [r2, #0x4c] in=0765f out=00000 */ R5 = *MEM32(R2 + 0x4c); /* 02075038: ldr r7, [r2, #0x6c] in=0767f out=00000 */ R7 = *MEM32(R2 + 0x6c); case 0x0207503c: lab0207503c: /* 0207503c: smull r8, r7, r5, r7 in=076ff out=00000 */ tmp64 = (int64_t)(int32_t)R5 * (int64_t)(int32_t)R7; R8 = tmp64; R7 = tmp64 >> 32; /* 02075040: mov r5, r8, lsr #0x18 in=077df out=00000 */ R5 = (R8 >> 24); /* 02075044: orr r5, r5, r7, lsl #0x8 in=076ff out=00000 */ R5 = R5 | (R7 << 8); /* 02075048: sub r5, r9, r5 in=0767f out=00000 */ R5 = R9 - R5; /* 0207504c: str r5, [r2, #0x18] in=0747f out=00000 */ *MEM32(R2 + 0x18) = R5; case 0x02075050: lab02075050: /* 02075050: ldr r5, [r2, #0x48] in=0745f out=00000 */ R5 = *MEM32(R2 + 0x48); /* 02075054: cmp r5, #0x1 in=0747f out=00000 */ tmpA = R5; tmpB = 1; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075058: bne 0x207506c in=1745f out=00000 */ if (!Z) { goto lab0207506c; } /* 0207505c: ldr r5, [r2, #0x14] in=0f45f out=00000 */ R5 = *MEM32(R2 + 0x14); /* 02075060: cmp r5, r3 in=0f47f out=00000 */ tmpA = R5; tmpB = R3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075064: ldrgt r3, [r13, #0x4] in=df457 out=00000 */ if (!Z && (N == V)) { R3 = *MEM32(R13 + 0x4); } /* 02075068: strgt r3, [r2, #0x18] in=df45f out=00000 */ if (!Z && (N == V)) { *MEM32(R2 + 0x18) = R3; } case 0x0207506c: lab0207506c: /* 0207506c: ldr r5, [r2, #0x2c] in=0f457 out=00000 */ R5 = *MEM32(R2 + 0x2c); /* 02075070: ldr r3, [r2, #0x14] in=0f477 out=00000 */ R3 = *MEM32(R2 + 0x14); /* 02075074: ldr r9, [r2, #0x18] in=0f47f out=00000 */ R9 = *MEM32(R2 + 0x18); /* 02075078: cmp r5, #0x3 in=0f67f out=00000 */ tmpA = R5; tmpB = 3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 0207507c: addls r15, r15, r5, lsl #0x2 in=3f67f out=00000 */ switch(R5) { default: goto lab02075080; case 0: goto lab020750fc; case 1: goto lab02075094; case 2: goto lab020750c4; case 3: goto lab02075124; } case 0x02075080: lab02075080: /* 02075080: b 0x207514c in=0765f out=00000 */ goto lab0207514c; case 0x0207514c: lab0207514c: /* 0207514c: ldr r5, [r2, #0x30] in=0f65f out=00000 */ R5 = *MEM32(R2 + 0x30); /* 02075150: cmp r5, #0x3 in=0f67f out=00000 */ tmpA = R5; tmpB = 3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075154: addls r15, r15, r5, lsl #0x2 in=3f67f out=00000 */ switch(R5) { default: goto lab02075158; case 0: goto lab020751d4; case 1: goto lab0207516c; case 2: goto lab0207519c; case 3: goto lab020751fc; } case 0x02075158: lab02075158: /* 02075158: b 0x2075234 in=0725f out=00000 */ goto lab02075234; case 0x02075234: lab02075234: /* 02075234: mov r5, r9, lsl #0x9 in=0725f out=00000 */ R5 = (R9 << 9); /* 02075238: str r5, [r2, #0x4c] in=0727f out=00000 */ *MEM32(R2 + 0x4c) = R5; /* 0207523c: ldr r5, [r2, #0x38] in=0725f out=00000 */ R5 = *MEM32(R2 + 0x38); /* 02075240: ldr r2, [r2, #0x3c] in=0727f out=00000 */ R2 = *MEM32(R2 + 0x3c); /* 02075244: ldr r7, [r4, #0x44] in=0727f out=00000 */ R7 = *MEM32(R4 + 0x44); /* 02075248: mul r2, r9, r2 in=072ff out=00000 */ R2 = R9 * R2; /* 0207524c: mla r2, r3, r5, r2 in=072ff out=00000 */ R2 = R3 * R5 + R2; /* 02075250: mov r2, r2, asr #0xf in=072d7 out=00000 */ R2 = ((int32_t)R2 >> 15); /* 02075254: ldr r3, [r7, #0x24] in=072d7 out=00000 */ R3 = *MEM32(R7 + 0x24); /* 02075258: mov r5, r2, lsl #0x9 in=072df out=00000 */ R5 = (R2 << 9); /* 0207525c: mul r3, r2, r3 in=072df out=00000 */ R3 = R2 * R3; /* 02075260: ldr r8, [r7, #0x34] in=072db out=00000 */ R8 = *MEM32(R7 + 0x34); /* 02075264: ldr r2, [r7, #0x5c] in=073db out=00000 */ R2 = *MEM32(R7 + 0x5c); /* 02075268: ldr r11, [r7, #0x38] in=073df out=00000 */ R11 = *MEM32(R7 + 0x38); /* 0207526c: smull r2, r10, r8, r2 in=07bdf out=00000 */ tmp64 = (int64_t)(int32_t)R8 * (int64_t)(int32_t)R2; R2 = tmp64; R10 = tmp64 >> 32; /* 02075270: mov r2, r2, lsr #0x17 in=07fdf out=00000 */ R2 = (R2 >> 23); /* 02075274: orr r2, r2, r10, lsl #0x9 in=07fdf out=00000 */ R2 = R2 | (R10 << 9); /* 02075278: adds r2, r11, r2 in=07bdf out=00000 */ tmpA = R11; tmpB = R2; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R2 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R2 == 0; N = (int32_t)R2 < 0; /* 0207527c: rsb r3, r2, r3, asr #0x6 in=073df out=00000 */ R3 = ((int32_t)R3 >> 6) - R2; /* 02075280: ldr r2, [r13, #0x14] in=073db out=00000 */ R2 = *MEM32(R13 + 0x14); /* 02075284: cmp r3, r2 in=073df out=00000 */ tmpA = R3; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075288: movgt r3, r1 in=d73d3 out=00000 */ if (!Z && (N == V)) { R3 = R1; } /* 0207528c: bgt 0x207529c in=d73db out=00000 */ if (!Z && (N == V)) { goto lab0207529c; } /* 02075290: ldr r2, [r13, #0x18] in=073db out=00000 */ R2 = *MEM32(R13 + 0x18); /* 02075294: cmp r3, r2 in=073df out=00000 */ tmpA = R3; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075298: movlt r3, r0 in=c73d3 out=00000 */ if (N != V) { R3 = R0; } case 0x0207529c: lab0207529c: /* 0207529c: ldr r2, [r7, #0x50] in=073db out=00000 */ R2 = *MEM32(R7 + 0x50); /* 020752a0: ldr r11, [r7, #0x40] in=073df out=00000 */ R11 = *MEM32(R7 + 0x40); /* 020752a4: smull r2, r10, r3, r2 in=07bdf out=00000 */ tmp64 = (int64_t)(int32_t)R3 * (int64_t)(int32_t)R2; R2 = tmp64; R10 = tmp64 >> 32; /* 020752a8: mov r2, r2, lsr #0x17 in=07fdf out=00000 */ R2 = (R2 >> 23); /* 020752ac: orr r2, r2, r10, lsl #0x9 in=07fdf out=00000 */ R2 = R2 | (R10 << 9); /* 020752b0: cmp r11, #0x1 in=07bdf out=00000 */ tmpA = R11; tmpB = 1; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020752b4: moveq r5, r3 in=17bdf out=00000 */ if (Z) { R5 = R3; } /* 020752b8: adds r8, r8, r2 in=07bd7 out=00000 */ tmpA = R8; tmpB = R2; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R8 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R8 == 0; N = (int32_t)R8 < 0; /* 020752bc: ldr r2, [r13, #0x1c] in=07bd3 out=00000 */ R2 = *MEM32(R13 + 0x1c); /* 020752c0: cmp r8, r2 in=07bd7 out=00000 */ tmpA = R8; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020752c4: movgt r8, r1 in=d7ad3 out=00000 */ if (!Z && (N == V)) { R8 = R1; } /* 020752c8: bgt 0x20752d8 in=d7bd3 out=00000 */ if (!Z && (N == V)) { goto lab020752d8; } /* 020752cc: ldr r2, [r13, #0x20] in=07bd3 out=00000 */ R2 = *MEM32(R13 + 0x20); /* 020752d0: cmp r8, r2 in=07bd7 out=00000 */ tmpA = R8; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020752d4: movlt r8, r0 in=c7ad3 out=00000 */ if (N != V) { R8 = R0; } case 0x020752d8: lab020752d8: /* 020752d8: str r8, [r7, #0x34] in=07bd3 out=00000 */ *MEM32(R7 + 0x34) = R8; /* 020752dc: ldr r2, [r7, #0x50] in=07bd3 out=00000 */ R2 = *MEM32(R7 + 0x50); /* 020752e0: cmp r11, #0x2 in=07bd7 out=00000 */ tmpA = R11; tmpB = 2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020752e4: smull r2, r10, r8, r2 in=173d7 out=00000 */ tmp64 = (int64_t)(int32_t)R8 * (int64_t)(int32_t)R2; R2 = tmp64; R10 = tmp64 >> 32; /* 020752e8: mov r2, r2, lsr #0x17 in=177d7 out=00000 */ R2 = (R2 >> 23); /* 020752ec: ldr r3, [r7, #0x38] in=177d7 out=00000 */ R3 = *MEM32(R7 + 0x38); /* 020752f0: orr r2, r2, r10, lsl #0x9 in=177df out=00000 */ R2 = R2 | (R10 << 9); /* 020752f4: moveq r5, r8 in=173df out=00000 */ if (Z) { R5 = R8; } /* 020752f8: adds r2, r3, r2 in=072df out=00000 */ tmpA = R3; tmpB = R2; tmp64 = (uint64_t)tmpA + tmpB; C = (tmp64 >> 32) & 1; R2 = tmp64; V = (~(tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = R2 == 0; N = (int32_t)R2 < 0; /* 020752fc: ldr r3, [r13, #0x24] in=072d7 out=00000 */ R3 = *MEM32(R13 + 0x24); /* 02075300: cmp r2, r3 in=072df out=00000 */ tmpA = R2; tmpB = R3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075304: movgt r2, r1 in=d72d3 out=00000 */ if (!Z && (N == V)) { R2 = R1; } /* 02075308: bgt 0x2075318 in=d72d7 out=00000 */ if (!Z && (N == V)) { goto lab02075318; } /* 0207530c: ldr r3, [r13, #0x28] in=072d7 out=00000 */ R3 = *MEM32(R13 + 0x28); /* 02075310: cmp r2, r3 in=072df out=00000 */ tmpA = R2; tmpB = R3; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075314: movlt r2, r0 in=c72d3 out=00000 */ if (N != V) { R2 = R0; } case 0x02075318: lab02075318: /* 02075318: str r2, [r7, #0x38] in=072d7 out=00000 */ *MEM32(R7 + 0x38) = R2; /* 0207531c: ldr r3, [r7, #0x40] in=072d7 out=00000 */ R3 = *MEM32(R7 + 0x40); /* 02075320: cmp r3, #0x0 in=072df out=00000 */ tmpA = R3; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075324: moveq r5, r2 in=172d7 out=00000 */ if (Z) { R5 = R2; } /* 02075328: ldr r3, [r7, #0x50] in=072f3 out=00000 */ R3 = *MEM32(R7 + 0x50); /* 0207532c: ldr r2, [r7, #0x54] in=072fb out=00000 */ R2 = *MEM32(R7 + 0x54); /* 02075330: mov r5, r5, asr #0x9 in=072ff out=00000 */ R5 = ((int32_t)R5 >> 9); /* 02075334: add r2, r3, r2 in=072ff out=00000 */ R2 = R3 + R2; /* 02075338: str r2, [r7, #0x50] in=072f7 out=00000 */ *MEM32(R7 + 0x50) = R2; /* 0207533c: ldr r3, [r7, #0x5c] in=072f3 out=00000 */ R3 = *MEM32(R7 + 0x5c); /* 02075340: ldr r2, [r7, #0x60] in=072fb out=00000 */ R2 = *MEM32(R7 + 0x60); /* 02075344: add r2, r3, r2 in=072ff out=00000 */ R2 = R3 + R2; /* 02075348: str r2, [r7, #0x5c] in=072f7 out=00000 */ *MEM32(R7 + 0x5c) = R2; /* 0207534c: ldr r2, [r4, #0x48] in=07273 out=00000 */ R2 = *MEM32(R4 + 0x48); /* 02075350: ldr r3, [r2, #0x38] in=07277 out=00000 */ R3 = *MEM32(R2 + 0x38); /* 02075354: mul r3, r5, r3 in=0727f out=00000 */ R3 = R5 * R3; /* 02075358: cmp r12, r3, asr #0xb in=0727f out=00000 */ tmpA = R12; tmpB = ((int32_t)R3 >> 11); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 0207535c: mov r3, r3, asr #0xb in=d727f out=00000 */ R3 = ((int32_t)R3 >> 11); /* 02075360: str r3, [r2, #0x34] in=d727f out=00000 */ *MEM32(R2 + 0x34) = R3; /* 02075364: movgt r3, r12 in=d7277 out=00000 */ if (!Z && (N == V)) { R3 = R12; } /* 02075368: bgt 0x2075374 in=d727f out=00000 */ if (!Z && (N == V)) { goto lab02075374; } /* 0207536c: cmp r3, r12, lsr #0x11 in=0727f out=00000 */ tmpA = R3; tmpB = (R12 >> 17); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075370: movgt r3, r14 in=d7277 out=00000 */ if (!Z && (N == V)) { R3 = R14; } case 0x02075374: lab02075374: /* 02075374: str r3, [r2, #0x34] in=0727f out=00000 */ *MEM32(R2 + 0x34) = R3; /* 02075378: mov r7, r3, asr #0x1 in=0727f out=00000 */ R7 = ((int32_t)R3 >> 1); /* 0207537c: ldr r8, [r2, #0x3c] in=072f7 out=00000 */ R8 = *MEM32(R2 + 0x3c); /* 02075380: ldr r3, [r2, #0x2c] in=073f7 out=00000 */ R3 = *MEM32(R2 + 0x2c); /* 02075384: mul r8, r5, r8 in=073ff out=00000 */ R8 = R5 * R8; /* 02075388: add r5, r7, r8, asr #0xf in=073df out=00000 */ R5 = R7 + ((int32_t)R8 >> 15); /* 0207538c: mov r5, r5, asr #0x1 in=0727f out=00000 */ R5 = ((int32_t)R5 >> 1); /* 02075390: mov r3, r3, asr #0x9 in=0727f out=00000 */ R3 = ((int32_t)R3 >> 9); /* 02075394: mul r3, r5, r3 in=0727f out=00000 */ R3 = R5 * R3; /* 02075398: mov r3, r3, asr #0xf in=0725f out=00000 */ R3 = ((int32_t)R3 >> 15); /* 0207539c: ldr r5, [r2, #0xc] in=0725f out=00000 */ R5 = *MEM32(R2 + 0xc); /* 020753a0: cmp r5, #0x0 in=0727f out=00000 */ tmpA = R5; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020753a4: beq 0x20753c8 in=1725f out=00000 */ if (Z) { goto lab020753c8; } /* 020753a8: mul r5, r9, r3 in=0725f out=00000 */ R5 = R9 * R3; /* 020753ac: mov r8, r5, asr #0xf in=0707f out=00000 */ R8 = ((int32_t)R5 >> 15); /* 020753b0: ldr r7, [r2, #0x20] in=0715f out=00000 */ R7 = *MEM32(R2 + 0x20); /* 020753b4: mul r5, r8, r7 in=071df out=00000 */ R5 = R8 * R7; /* 020753b8: rsb r7, r7, r12, lsr #0x11 in=070ff out=00000 */ R7 = (R12 >> 17) - R7; /* 020753bc: mul r7, r3, r7 in=070ff out=00000 */ R7 = R3 * R7; /* 020753c0: mov r3, r5, asr #0xf in=070f7 out=00000 */ R3 = ((int32_t)R5 >> 15); /* 020753c4: add r3, r3, r7, asr #0xf in=070df out=00000 */ R3 = R3 + ((int32_t)R7 >> 15); case 0x020753c8: lab020753c8: /* 020753c8: ldr r5, [r13, #0x2c] in=0705f out=00000 */ R5 = *MEM32(R13 + 0x2c); /* 020753cc: cmp r3, r5 in=0707f out=00000 */ tmpA = R3; tmpB = R5; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020753d0: addlt r3, r12, #0x4000 in=c7057 out=00000 */ if (N != V) { R3 = R12 + 0x4000; } /* 020753d4: blt 0x20753e0 in=c705f out=00000 */ if (N != V) { goto lab020753e0; } /* 020753d8: cmp r3, r12, lsr #0x12 in=0705f out=00000 */ tmpA = R3; tmpB = (R12 >> 18); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020753dc: ldrgt r3, [r13, #0x8] in=d7057 out=00000 */ if (!Z && (N == V)) { R3 = *MEM32(R13 + 0x8); } case 0x020753e0: lab020753e0: /* 020753e0: mov r7, r3, lsl #0x1 in=0705f out=00000 */ R7 = (R3 << 1); /* 020753e4: cmp r12, r3, lsl #0x1 in=0705f out=00000 */ tmpA = R12; tmpB = (R3 << 1); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020753e8: movgt r7, r12 in=d7057 out=00000 */ if (!Z && (N == V)) { R7 = R12; } /* 020753ec: bgt 0x20753f8 in=d70d7 out=00000 */ if (!Z && (N == V)) { goto lab020753f8; } /* 020753f0: cmp r7, r12, lsr #0x11 in=070d7 out=00000 */ tmpA = R7; tmpB = (R12 >> 17); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020753f4: movgt r7, r14 in=d7057 out=00000 */ if (!Z && (N == V)) { R7 = R14; } case 0x020753f8: lab020753f8: /* 020753f8: ldr r5, [r2, #0x2c] in=070d7 out=00000 */ R5 = *MEM32(R2 + 0x2c); /* 020753fc: ldr r3, [r2, #0x30] in=070f7 out=00000 */ R3 = *MEM32(R2 + 0x30); /* 02075400: add r6, r6, #0x1 in=070ff out=00000 */ R6 = R6 + 1; /* 02075404: add r3, r5, r3 in=070ff out=00000 */ R3 = R5 + R3; /* 02075408: str r3, [r2, #0x2c] in=070df out=00000 */ *MEM32(R2 + 0x2c) = R3; /* 0207540c: ldr r2, [r13] in=070d3 out=00000 */ R2 = *MEM32(R13); /* 02075410: strh r7, [r2], #0x2 in=070d7 out=00000 */ *MEM16(R2) = R7; R2 = R2 + 0x2; /* 02075414: str r2, [r13] in=07057 out=00000 */ *MEM32(R13) = R2; /* 02075418: ldr r2, [r4, #0x20] in=07053 out=00000 */ R2 = *MEM32(R4 + 0x20); /* 0207541c: cmp r6, r2 in=07057 out=00000 */ tmpA = R6; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075420: blt 0x2074f98 in=c7053 out=00000 */ if (N != V) { goto lab02074f98; } case 0x02075424: lab02075424: /* 02075424: mov r0, #0x0 in=02000 out=00000 */ R0 = 0; /* 02075428: add r13, r13, #0x68 in=02000 out=00000 */ R13 = R13 + 104; /* 0207542c: ldmia r13!, { r3-r11, r15 } in=02000 out=00000 */ R3 = *MEM32(R13 + 0); R4 = *MEM32(R13 + 4); R5 = *MEM32(R13 + 8); R6 = *MEM32(R13 + 12); R7 = *MEM32(R13 + 16); R8 = *MEM32(R13 + 20); R9 = *MEM32(R13 + 24); R10 = *MEM32(R13 + 28); R11 = *MEM32(R13 + 32); R15 = *MEM32(R13 + 36); R13 += 40; goto dispatch; case 0x020751fc: lab020751fc: /* 020751fc: ldr r7, [r2, #0x44] in=0f65f out=00000 */ R7 = *MEM32(R2 + 0x44); /* 02075200: tst r7, #0x40000000 in=0f6df out=00000 */ tmpA = R7 & 0x40000000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 02075204: ldreq r5, [r15, #0x224] ; 0x2075430 in=1f6df out=00000 */ if (Z) { R5 = 0x00001064; } /* 02075208: eoreq r5, r7, r5 in=176ff out=00000 */ if (Z) { R5 = R7 ^ R5; } /* 0207520c: moveq r5, r5, lsl #0x1 in=176ff out=00000 */ if (Z) { R5 = (R5 << 1); } /* 02075210: orreq r5, r5, #0x1 in=176ff out=00000 */ if (Z) { R5 = R5 | 1; } /* 02075214: movne r5, r7, lsl #0x1 in=176df out=00000 */ if (!Z) { R5 = (R7 << 1); } /* 02075218: str r5, [r2, #0x44] in=0767f out=00000 */ *MEM32(R2 + 0x44) = R5; /* 0207521c: eor r5, r9, r10 in=0765f out=00000 */ R5 = R9 ^ R10; /* 02075220: movs r5, r5, asr #0x1f in=0707f out=00000 */ C = ((int32_t)R5 >> 30) & 1; R5 = ((int32_t)R5 >> 31); Z = R5 == 0; N = (int32_t)R5 < 0; /* 02075224: ldrne r5, [r2, #0x44] in=1705f out=00000 */ if (!Z) { R5 = *MEM32(R2 + 0x44); } /* 02075228: movne r9, r5, asr #0x10 in=1707f out=00000 */ if (!Z) { R9 = ((int32_t)R5 >> 16); } /* 0207522c: strne r9, [r2, #0x50] in=1725f out=00000 */ if (!Z) { *MEM32(R2 + 0x50) = R9; } /* 02075230: ldreq r9, [r2, #0x50] in=1705f out=00000 */ if (Z) { R9 = *MEM32(R2 + 0x50); } case 0x0207519c: lab0207519c: /* 0207519c: mov r5, r9, asr #0x10 in=0725f out=00000 */ R5 = ((int32_t)R9 >> 16); /* 020751a0: cmp r5, #0x0 in=0707f out=00000 */ tmpA = R5; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020751a4: rsble r5, r5, #0x0 in=d707f out=00000 */ if (Z || (N != V)) { R5 = 0 - R5; } /* 020751a8: add r7, r12, r5, lsl #0x1 in=0707f out=00000 */ R7 = R12 + (R5 << 1); /* 020751ac: ldr r5, [r2, #0x28] in=070df out=00000 */ R5 = *MEM32(R2 + 0x28); /* 020751b0: mov r5, r5, asr #0x10 in=070ff out=00000 */ R5 = ((int32_t)R5 >> 16); /* 020751b4: mul r5, r7, r5 in=070ff out=00000 */ R5 = R7 * R5; /* 020751b8: mov r9, r5, asr #0x8 in=0707f out=00000 */ R9 = ((int32_t)R5 >> 8); /* 020751bc: cmp r12, r5, asr #0x8 in=0707f out=00000 */ tmpA = R12; tmpB = ((int32_t)R5 >> 8); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020751c0: movgt r9, r12 in=d705f out=00000 */ if (!Z && (N == V)) { R9 = R12; } /* 020751c4: bgt 0x2075234 in=d725f out=00000 */ if (!Z && (N == V)) { goto lab02075234; } /* 020751c8: cmp r9, r12, lsr #0x11 in=0725f out=00000 */ tmpA = R9; tmpB = (R12 >> 17); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020751cc: movgt r9, r14 in=d705f out=00000 */ if (!Z && (N == V)) { R9 = R14; } /* 020751d0: b 0x2075234 in=0725f out=00000 */ goto lab02075234; case 0x0207516c: lab0207516c: /* 0207516c: ldr r5, [r2, #0x28] in=0725f out=00000 */ R5 = *MEM32(R2 + 0x28); /* 02075170: mov r7, r9, asr #0x10 in=0727f out=00000 */ R7 = ((int32_t)R9 >> 16); /* 02075174: mov r5, r5, asr #0x10 in=070ff out=00000 */ R5 = ((int32_t)R5 >> 16); /* 02075178: mul r5, r7, r5 in=070ff out=00000 */ R5 = R7 * R5; /* 0207517c: mov r5, r5, asr #0x8 in=070ff out=00000 */ R5 = ((int32_t)R5 >> 8); /* 02075180: cmp r5, r12, lsr #0x11 in=070ff out=00000 */ tmpA = R5; tmpB = (R12 >> 17); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075184: movgt r5, r14 in=d70df out=00000 */ if (!Z && (N == V)) { R5 = R14; } /* 02075188: bgt 0x2075194 in=d70ff out=00000 */ if (!Z && (N == V)) { goto lab02075194; } /* 0207518c: cmp r5, r12 in=070ff out=00000 */ tmpA = R5; tmpB = R12; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075190: movlt r5, r12 in=c70df out=00000 */ if (N != V) { R5 = R12; } case 0x02075194: lab02075194: /* 02075194: sub r9, r7, r5 in=070ff out=00000 */ R9 = R7 - R5; /* 02075198: b 0x2075234 in=0725f out=00000 */ goto lab02075234; case 0x020751d4: lab020751d4: /* 020751d4: ldr r7, [r2, #0x18] in=0725f out=00000 */ R7 = *MEM32(R2 + 0x18); /* 020751d8: mov r5, r9, asr #0x10 in=072df out=00000 */ R5 = ((int32_t)R9 >> 16); /* 020751dc: mov r8, r7, asr #0x10 in=070ff out=00000 */ R8 = ((int32_t)R7 >> 16); /* 020751e0: ldr r7, [r13, #0x10] in=0717f out=00000 */ R7 = *MEM32(R13 + 0x10); /* 020751e4: cmp r5, #0x0 in=071ff out=00000 */ tmpA = R5; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020751e8: mul r7, r8, r7 in=d71ff out=00000 */ R7 = R8 * R7; /* 020751ec: rsble r5, r5, #0x0 in=d70ff out=00000 */ if (Z || (N != V)) { R5 = 0 - R5; } /* 020751f0: add r5, r12, r5, lsl #0x1 in=070ff out=00000 */ R5 = R12 + (R5 << 1); /* 020751f4: add r9, r5, r7, asr #0xf in=070ff out=00000 */ R9 = R5 + ((int32_t)R7 >> 15); /* 020751f8: b 0x2075234 in=0725f out=00000 */ goto lab02075234; case 0x02075124: lab02075124: /* 02075124: ldr r5, [r2, #0x40] in=0f657 out=00000 */ R5 = *MEM32(R2 + 0x40); /* 02075128: tst r5, #0x40000000 in=0f677 out=00000 */ tmpA = R5 & 0x40000000; Z = tmpA == 0; N = (int32_t)tmpA < 0; /* 0207512c: ldreq r3, [r15, #0x2fc] ; 0x2075430 in=1f677 out=00000 */ if (Z) { R3 = 0x00001064; } /* 02075130: eoreq r3, r5, r3 in=1f67f out=00000 */ if (Z) { R3 = R5 ^ R3; } /* 02075134: moveq r3, r3, lsl #0x1 in=1f67f out=00000 */ if (Z) { R3 = (R3 << 1); } /* 02075138: orreq r3, r3, #0x1 in=1f67f out=00000 */ if (Z) { R3 = R3 | 1; } /* 0207513c: movne r3, r5, lsl #0x1 in=1f677 out=00000 */ if (!Z) { R3 = (R5 << 1); } /* 02075140: str r3, [r2, #0x40] in=0f65f out=00000 */ *MEM32(R2 + 0x40) = R3; /* 02075144: mov r3, r3 in=0f65f out=00000 */ R3 = R3; /* 02075148: mov r3, r3, asr #0x10 in=0f65f out=00000 */ R3 = ((int32_t)R3 >> 16); case 0x020750c4: lab020750c4: /* 020750c4: mov r3, r3, asr #0x10 in=0765f out=00000 */ R3 = ((int32_t)R3 >> 16); /* 020750c8: ldr r5, [r2, #0x24] in=0765f out=00000 */ R5 = *MEM32(R2 + 0x24); /* 020750cc: cmp r3, #0x0 in=0767f out=00000 */ tmpA = R3; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020750d0: rsble r3, r3, #0x0 in=d767f out=00000 */ if (Z || (N != V)) { R3 = 0 - R3; } /* 020750d4: add r3, r12, r3, lsl #0x1 in=0767f out=00000 */ R3 = R12 + (R3 << 1); /* 020750d8: mov r5, r5, asr #0x10 in=0767f out=00000 */ R5 = ((int32_t)R5 >> 16); /* 020750dc: mul r5, r3, r5 in=0767f out=00000 */ R5 = R3 * R5; /* 020750e0: mov r3, r5, asr #0x8 in=07677 out=00000 */ R3 = ((int32_t)R5 >> 8); /* 020750e4: cmp r12, r5, asr #0x8 in=07677 out=00000 */ tmpA = R12; tmpB = ((int32_t)R5 >> 8); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020750e8: movgt r3, r12 in=d7657 out=00000 */ if (!Z && (N == V)) { R3 = R12; } /* 020750ec: bgt 0x207514c in=d765f out=00000 */ if (!Z && (N == V)) { goto lab0207514c; } /* 020750f0: cmp r3, r12, lsr #0x11 in=0765f out=00000 */ tmpA = R3; tmpB = (R12 >> 17); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020750f4: movgt r3, r14 in=d7657 out=00000 */ if (!Z && (N == V)) { R3 = R14; } /* 020750f8: b 0x207514c in=0765f out=00000 */ goto lab0207514c; case 0x02075094: lab02075094: /* 02075094: ldr r5, [r2, #0x24] in=0765f out=00000 */ R5 = *MEM32(R2 + 0x24); /* 02075098: mov r3, r3, asr #0x10 in=0767f out=00000 */ R3 = ((int32_t)R3 >> 16); /* 0207509c: mov r5, r5, asr #0x10 in=0767f out=00000 */ R5 = ((int32_t)R5 >> 16); /* 020750a0: mul r5, r3, r5 in=0767f out=00000 */ R5 = R3 * R5; /* 020750a4: mov r5, r5, asr #0x8 in=0767f out=00000 */ R5 = ((int32_t)R5 >> 8); /* 020750a8: cmp r5, r12, lsr #0x11 in=0767f out=00000 */ tmpA = R5; tmpB = (R12 >> 17); tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020750ac: movgt r5, r14 in=d765f out=00000 */ if (!Z && (N == V)) { R5 = R14; } /* 020750b0: bgt 0x20750bc in=d767f out=00000 */ if (!Z && (N == V)) { goto lab020750bc; } /* 020750b4: cmp r5, r12 in=0767f out=00000 */ tmpA = R5; tmpB = R12; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020750b8: movlt r5, r12 in=c765f out=00000 */ if (N != V) { R5 = R12; } case 0x020750bc: lab020750bc: /* 020750bc: sub r3, r3, r5 in=0767f out=00000 */ R3 = R3 - R5; /* 020750c0: b 0x207514c in=0765f out=00000 */ goto lab0207514c; case 0x020750fc: lab020750fc: /* 020750fc: ldr r5, [r2, #0x14] in=0765f out=00000 */ R5 = *MEM32(R2 + 0x14); /* 02075100: mov r3, r3, asr #0x10 in=0767f out=00000 */ R3 = ((int32_t)R3 >> 16); /* 02075104: mov r7, r5, asr #0x10 in=0767f out=00000 */ R7 = ((int32_t)R5 >> 16); /* 02075108: ldr r5, [r13, #0xc] in=076df out=00000 */ R5 = *MEM32(R13 + 0xc); /* 0207510c: cmp r3, #0x0 in=076ff out=00000 */ tmpA = R3; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075110: mul r5, r7, r5 in=d76ff out=00000 */ R5 = R7 * R5; /* 02075114: rsble r3, r3, #0x0 in=d767f out=00000 */ if (Z || (N != V)) { R3 = 0 - R3; } /* 02075118: add r3, r12, r3, lsl #0x1 in=0767f out=00000 */ R3 = R12 + (R3 << 1); /* 0207511c: add r3, r3, r5, asr #0xf in=0767f out=00000 */ R3 = R3 + ((int32_t)R5 >> 15); /* 02075120: b 0x207514c in=0765f out=00000 */ goto lab0207514c; case 0x0207500c: lab0207500c: /* 0207500c: ldr r9, [r2, #0x68] in=0745f out=00000 */ R9 = *MEM32(R2 + 0x68); /* 02075010: ldr r8, [r2, #0x14] in=0765f out=00000 */ R8 = *MEM32(R2 + 0x14); /* 02075014: ldr r5, [r2, #0x4c] in=0775f out=00000 */ R5 = *MEM32(R2 + 0x4c); /* 02075018: mul r7, r5, r9 in=0777f out=00000 */ R7 = R5 * R9; /* 0207501c: mov r5, r7, asr #0x7 in=077df out=00000 */ R5 = ((int32_t)R7 >> 7); /* 02075020: mul r5, r9, r5 in=0777f out=00000 */ R5 = R9 * R5; /* 02075024: sub r5, r8, r5, asr #0x1 in=0757f out=00000 */ R5 = R8 - ((int32_t)R5 >> 1); /* 02075028: str r5, [r2, #0x14] in=0747f out=00000 */ *MEM32(R2 + 0x14) = R5; /* 0207502c: b 0x2075050 in=0745f out=00000 */ goto lab02075050; case 0x02074fdc: lab02074fdc: /* 02074fdc: ldr r9, [r2, #0x60] in=0745f out=00000 */ R9 = *MEM32(R2 + 0x60); /* 02074fe0: ldr r8, [r2, #0x14] in=0765f out=00000 */ R8 = *MEM32(R2 + 0x14); /* 02074fe4: ldr r5, [r2, #0x4c] in=0775f out=00000 */ R5 = *MEM32(R2 + 0x4c); /* 02074fe8: mul r7, r5, r9 in=0777f out=00000 */ R7 = R5 * R9; /* 02074fec: mov r5, r7, asr #0x7 in=077df out=00000 */ R5 = ((int32_t)R7 >> 7); /* 02074ff0: mul r5, r9, r5 in=0777f out=00000 */ R5 = R9 * R5; /* 02074ff4: sub r5, r8, r5, asr #0x1 in=0757f out=00000 */ R5 = R8 - ((int32_t)R5 >> 1); /* 02074ff8: str r5, [r2, #0x14] in=0747f out=00000 */ *MEM32(R2 + 0x14) = R5; /* 02074ffc: ldr r9, [r2, #0x18] in=0745f out=00000 */ R9 = *MEM32(R2 + 0x18); /* 02075000: ldr r5, [r2, #0x4c] in=0765f out=00000 */ R5 = *MEM32(R2 + 0x4c); /* 02075004: ldr r7, [r2, #0x64] in=0767f out=00000 */ R7 = *MEM32(R2 + 0x64); /* 02075008: b 0x207503c in=076ff out=00000 */ goto lab0207503c; case 0x02074e58: lab02074e58: /* 02074e58: add r2, r6, r0 in=02053 out=00000 */ R2 = R6 + R0; /* 02074e5c: ldr r6, [r1, #0x1c] in=02017 out=00000 */ R6 = *MEM32(R1 + 0x1c); /* 02074e60: mov r2, r2, asr #0x1 in=02057 out=00000 */ R2 = ((int32_t)R2 >> 1); /* 02074e64: smull r5, r3, r2, r6 in=02057 out=00000 */ tmp64 = (int64_t)(int32_t)R2 * (int64_t)(int32_t)R6; R5 = tmp64; R3 = tmp64 >> 32; /* 02074e68: mov r2, r5, lsr #0x18 in=0207b out=00000 */ R2 = (R5 >> 24); /* 02074e6c: orr r2, r2, r3, lsl #0x8 in=0205f out=00000 */ R2 = R2 | (R3 << 8); /* 02074e70: cmp r6, #0x0 in=02057 out=00000 */ tmpA = R6; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074e74: addgt r0, r2, r0 in=d2057 out=00000 */ if (!Z && (N == V)) { R0 = R2 + R0; } /* 02074e78: subgt r5, r0, r6 in=d2057 out=00000 */ if (!Z && (N == V)) { R5 = R0 - R6; } /* 02074e7c: addle r5, r2, r0 in=d2017 out=00000 */ if (Z || (N != V)) { R5 = R2 + R0; } case 0x02074e34: lab02074e34: /* 02074e34: ldr r5, [r1, #0x1c] in=02053 out=00000 */ R5 = *MEM32(R1 + 0x1c); /* 02074e38: smull r3, r2, r6, r5 in=02073 out=00000 */ tmp64 = (int64_t)(int32_t)R6 * (int64_t)(int32_t)R5; R3 = tmp64; R2 = tmp64 >> 32; /* 02074e3c: mov r3, r3, lsr #0x18 in=0203f out=00000 */ R3 = (R3 >> 24); /* 02074e40: orr r3, r3, r2, lsl #0x8 in=0203f out=00000 */ R3 = R3 | (R2 << 8); /* 02074e44: cmp r5, #0x0 in=0203b out=00000 */ tmpA = R5; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074e48: addgt r0, r3, r0 in=d203b out=00000 */ if (!Z && (N == V)) { R0 = R3 + R0; } /* 02074e4c: subgt r5, r0, r5 in=d203b out=00000 */ if (!Z && (N == V)) { R5 = R0 - R5; } /* 02074e50: addle r5, r3, r0 in=d201b out=00000 */ if (Z || (N != V)) { R5 = R3 + R0; } /* 02074e54: b 0x2074e80 in=02032 out=00000 */ goto lab02074e80; /*** SUBROUTINE, color=7 ***/ case 0x0200ea1c: lab0200ea1c: /* 0200ea1c: stmdb r13!, { r4 } in=0e011 out=00000 */ *MEM32(R13 - 4) = R4; R13 -= 4; /* 0200ea20: ldr r1, [r15, #0x2c] ; 0x200ea54 in=0e001 out=00000 */ R1 = 0x04000290; /* 0200ea24: ldmia r0, { r2-r4, r12 } in=06003 out=00000 */ R2 = *MEM32(R0 + 0); R3 = *MEM32(R0 + 4); R4 = *MEM32(R0 + 8); R12 = *MEM32(R0 + 12); /* 0200ea28: stmia r1, { r2-r4, r12 } in=0701f out=00000 */ *MEM32(R1 + 0) = R2; *MEM32(R1 + 4) = R3; *MEM32(R1 + 8) = R4; *MEM32(R1 + 12) = R12; /* 0200ea2c: ldrh r2, [r0, #0x18] in=06003 out=00000 */ R2 = *MEM16(R0 + 0x18); /* 0200ea30: ldrh r3, [r0, #0x1a] in=06007 out=00000 */ R3 = *MEM16(R0 + 0x1a); /* 0200ea34: strh r2, [r1, #-0x10] in=0600f out=00000 */ *MEM16(R1 - 0x10) = R2; /* 0200ea38: strh r3, [r1, #0x20] in=0600b out=00000 */ *MEM16(R1 + 0x20) = R3; /* 0200ea3c: add r0, r0, #0x10 in=06003 out=00000 */ R0 = R0 + 16; /* 0200ea40: add r1, r1, #0x28 in=06003 out=00000 */ R1 = R1 + 40; /* 0200ea44: ldmia r0, { r2, r3 } in=06003 out=00000 */ R2 = *MEM32(R0 + 0); R3 = *MEM32(R0 + 4); /* 0200ea48: stmia r1, { r2, r3 } in=0600e out=00000 */ *MEM32(R1 + 0) = R2; *MEM32(R1 + 4) = R3; /* 0200ea4c: ldmia r13!, { r4 } in=06000 out=00000 */ R4 = *MEM32(R13 + 0); R13 += 4; /* 0200ea50: bx r14 in=04000 out=00000 */ R15 = R14; goto dispatch; /*** SUBROUTINE, color=6 ***/ case 0x0200e9dc: lab0200e9dc: /* 0200e9dc: ldr r1, [r15, #0x34] ; 0x200ea18 in=0e011 out=00000 */ R1 = 0x04000290; /* 0200e9e0: stmdb r13!, { r4 } in=06013 out=00000 */ *MEM32(R13 - 4) = R4; R13 -= 4; /* 0200e9e4: ldmia r1, { r2-r4, r12 } in=06003 out=00000 */ R2 = *MEM32(R1 + 0); R3 = *MEM32(R1 + 4); R4 = *MEM32(R1 + 8); R12 = *MEM32(R1 + 12); /* 0200e9e8: stmia r0!, { r2-r4, r12 } in=0701f out=00000 */ *MEM32(R0 + 0) = R2; *MEM32(R0 + 4) = R3; *MEM32(R0 + 8) = R4; *MEM32(R0 + 12) = R12; R0 += 16; /* 0200e9ec: ldrh r12, [r1, #-0x10] in=06003 out=00000 */ R12 = *MEM16(R1 - 0x10); /* 0200e9f0: add r1, r1, #0x28 in=07003 out=00000 */ R1 = R1 + 40; /* 0200e9f4: ldmia r1, { r2, r3 } in=07003 out=00000 */ R2 = *MEM32(R1 + 0); R3 = *MEM32(R1 + 4); /* 0200e9f8: stmia r0!, { r2, r3 } in=0700f out=00000 */ *MEM32(R0 + 0) = R2; *MEM32(R0 + 4) = R3; R0 += 8; /* 0200e9fc: and r12, r12, #0x3 in=07003 out=00000 */ R12 = R12 & 3; /* 0200ea00: ldrh r2, [r1, #-0x8] in=07003 out=00000 */ R2 = *MEM16(R1 - 0x8); /* 0200ea04: strh r12, [r0] in=07005 out=00000 */ *MEM16(R0) = R12; /* 0200ea08: and r2, r2, #0x1 in=06005 out=00000 */ R2 = R2 & 1; /* 0200ea0c: strh r2, [r0, #0x2] in=06005 out=00000 */ *MEM16(R0 + 0x2) = R2; /* 0200ea10: ldmia r13!, { r4 } in=06000 out=00000 */ R4 = *MEM32(R13 + 0); R13 += 4; /* 0200ea14: bx r14 in=04000 out=00000 */ R15 = R14; goto dispatch; case 0x02074944: lab02074944: /* 02074944: cmp r1, r2 in=0a017 out=00000 */ tmpA = R1; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074948: strlt r2, [r0, #0x4] in=ca015 out=00000 */ if (N != V) { *MEM32(R0 + 0x4) = R2; } case 0x020748cc: lab020748cc: /* 020748cc: ldr r2, [r0, #0xc] in=02051 out=00000 */ R2 = *MEM32(R0 + 0xc); /* 020748d0: mov r1, #0x42 in=02055 out=00000 */ R1 = 66; /* 020748d4: mul r1, r2, r1 in=02057 out=00000 */ R1 = R2 * R1; /* 020748d8: mov r1, r1, asr #0x7 in=02053 out=00000 */ R1 = ((int32_t)R1 >> 7); /* 020748dc: str r1, [r0, #0xc] in=02053 out=00000 */ *MEM32(R0 + 0xc) = R1; /* 020748e0: ldr r1, [r0] in=02051 out=00000 */ R1 = *MEM32(R0); /* 020748e4: ldr r2, [r0, #0x8] in=02053 out=00000 */ R2 = *MEM32(R0 + 0x8); /* 020748e8: ldr r1, [r1, #0xc] in=02057 out=00000 */ R1 = *MEM32(R1 + 0xc); /* 020748ec: sub r1, r6, r1 in=02057 out=00000 */ R1 = R6 - R1; /* 020748f0: smull r3, r1, r2, r1 in=02017 out=00000 */ tmp64 = (int64_t)(int32_t)R2 * (int64_t)(int32_t)R1; R3 = tmp64; R1 = tmp64 >> 32; /* 020748f4: mov r2, r3, lsr #0x18 in=0201b out=00000 */ R2 = (R3 >> 24); /* 020748f8: orr r2, r2, r1, lsl #0x8 in=02017 out=00000 */ R2 = R2 | (R1 << 8); /* 020748fc: str r2, [r0, #0x8] in=02015 out=00000 */ *MEM32(R0 + 0x8) = R2; case 0x020748bc: lab020748bc: /* 020748bc: ldr r1, [r0] in=02011 out=00000 */ R1 = *MEM32(R0); /* 020748c0: ldr r1, [r1, #0x8] in=02013 out=00000 */ R1 = *MEM32(R1 + 0x8); /* 020748c4: str r1, [r0, #0x8] in=02013 out=00000 */ *MEM32(R0 + 0x8) = R1; /* 020748c8: b 0x2074900 in=02010 out=00000 */ goto lab02074900; case 0x02074878: lab02074878: /* 02074878: ldr r2, [r0] in=02011 out=00000 */ R2 = *MEM32(R0); /* 0207487c: ldr r5, [r0, #0x8] in=02015 out=00000 */ R5 = *MEM32(R0 + 0x8); /* 02074880: ldr r1, [r2, #0x8] in=02035 out=00000 */ R1 = *MEM32(R2 + 0x8); /* 02074884: ldr r2, [r2, #0x4] in=02037 out=00000 */ R2 = *MEM32(R2 + 0x4); /* 02074888: sub r1, r1, r5 in=02037 out=00000 */ R1 = R1 - R5; /* 0207488c: smull r3, r1, r2, r1 in=02037 out=00000 */ tmp64 = (int64_t)(int32_t)R2 * (int64_t)(int32_t)R1; R3 = tmp64; R1 = tmp64 >> 32; /* 02074890: mov r2, r3, lsr #0x18 in=0203b out=00000 */ R2 = (R3 >> 24); /* 02074894: orr r2, r2, r1, lsl #0x8 in=02037 out=00000 */ R2 = R2 | (R1 << 8); /* 02074898: add r2, r5, r2 in=02035 out=00000 */ R2 = R5 + R2; /* 0207489c: str r2, [r0, #0x8] in=02015 out=00000 */ *MEM32(R0 + 0x8) = R2; /* 020748a0: ldr r1, [r0] in=02015 out=00000 */ R1 = *MEM32(R0); /* 020748a4: ldr r1, [r1, #0x8] in=02017 out=00000 */ R1 = *MEM32(R1 + 0x8); /* 020748a8: cmp r2, r1 in=02017 out=00000 */ tmpA = R2; tmpB = R1; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020748ac: strlt r1, [r0, #0x8] in=c2013 out=00000 */ if (N != V) { *MEM32(R0 + 0x8) = R1; } /* 020748b0: movlt r1, #0x2 in=c2011 out=00000 */ if (N != V) { R1 = 2; } /* 020748b4: strblt r1, [r0, #0x4] in=c2013 out=00000 */ if (N != V) { *MEM8(R0 + 0x4) = R1; } /* 020748b8: b 0x2074900 in=02010 out=00000 */ goto lab02074900; case 0x02074800: lab02074800: /* 02074800: ldr r8, [r0, #0xc] in=0a031 out=00000 */ R8 = *MEM32(R0 + 0xc); /* 02074804: ldr r2, [r15, #0xc28] ; 0x2075434 in=0a131 out=00000 */ R2 = 0x00b33333; /* 02074808: mov r1, #0x70 in=0a135 out=00000 */ R1 = 112; /* 0207480c: sub r3, r2, r8 in=0a137 out=00000 */ R3 = R2 - R8; /* 02074810: umull r7, r6, r3, r1 in=0a13f out=00000 */ tmp64 = (uint64_t)R3 * (uint64_t)R1; R7 = tmp64; R6 = tmp64 >> 32; /* 02074814: mla r6, r3, r5, r6 in=0a1ff out=00000 */ R6 = R3 * R5 + R6; /* 02074818: mov r3, r3, asr #0x1f in=0a1df out=00000 */ R3 = ((int32_t)R3 >> 31); /* 0207481c: mla r6, r3, r1, r6 in=0a1df out=00000 */ R6 = R3 * R1 + R6; /* 02074820: mov r1, r7, lsr #0x7 in=0a1d5 out=00000 */ R1 = (R7 >> 7); /* 02074824: orr r1, r1, r6, lsl #0x19 in=0a157 out=00000 */ R1 = R1 | (R6 << 25); /* 02074828: add r1, r8, r1 in=0a117 out=00000 */ R1 = R8 + R1; /* 0207482c: str r1, [r0, #0xc] in=0a017 out=00000 */ *MEM32(R0 + 0xc) = R1; /* 02074830: cmp r1, r2 in=0a017 out=00000 */ tmpA = R1; tmpB = R2; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074834: strgt r2, [r0, #0xc] in=da015 out=00000 */ if (!Z && (N == V)) { *MEM32(R0 + 0xc) = R2; } /* 02074838: ldr r2, [r0] in=0a011 out=00000 */ R2 = *MEM32(R0); /* 0207483c: ldr r5, [r0, #0x8] in=0a015 out=00000 */ R5 = *MEM32(R0 + 0x8); /* 02074840: ldr r1, [r15, #0xbf0] ; 0x2075438 in=0a035 out=00000 */ R1 = 0x014ccccd; /* 02074844: ldr r2, [r2] in=02037 out=00000 */ R2 = *MEM32(R2); /* 02074848: sub r1, r1, r5 in=02037 out=00000 */ R1 = R1 - R5; /* 0207484c: smull r3, r2, r1, r2 in=02037 out=00000 */ tmp64 = (int64_t)(int32_t)R1 * (int64_t)(int32_t)R2; R3 = tmp64; R2 = tmp64 >> 32; /* 02074850: mov r1, r3, lsr #0x18 in=0203d out=00000 */ R1 = (R3 >> 24); /* 02074854: orr r1, r1, r2, lsl #0x8 in=02037 out=00000 */ R1 = R1 | (R2 << 8); /* 02074858: add r2, r5, r1 in=02033 out=00000 */ R2 = R5 + R1; /* 0207485c: mvn r1, #0xff000000 in=02015 out=00000 */ R1 = ~0xff000000; /* 02074860: str r2, [r0, #0x8] in=02017 out=00000 */ *MEM32(R0 + 0x8) = R2; /* 02074864: cmp r2, r1 in=02017 out=00000 */ tmpA = R2; tmpB = R1; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02074868: strgt r1, [r0, #0x8] in=d2013 out=00000 */ if (!Z && (N == V)) { *MEM32(R0 + 0x8) = R1; } /* 0207486c: movgt r1, #0x1 in=d2011 out=00000 */ if (!Z && (N == V)) { R1 = 1; } /* 02074870: strbgt r1, [r0, #0x4] in=d2013 out=00000 */ if (!Z && (N == V)) { *MEM8(R0 + 0x4) = R1; } /* 02074874: b 0x2074900 in=02010 out=00000 */ goto lab02074900; /*** SUBROUTINE, color=2 ***/ case 0x0207546c: lab0207546c: /* 0207546c: stmdb r13!, { r3-r11, r14 } in=06ff9 out=00000 */ *MEM32(R13 - 4) = R14; *MEM32(R13 - 8) = R11; *MEM32(R13 - 12) = R10; *MEM32(R13 - 16) = R9; *MEM32(R13 - 20) = R8; *MEM32(R13 - 24) = R7; *MEM32(R13 - 28) = R6; *MEM32(R13 - 32) = R5; *MEM32(R13 - 36) = R4; *MEM32(R13 - 40) = R3; R13 -= 40; /* 02075470: mov r9, r0 in=02001 out=00000 */ R9 = R0; /* 02075474: ldrb r7, [r9, #0x8] in=02200 out=00000 */ R7 = *MEM8(R9 + 0x8); /* 02075478: mov r5, #0x0 in=02080 out=00000 */ R5 = 0; /* 0207547c: cmp r7, #0x0 in=020a0 out=00000 */ tmpA = R7; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075480: moveq r0, r5 in=12020 out=00000 */ if (Z) { R0 = R5; } /* 02075484: ldmiaeq r13!, { r3-r11, r15 } in=12000 out=00000 */ if (Z) { R3 = *MEM32(R13 + 0); R4 = *MEM32(R13 + 4); R5 = *MEM32(R13 + 8); R6 = *MEM32(R13 + 12); R7 = *MEM32(R13 + 16); R8 = *MEM32(R13 + 20); R9 = *MEM32(R13 + 24); R10 = *MEM32(R13 + 28); R11 = *MEM32(R13 + 32); R15 = *MEM32(R13 + 36); R13 += 40; goto dispatch; } /* 02075488: cmp r7, #0x0 in=022a0 out=00000 */ tmpA = R7; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 0207548c: mov r8, r5 in=d22a0 out=00000 */ R8 = R5; /* 02075490: ble 0x2075634 in=d23a0 out=00000 */ if (Z || (N != V)) { goto lab02075634; } /* 02075494: mov r11, #0x3 in=023a0 out=00000 */ R11 = 3; /* 02075498: mvn r4, #0x80000000 in=02ba0 out=00000 */ R4 = ~0x80000000; /* 0207549c: mov r6, r11 in=02bb0 out=00000 */ R6 = R11; /* 020754a0: mov r10, #0x1 in=02bf0 out=00000 */ R10 = 1; case 0x020754a4: lab020754a4: /* 020754a4: ldr r0, [r9, #0x4] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x4); /* 020754a8: add r1, r0, r8, lsl #0x3 in=02ff1 out=00000 */ R1 = R0 + (R8 << 3); /* 020754ac: ldrb r0, [r0, r8, lsl #0x3] in=02ff3 out=00000 */ R0 = *MEM8(R0 + (R8 << 3)); /* 020754b0: cmp r0, #0x15 in=02ff3 out=00000 */ tmpA = R0; tmpB = 21; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020754b4: bgt 0x20754ec in=d2ff3 out=00000 */ if (!Z && (N == V)) { goto lab020754ec; } /* 020754b8: bge 0x2075628 in=c2ff3 out=00000 */ if (N == V) { goto lab02075628; } /* 020754bc: cmp r0, #0x5 in=02ff3 out=00000 */ tmpA = R0; tmpB = 5; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020754c0: bgt 0x2075628 in=d2ff3 out=00000 */ if (!Z && (N == V)) { goto lab02075628; } /* 020754c4: cmp r0, #0x0 in=0aff3 out=00000 */ tmpA = R0; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020754c8: addge r15, r15, r0, lsl #0x2 in=caff3 out=00000 */ switch(R0) { default: goto lab020754cc; case 0: goto lab02075628; case 1: goto lab02075524; case 2: goto lab02075534; case 3: goto lab02075628; case 4: goto lab02075588; case 5: goto lab020755a0; case 6: goto lab02075628; } case 0x020754cc: lab020754cc: /* 020754cc: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x020755a0: lab020755a0: /* 020755a0: ldr r1, [r9, #0x30] in=02ff0 out=00000 */ R1 = *MEM32(R9 + 0x30); /* 020755a4: mov r0, #0x3 in=02ff2 out=00000 */ R0 = 3; /* 020755a8: strb r0, [r1, #0x4] in=02ff3 out=00000 */ *MEM8(R1 + 0x4) = R0; /* 020755ac: mov r0, #0x1 in=02ff2 out=00000 */ R0 = 1; /* 020755b0: strb r0, [r1, #0x5] in=02ff3 out=00000 */ *MEM8(R1 + 0x5) = R0; /* 020755b4: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x02075588: lab02075588: /* 02075588: ldr r2, [r1, #0x4] in=02ff2 out=00000 */ R2 = *MEM32(R1 + 0x4); /* 0207558c: ldr r0, [r9, #0x34] in=02ff6 out=00000 */ R0 = *MEM32(R9 + 0x34); /* 02075590: str r2, [r9, #0x2c] in=02ff7 out=00000 */ *MEM32(R9 + 0x2c) = R2; /* 02075594: ldr r1, [r1, #0x4] in=02ff3 out=00000 */ R1 = *MEM32(R1 + 0x4); /* 02075598: bl 0x2075ad4 in=02ff3 out=00000 */ R14 = 0x0207559c; goto lab02075ad4; case 0x0207559c: lab0207559c: /* 0207559c: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; /*** SUBROUTINE, color=5 ***/ case 0x02075ad4: lab02075ad4: /* 02075ad4: str r1, [r0, #0x2c] in=08003 out=00000 */ *MEM32(R0 + 0x2c) = R1; /* 02075ad8: ldrsh r1, [r0, #0x30] in=08001 out=00000 */ R1 = (int16_t)*MEM16(R0 + 0x30); /* 02075adc: ldr r12, [r15] ; 0x2075ae4 in=08000 out=00000 */ R12 = 0x02075a58; /* 02075ae0: bx r12 in=01000 out=00000 */ R15 = R12; goto dispatch; case 0x02075534: lab02075534: /* 02075534: ldrsb r1, [r1, #0x4] in=02ff2 out=00000 */ R1 = (int8_t)*MEM8(R1 + 0x4); /* 02075538: ldr r0, [r9, #0x3c] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x3c); /* 0207553c: mov r2, r5 in=02ff1 out=00000 */ R2 = R5; /* 02075540: bl 0x2071fac in=02ff1 out=00000 */ R14 = 0x02075544; goto lab02071fac; case 0x02075544: lab02075544: /* 02075544: ldrh r0, [r9, #0x52] in=02ff0 out=00000 */ R0 = *MEM16(R9 + 0x52); /* 02075548: cmp r0, #0x0 in=02ff1 out=00000 */ tmpA = R0; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 0207554c: beq 0x2075570 in=12ff0 out=00000 */ if (Z) { goto lab02075570; } /* 02075550: ldr r0, [r9, #0x30] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x30); /* 02075554: strh r5, [r9, #0x52] in=02ff1 out=00000 */ *MEM16(R9 + 0x52) = R5; /* 02075558: str r5, [r0, #0xc] in=02ff1 out=00000 */ *MEM32(R0 + 0xc) = R5; /* 0207555c: str r5, [r0, #0x8] in=02ff1 out=00000 */ *MEM32(R0 + 0x8) = R5; /* 02075560: ldr r1, [r9, #0x30] in=02ff0 out=00000 */ R1 = *MEM32(R9 + 0x30); /* 02075564: mov r0, #0x1 in=02ff2 out=00000 */ R0 = 1; /* 02075568: strb r11, [r1, #0x4] in=02ff3 out=00000 */ *MEM8(R1 + 0x4) = R11; /* 0207556c: strb r0, [r1, #0x5] in=02ff3 out=00000 */ *MEM8(R1 + 0x5) = R0; case 0x02075570: lab02075570: /* 02075570: ldr r1, [r9, #0x30] in=02ff0 out=00000 */ R1 = *MEM32(R9 + 0x30); /* 02075574: ldrsb r0, [r1, #0x5] in=02ff2 out=00000 */ R0 = (int8_t)*MEM8(R1 + 0x5); /* 02075578: cmp r0, #0x0 in=02ff3 out=00000 */ tmpA = R0; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 0207557c: strbne r5, [r1, #0x4] in=12ff2 out=00000 */ if (!Z) { *MEM8(R1 + 0x4) = R5; } /* 02075580: strb r5, [r1, #0x5] in=02ff2 out=00000 */ *MEM8(R1 + 0x5) = R5; /* 02075584: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; /*** SUBROUTINE, color=4 ***/ case 0x02071fac: lab02071fac: /* 02071fac: ldr r0, [r0, #0x18] in=08001 out=00000 */ R0 = *MEM32(R0 + 0x18); /* 02071fb0: ldr r12, [r15] ; 0x2071fb8 in=08000 out=00000 */ R12 = 0x02075c7c; /* 02071fb4: bx r12 in=01000 out=00000 */ R15 = R12; goto dispatch; case 0x02075524: lab02075524: /* 02075524: ldr r0, [r9, #0x30] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x30); /* 02075528: strb r6, [r0, #0x4] in=02ff1 out=00000 */ *MEM8(R0 + 0x4) = R6; /* 0207552c: strb r10, [r0, #0x5] in=02ff1 out=00000 */ *MEM8(R0 + 0x5) = R10; /* 02075530: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x02075628: lab02075628: /* 02075628: add r8, r8, #0x1 in=02ff0 out=00000 */ R8 = R8 + 1; /* 0207562c: cmp r8, r7 in=02ff0 out=00000 */ tmpA = R8; tmpB = R7; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075630: blt 0x20754a4 in=c2ff0 out=00000 */ if (N != V) { goto lab020754a4; } case 0x02075634: lab02075634: /* 02075634: mov r0, #0x0 in=02200 out=00000 */ R0 = 0; /* 02075638: strb r0, [r9, #0x8] in=02201 out=00000 */ *MEM8(R9 + 0x8) = R0; /* 0207563c: ldmia r13!, { r3-r11, r15 } in=02000 out=00000 */ R3 = *MEM32(R13 + 0); R4 = *MEM32(R13 + 4); R5 = *MEM32(R13 + 8); R6 = *MEM32(R13 + 12); R7 = *MEM32(R13 + 16); R8 = *MEM32(R13 + 20); R9 = *MEM32(R13 + 24); R10 = *MEM32(R13 + 28); R11 = *MEM32(R13 + 32); R15 = *MEM32(R13 + 36); R13 += 40; goto dispatch; case 0x020754ec: lab020754ec: /* 020754ec: cmp r0, #0x18 in=02ff1 out=00000 */ tmpA = R0; tmpB = 24; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020754f0: bgt 0x20754fc in=d2ff1 out=00000 */ if (!Z && (N == V)) { goto lab020754fc; } /* 020754f4: beq 0x20755b8 in=12ff0 out=00000 */ if (Z) { goto lab020755b8; } /* 020754f8: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x020755b8: lab020755b8: /* 020755b8: ldr r0, [r9, #0x34] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x34); /* 020755bc: str r4, [r0, #0x14] in=02ff1 out=00000 */ *MEM32(R0 + 0x14) = R4; /* 020755c0: str r5, [r0, #0x1c] in=02ff1 out=00000 */ *MEM32(R0 + 0x1c) = R5; /* 020755c4: ldr r0, [r9, #0x30] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x30); /* 020755c8: str r5, [r0, #0xc] in=02ff1 out=00000 */ *MEM32(R0 + 0xc) = R5; /* 020755cc: str r5, [r0, #0x8] in=02ff1 out=00000 */ *MEM32(R0 + 0x8) = R5; /* 020755d0: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x020754fc: lab020754fc: /* 020754fc: sub r0, r0, #0x19 in=0aff1 out=00000 */ R0 = R0 - 25; /* 02075500: cmp r0, #0x5 in=0aff1 out=00000 */ tmpA = R0; tmpB = 5; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 02075504: addls r15, r15, r0, lsl #0x2 in=3aff1 out=00000 */ switch(R0) { default: goto lab02075508; case 0: goto lab02075628; case 1: goto lab02075628; case 2: goto lab02075628; case 3: goto lab020755e4; case 4: goto lab020755d4; case 5: goto lab02075608; } case 0x02075508: lab02075508: /* 02075508: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x02075608: lab02075608: /* 02075608: ldr r0, [r9, #0x34] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x34); /* 0207560c: str r4, [r0, #0x14] in=02ff1 out=00000 */ *MEM32(R0 + 0x14) = R4; /* 02075610: str r5, [r0, #0x1c] in=02ff1 out=00000 */ *MEM32(R0 + 0x1c) = R5; /* 02075614: ldr r0, [r9, #0x30] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x30); /* 02075618: str r5, [r0, #0xc] in=02ff1 out=00000 */ *MEM32(R0 + 0xc) = R5; /* 0207561c: str r5, [r0, #0x8] in=02ff1 out=00000 */ *MEM32(R0 + 0x8) = R5; /* 02075620: ldr r0, [r9, #0x40] in=02ff0 out=00000 */ R0 = *MEM32(R9 + 0x40); /* 02075624: bl 0x2071e14 in=02ff1 out=00000 */ R14 = 0x02075628; goto lab02071e14; /*** SUBROUTINE, color=3 ***/ case 0x02071e14: lab02071e14: /* 02071e14: ldr r1, [r15, #0xc] ; 0x2071e28 in=0c001 out=00000 */ R1 = 0x0017f3a7; /* 02071e18: mov r2, #0x0 in=04003 out=00000 */ R2 = 0; /* 02071e1c: str r2, [r0, #0x14] in=04007 out=00000 */ *MEM32(R0 + 0x14) = R2; /* 02071e20: str r1, [r0, #0x18] in=04003 out=00000 */ *MEM32(R0 + 0x18) = R1; /* 02071e24: bx r14 in=04000 out=00000 */ R15 = R14; goto dispatch; case 0x020755d4: lab020755d4: /* 020755d4: mov r0, #0x1 in=02ff0 out=00000 */ R0 = 1; /* 020755d8: strh r0, [r9, #0x50] in=02ff1 out=00000 */ *MEM16(R9 + 0x50) = R0; /* 020755dc: strh r0, [r9, #0x52] in=02ff1 out=00000 */ *MEM16(R9 + 0x52) = R0; /* 020755e0: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628; case 0x020755e4: lab020755e4: /* 020755e4: ldrh r0, [r9, #0x50] in=02ff0 out=00000 */ R0 = *MEM16(R9 + 0x50); /* 020755e8: cmp r0, #0x0 in=02ff1 out=00000 */ tmpA = R0; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; /* 020755ec: ldrne r1, [r9, #0x34] in=12ff0 out=00000 */ if (!Z) { R1 = *MEM32(R9 + 0x34); } /* 020755f0: strhne r5, [r9, #0x50] in=12ff2 out=00000 */ if (!Z) { *MEM16(R9 + 0x50) = R5; } /* 020755f4: ldrbne r0, [r1, #0x28] in=12ff2 out=00000 */ if (!Z) { R0 = *MEM8(R1 + 0x28); } /* 020755f8: cmpne r0, #0x0 in=12ff3 out=00000 */ if (!Z) { tmpA = R0; tmpB = 0; tmp64 = (uint64_t)tmpA - tmpB; C = ~(tmp64 >> 32) & 1; V = ((tmpA ^ tmpB) & (tmpA ^ (uint32_t)tmp64)) >> 31; Z = (uint32_t)tmp64 == 0; N = (int32_t)(uint32_t)tmp64 < 0; } /* 020755fc: strne r4, [r1, #0x14] in=12ff2 out=00000 */ if (!Z) { *MEM32(R1 + 0x14) = R4; } /* 02075600: strne r5, [r1, #0x1c] in=12ff2 out=00000 */ if (!Z) { *MEM32(R1 + 0x1c) = R5; } /* 02075604: b 0x2075628 in=02ff0 out=00000 */ goto lab02075628;