.include "asm/macros.inc" .include "global.inc" .text arm_func_start _frdiv _frdiv: ; 0x020EB078 eor r0, r0, r1 eor r1, r0, r1 eor r0, r0, r1 arm_func_start _fdiv _fdiv: ; 0x020EB084 stmdb sp!, {lr} mov r12, #0xff ands r3, r12, r0, lsr #0x17 cmpne r3, #0xff beq _020EB258 ands r12, r12, r1, lsr #0x17 cmpne r12, #0xff beq _020EB294 orr r1, r1, #0x800000 orr r0, r0, #0x800000 bic r2, r0, #0xff000000 bic lr, r1, #0xff000000 _020EB0B4: cmp r2, lr movcc r2, r2, lsl #0x1 subcc r3, r3, #0x1 teq r0, r1 sub r0, pc, #0x94 ; _020EB138 - #0x100 ldrb r1, [r0, lr, lsr #0xf] rsb lr, lr, #0x0 mov r0, lr, asr #0x1 mul r0, r1, r0 add r0, r0, #0x80000000 mov r0, r0, lsr #0x6 mul r0, r1, r0 mov r0, r0, lsr #0xe mul r1, lr, r0 sub r12, r3, r12 mov r1, r1, lsr #0xc mul r1, r0, r1 mov r0, r0, lsl #0xe add r0, r0, r1, lsr #0xf umull r1, r0, r2, r0 mov r3, r0 orrmi r0, r0, #0x80000000 adds r12, r12, #0x7e bmi _020EB35C cmp r12, #0xfe bge _020EB410 add r0, r0, r12, lsl #0x17 mov r12, r1, lsr #0x1c cmp r12, #0x7 beq _020EB238 add r0, r0, r1, lsr #0x1f ldmia sp!, {lr} bx lr _020EB138: ; not code .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9 .byte 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA .byte 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE .byte 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2 .byte 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD, 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8 .byte 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3, 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF .byte 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA, 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6 .byte 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2, 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF .byte 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7 .byte 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1 .byte 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B .byte 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95 .byte 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90 .byte 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B .byte 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86 .byte 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82 .byte 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80 _020EB238: mov r1, r3, lsl #0x1 add r1, r1, #0x1 rsb lr, lr, #0x0 mul r1, lr, r1 cmp r1, r2, lsl #0x18 addmi r0, r0, #0x1 ldmia sp!, {lr} bx lr _020EB258: eor lr, r0, r1 and lr, lr, #0x80000000 cmp r3, #0x0 beq _020EB2B0 movs r0, r0, lsl #0x9 bne _020EB3F8 mov r12, r1, lsr #0x17 mov r1, r1, lsl #0x9 ands r12, r12, #0xff beq _020EB3E8 cmp r12, #0xff blt _020EB3E8 cmp r1, #0x0 beq _020EB404 b _020EB3E0 _020EB294: eor lr, r0, r1 and lr, lr, #0x80000000 cmp r12, #0x0 beq _020EB314 _020EB2A4: movs r1, r1, lsl #0x9 bne _020EB3E0 b _020EB430 _020EB2B0: movs r2, r0, lsl #0x9 beq _020EB2E4 clz r3, r2 movs r2, r2, lsl r3 rsb r3, r3, #0x0 mov r2, r2, lsr #0x8 ands r12, r12, r1, lsr #0x17 beq _020EB33C cmp r12, #0xff beq _020EB2A4 orr r1, r1, #0x800000 bic lr, r1, #0xff000000 b _020EB0B4 _020EB2E4: mov r12, r1, lsr #0x17 mov r1, r1, lsl #0x9 ands r12, r12, #0xff beq _020EB308 cmp r12, #0xff blt _020EB430 cmp r1, #0x0 beq _020EB430 b _020EB3E0 _020EB308: cmp r1, #0x0 beq _020EB404 b _020EB430 _020EB314: movs r12, r1, lsl #0x9 beq _020EB3E8 mov lr, r12 clz r12, lr movs lr, lr, lsl r12 rsb r12, r12, #0x0 mov lr, lr, lsr #0x8 orr r0, r0, #0x800000 bic r2, r0, #0xff000000 b _020EB0B4 _020EB33C: movs r12, r1, lsl #0x9 beq _020EB3E8 mov lr, r12 clz r12, lr movs lr, lr, lsl r12 rsb r12, r12, #0x0 mov lr, lr, lsr #0x8 b _020EB0B4 _020EB35C: and r0, r0, #0x80000000 cmn r12, #0x18 beq _020EB3D0 bmi _020EB428 add r1, r12, #0x17 mov r2, r2, lsl r1 rsb r12, r12, #0x0 mov r3, r3, lsr r12 orr r0, r0, r3 rsb lr, lr, #0x0 mul r1, lr, r3 cmp r1, r2 ldmeqia sp!, {lr} bxeq lr add r1, r1, lr cmp r1, r2 beq _020EB3C4 addmi r0, r0, #0x1 subpl r1, r1, lr add r1, lr, r1, lsl #0x1 cmp r1, r2, lsl #0x1 and r3, r0, #0x1 addmi r0, r0, #0x1 addeq r0, r0, r3 ldmia sp!, {lr} bx lr _020EB3C4: add r0, r0, #0x1 ldmia sp!, {lr} bx lr _020EB3D0: cmn r2, lr addne r0, r0, #0x1 ldmia sp!, {lr} bx lr _020EB3E0: mov r0, r1 b _020EB3F8 _020EB3E8: mov r0, #0xff000000 orr r0, lr, r0, lsr #0x1 ldmia sp!, {lr} bx lr _020EB3F8: mvn r0, #0x80000000 ldmia sp!, {lr} bx lr _020EB404: mvn r0, #0x80000000 ldmia sp!, {lr} bx lr _020EB410: tst r0, #0x80000000 mov r0, #0xff000000 movne r0, r0, asr #0x1 moveq r0, r0, lsr #0x1 ldmia sp!, {lr} bx lr _020EB428: ldmia sp!, {lr} bx lr _020EB430: mov r0, lr ldmia sp!, {lr} bx lr