Function at 0x1007ab10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88
push ebx
push ebp
push esi
mov esi, ecx
cmp dword [esi + 0x408f4], 0
push edi
mov dword [esp + 0x44], 0x7fffffff
mov dword [esp + 0x4c], 0
jne 0x1007b968
cmp dword [esi + 0x40a34], 0
je 0x1007b968
mov edx, dword [esi + 0x40a2c]
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push 0
push edx
mov edx, dword [esi + 0x40a28]
push edx
call eax
mov ecx, esi
call fcn.10076330
mov ecx, dword [esi + 0x409b0]
push 1
mov word [esi + 0x40a00], ax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0
push 6
call eax
mov edi, dword [esi + 0x409b0]
mov ebx, dword [edi]
push 0
mov ecx, esi
call fcn.100763f0
mov edx, dword [ebx + 0xc]
xor ecx, ecx
add eax, dword [esi + 0x40a28]
adc ecx, dword [esi + 0x40a2c]
push ecx
push eax
mov ecx, edi
call edx
mov ecx, esi
call fcn.100763f0
mov edi, eax
mov ecx, esi
mov dword [esp + 0x40], edi
call fcn.100763f0
test edi, edi
je 0x1007b968
mov edi, edi
mov ecx, dword [esi + 0x409b0]
dec dword [esp + 0x40]
push 4
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov byte [esp + 0x3e], 0xff
mov byte [esp + 0x3f], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x40]
push edx
call eax
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x1007ac22
movzx ebp, byte [esp + 0x3b]
movzx edx, byte [esp + 0x3a]
movzx eax, byte [esp + 0x39]
movzx ecx, byte [esp + 0x38]
jmp 0x1007ac36
movzx ebp, byte [esp + 0x38]
movzx edx, byte [esp + 0x39]
movzx eax, byte [esp + 0x3a]
movzx ecx, byte [esp + 0x3b]
shl ebp, 8
or ebp, edx
shl ebp, 8
or ebp, eax
shl ebp, 8
or ebp, ecx
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x34], 0xff
mov byte [esp + 0x35], 0xff
mov byte [esp + 0x36], 0xff
mov byte [esp + 0x37], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x38]
push eax
call edx
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x1007ac93
movzx ebx, byte [esp + 0x33]
movzx ecx, byte [esp + 0x32]
movzx edx, byte [esp + 0x31]
movzx eax, byte [esp + 0x30]
jmp 0x1007aca7
movzx ebx, byte [esp + 0x30]
movzx ecx, byte [esp + 0x31]
movzx edx, byte [esp + 0x32]
movzx eax, byte [esp + 0x33]
shl ebx, 8
or ebx, ecx
mov ecx, dword [esi + 0x409b0]
shl ebx, 8
or ebx, edx
push 4
shl ebx, 8
or ebx, eax
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x24]
push eax
call edx
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x1007ad04
movzx edi, byte [esp + 0x1f]
movzx ecx, byte [esp + 0x1e]
movzx edx, byte [esp + 0x1d]
movzx eax, byte [esp + 0x1c]
jmp 0x1007ad18
movzx edi, byte [esp + 0x1c]
movzx ecx, byte [esp + 0x1d]
movzx edx, byte [esp + 0x1e]
movzx eax, byte [esp + 0x1f]
shl edi, 8
or edi, ecx
mov ecx, dword [esi + 0x409b0]
shl edi, 8
or edi, edx
mov edx, dword [ecx]
shl edi, 8
or edi, eax
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x48], eax
xor eax, eax
add edi, dword [esi + 0x40a28]
push 0
adc eax, dword [esi + 0x40a2c]
push eax
push edi
call edx
cmp ebp, 0x419
jne 0x1007ae9c
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x34]
push edx
call eax
xor edi, edi
nop
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x28], eax
fld dword [esp + 0x28]
inc edi
cmp edi, 8
fstp dword [esp + edi*4 + 0x50]
jl 0x1007ad90
fld dword [esi + 0x2024c]
xor ecx, ecx
fsub dword [esp + 0x70]
mov dword [esp + 0x14], ecx
lea edx, [esi + 0x1fc]
fmul dword [esp + 0x6c]
fadd qword [0x1023a7a0]
fadd dword [esp + 0x60]
fstp dword [esp + 0x60]
fld dword [esp + 0x68]
fld dword [esp + 0x60]
fld dword [esp + 0x58]
fld dword [0x1023aab8]
fld qword [0x1023aac0]
fild dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fmul st(6)
fadd st(5)
fmulp st(1)
fadd st(3)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1007ae16
fst dword [esp + 0x24]
jmp 0x1007ae1e
fxch st(2)
fst dword [esp + 0x24]
fxch st(2)
fld dword [esp + 0x24]
fcomp qword [0x1023a778]
fnstsw ax
test ah, 5
jp 0x1007ae39
fstp st(0)
fldz
fstp dword [esp + 0x14]
jmp 0x1007ae52
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1007ae48
fstp dword [esp + 0x14]
jmp 0x1007ae52
fstp st(0)
fxch st(1)
fst dword [esp + 0x14]
fxch st(1)
fld dword [esp + 0x14]
inc ecx
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x28], eax
add edx, 2
cmp ecx, 0x10000
fldcw word [esp + 0x28]
mov dword [esp + 0x14], ecx
fistp dword [esp + 0x28]
mov ax, word [esp + 0x28]
mov word [edx - 2], ax
fldcw word [esp + 0x10]
jl 0x1007ade9
fstp st(0)
fstp st(3)
fstp st(1)
jmp 0x1007af73
cmp ebp, 0x41a
jne 0x1007b02f
xor edi, edi
lea ebx, [ebx]
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x28], eax
fld dword [esp + 0x28]
inc edi
cmp edi, 4
fstp dword [esp + edi*4 + 0x50]
jl 0x1007aeb0
fld qword [0x1023aac0]
xor ecx, ecx
fldz
mov dword [esp + 0x14], ecx
fldz
lea edx, [esi + 0x1fc]
jmp 0x1007aee3
fxch st(1)
fxch st(1)
mov eax, 4
fst dword [esp + 0x10]
fild dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
sub eax, 1
fmul dword [esp + 0x10]
fadd dword [esp + eax*4 + 0x54]
fstp dword [esp + 0x10]
jne 0x1007aefa
fadd dword [esp + 0x10]
fcom st(3)
fnstsw ax
test ah, 5
jp 0x1007af29
fcom st(2)
fnstsw ax
test ah, 5
jp 0x1007af29
fstp st(0)
fld st(1)
jmp 0x1007af36
fcom st(3)
fnstsw ax
test ah, 5
jnp 0x1007af36
fstp st(0)
fld st(2)
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x28], eax
inc ecx
add edx, 2
cmp ecx, 0x10000
fldcw word [esp + 0x28]
mov dword [esp + 0x14], ecx
fistp dword [esp + 0x28]
mov ax, word [esp + 0x28]
mov word [edx - 2], ax
fldcw word [esp + 0x10]
jl 0x1007aee1
fstp st(2)
xor ecx, ecx
fstp st(0)
xor edx, edx
fstp st(0)
cmp cx, word [esi + 0xac]
jae 0x1007b44f
mov ecx, ebp
and ecx, 1
mov dword [esp + 0x28], ecx
jmp 0x1007afa0
mov eax, dword [esi + 0x20244]
movzx edi, word [esi + 0xae]
imul eax, ecx
cmp eax, edi
jae 0x1007b01a
mov ecx, edx
and ecx, 7
lea edi, [ecx + ecx]
lea esp, [esp]
movzx ecx, word [esi + 0x409dc]
movzx ebp, word [esi + 0xb6]
mov ebx, edx
shr ebx, cl
imul ebx, ebp
mov ebp, eax
shr ebp, cl
mov ecx, eax
and ecx, 1
or ecx, edi
add ebx, ebp
mov ebp, dword [esi + 0x98]
add ecx, ecx
shr ebp, cl
inc eax
and ebp, 3
lea ecx, [ebp + ebx*4]
mov ebx, dword [esi + 0x40860]
lea ecx, [ebx + ecx*2]
movzx ebx, word [ecx]
mov bx, word [esi + ebx*2 + 0x1fc]
mov word [ecx], bx
movzx ecx, word [esi + 0xae]
cmp eax, ecx
jb 0x1007afc0
mov ecx, dword [esp + 0x28]
movzx eax, word [esi + 0xac]
inc edx
cmp edx, eax
jb 0x1007afa0
jmp 0x1007b44f
cmp ebp, 0x400
jne 0x1007b3ca
lea eax, [ebx - 8]
test eax, eax
jl 0x1007b44f
add eax, 8
shr eax, 3
mov dword [esp + 0x28], eax
mov ecx, esi
call fcn.10076330
movzx ecx, word [esi + 0xb2]
movzx ebp, ax
sub ebp, ecx
mov ecx, esi
call fcn.10076330
movzx edx, word [esi + 0xb0]
movzx edi, ax
mov ecx, esi
sub edi, edx
call fcn.10076330
mov ecx, esi
movzx ebx, ax
call fcn.10076330
movzx eax, word [esi + 0xae]
cmp ebp, eax
jae 0x1007b3ba
cmp ebx, 0x83
jne 0x1007b2fb
xor ecx, ecx
mov dword [esp + 0x14], 0
cmp cx, word [esi + 0xac]
jae 0x1007b3ba
fld qword [0x10179230]
mov eax, ebp
fld qword [0x10179228]
and eax, 1
fld qword [0x1023a7b8]
mov dword [esp + 0x50], eax
fld qword [0x1023a798]
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x98]
mov ecx, ebx
and ecx, 7
add ecx, ecx
or ecx, dword [esp + 0x50]
add ecx, ecx
shr eax, cl
and eax, 3
mov dword [esp + 0x24], eax
cmp eax, 1
jne 0x1007b229
lea edx, [esp + 0x78]
xor ebx, ebx
mov dword [esp + 0x24], edx
mov edi, 0x1017920c
movsx eax, byte [edi + 1]
movsx ecx, byte [edi]
add ecx, dword [esp + 0x14]
add eax, ebp
push eax
push ecx
mov ecx, esi
call fcn.1007a5b0
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
add edi, 2
add ecx, 4
add ebx, eax
cmp edi, 0x10179214
mov dword [esp + 0x24], ecx
jl 0x1007b112
mov eax, dword [esp + 0x78]
add eax, eax
add eax, eax
sub eax, ebx
cdq
mov ecx, eax
mov eax, dword [esp + 0x7c]
add eax, eax
add eax, eax
xor ecx, edx
sub eax, ebx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
xor edi, edi
cmp ecx, eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
jge 0x1007b17b
mov edi, 1
mov eax, dword [esp + 0x80]
add eax, eax
add eax, eax
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x90], eax
cmp dword [esp + edi*4 + 0x88], eax
jge 0x1007b1a2
mov edi, 2
mov eax, dword [esp + 0x84]
add eax, eax
add eax, eax
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x94], eax
cmp dword [esp + edi*4 + 0x88], eax
jge 0x1007b1c9
mov edi, 3
sub ebx, dword [esp + edi*4 + 0x78]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
mov dword [esp + 0x24], ebx
movzx ecx, word [esi + 0x409dc]
fild dword [esp + 0x24]
movzx edi, word [esi + 0xb6]
fdiv st(1)
or eax, 0xc00
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
shr eax, cl
fadd st(2)
imul eax, edi
fldcw word [esp + 0x24]
mov edi, ebp
fistp dword [esp + 0x24]
mov dx, word [esp + 0x24]
shr edi, cl
mov ecx, dword [esi + 0x40860]
fldcw word [esp + 0x10]
add eax, edi
mov word [ecx + eax*8 + 2], dx
jmp 0x1007b2d6
mov dword [esp + 0x10], 0
mov edi, 0x1017921c
movsx edx, byte [edi + 1]
movsx eax, byte [edi]
add edx, ebp
push edx
add eax, ebx
push eax
mov ecx, esi
call fcn.1007a5b0
add dword [esp + 0x10], eax
add edi, 2
cmp edi, 0x10179224
jl 0x1007b236
lea ecx, [ebp - 2]
push ecx
push ebx
mov ecx, esi
call fcn.1007a5b0
lea edx, [ebp + 2]
push edx
push ebx
mov ecx, esi
mov edi, eax
call fcn.1007a5b0
movzx ecx, word [esi + 0x409dc]
movzx edx, word [esi + 0xb6]
add edi, eax
mov dword [esp + 0x18], edi
shr ebx, cl
fild dword [esp + 0x18]
fmul st(3)
fild dword [esp + 0x10]
imul ebx, edx
fnstcw word [esp + 0x10]
fmul st(5)
fadd st(3)
movzx eax, word [esp + 0x10]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x18], eax
mov edx, ebp
shr edx, cl
fldcw word [esp + 0x18]
mov ecx, dword [esp + 0x24]
fistp dword [esp + 0x18]
add ebx, edx
lea edx, [ecx + ebx*4]
mov ecx, dword [esi + 0x40860]
mov ax, word [esp + 0x18]
mov word [ecx + edx*2], ax
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x14]
movzx edx, word [esi + 0xac]
inc eax
mov dword [esp + 0x14], eax
cmp eax, edx
jb 0x1007b0da
fstp st(1)
fstp st(1)
fstp st(1)
fstp st(0)
jmp 0x1007b3ba
cmp ebx, 0x81
jne 0x1007b3ba
movzx eax, word [esi + 0xac]
cmp edi, eax
jae 0x1007b3ba
mov eax, dword [esi + 0x98]
mov ecx, edi
and ecx, 7
add ecx, ecx
mov edx, ebp
and edx, 1
or ecx, edx
add ecx, ecx
shr eax, cl
xor ebx, ebx
mov dword [esp + 0x10], 0
and eax, 3
cmp eax, 1
setne bl
mov dword [esp + 0x24], eax
add ebx, ebx
add ebx, ebx
lea eax, [ebx + 8]
cmp ebx, eax
mov dword [esp + 0x18], eax
jge 0x1007b388
jmp 0x1007b360
movsx eax, byte [ebx*2 + 0x1017920d]
movsx ecx, byte [ebx*2 + 0x1017920c]
add eax, ebp
add ecx, edi
push eax
push ecx
mov ecx, esi
call fcn.1007a5b0
add dword [esp + 0x10], eax
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x1007b360
movzx ecx, word [esi + 0x409dc]
movzx eax, word [esi + 0xb6]
mov edx, dword [esp + 0x10]
shr edi, cl
shr ebp, cl
mov ecx, dword [esp + 0x24]
add edx, 4
imul edi, eax
sar edx, 3
add edi, ebp
lea eax, [ecx + edi*4]
mov ecx, dword [esi + 0x40860]
mov word [ecx + eax*2], dx
sub dword [esp + 0x28], 1
jne 0x1007b050
jmp 0x1007b44f
cmp ebp, 0x401
jne 0x1007b3d8
push 2
push 1
jmp 0x1007b448
cmp ebp, 0x416
je 0x1007b444
cmp ebp, 0x410
je 0x1007b444
cmp ebp, 0x40b
jne 0x1007b3f4
push 4
jmp 0x1007b446
cmp ebp, 0x412
jne 0x1007b44f
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 1
push 0
push 0x24
call eax
mov ecx, esi
call fcn.10076330
movzx eax, ax
sub eax, dword [esi + 0x20248]
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x44], eax
jle 0x1007b44f
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x10]
call eax
sub eax, 0x26
mov dword [esp + 0x4c], eax
jmp 0x1007b44f
push 2
push 0
mov ecx, esi
call fcn.1007a630
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [esp + 0x48]
mov edx, dword [edx + 0xc]
push 0
push 0
push eax
call edx
cmp dword [esp + 0x40], 0
jne 0x1007abd0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x1007b968
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
cdq
push 0
push edx
push eax
mov eax, dword [edi + 0xc]
call eax
xor edi, edi
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x24]
push eax
call edx
movzx ecx, byte [esp + 0x1e]
movzx edx, byte [esp + 0x1d]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x1007b4ed
movzx eax, byte [esp + 0x1f]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x1c]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x1007b506
movzx eax, byte [esp + 0x1c]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x1f]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
and eax, 0x7fff
mov dword [esp + edi*4 + 0x54], eax
inc edi
cmp edi, 9
jl 0x1007b490
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
imul ebp, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
imul edi, ebx
push 6
lea eax, [edi + ebp]
push eax
mov ecx, esi
call fcn.10072ba0
push str.phase_one_correct__
push eax
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.100721a0
mov ecx, dword [esp + 0x30]
lea eax, [ecx + edi*4]
mov ecx, dword [esi + 0x409b0]
lea ebp, [eax + ebp*4]
lea edx, [ebp + edi*2]
push 2
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], edx
mov byte [esp + 0x14], 0xff
mov byte [esp + 0x15], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x44], ebp
call eax
mov dword [esp + 0x2c], 0
lea ecx, [ecx]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + ecx + 0x60]
imul edx, dword [esp + ecx + 0x58]
lea eax, [esp + ecx + 0x58]
lea ecx, [esp + ecx + 0x60]
test edx, edx
jle 0x1007b64d
mov edx, dword [esp + 0x2c]
mov ebp, dword [ecx]
mov edi, dword [esp + edx + 0x30]
imul ebp, dword [eax]
lea ebx, [ebx]
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x24]
push edx
call eax
movzx edx, byte [esp + 0x1e]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
movzx ecx, byte [esp + 0x1d]
jne 0x1007b61d
movzx eax, byte [esp + 0x1f]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x1c]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x1007b636
movzx eax, byte [esp + 0x1c]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x1f]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov dword [esp + 0x48], eax
fld dword [esp + 0x48]
add edi, 4
sub ebp, 1
fstp dword [edi - 4]
jne 0x1007b5c0
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, 8
mov dword [esp + 0x2c], eax
jl 0x1007b590
mov dword [esp + 0x2c], 0
lea esp, [esp]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + ecx + 0x60]
imul edx, dword [esp + ecx + 0x58]
lea eax, [esp + ecx + 0x58]
lea ecx, [esp + ecx + 0x60]
test edx, edx
jle 0x1007b701
mov edx, dword [esp + 0x2c]
mov ebp, dword [ecx]
mov edi, dword [esp + edx + 0x38]
imul ebp, dword [eax]
jmp 0x1007b6a0
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x14], 0xff
mov byte [esp + 0x15], 0xff
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 1
lea edx, [esp + 0x18]
push edx
call eax
movzx dx, byte [esp + 0x11]
mov ecx, 0x4949
cmp word [esi + 0x40a00], cx
jne 0x1007b6e6
movzx ax, byte [esp + 0x10]
shl dx, 8
or dx, ax
movzx eax, dx
jmp 0x1007b6f6
movzx cx, byte [esp + 0x10]
shl cx, 8
or cx, dx
movzx eax, cx
mov word [edi], ax
add edi, 2
sub ebp, 1
jne 0x1007b6a0
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, 8
mov dword [esp + 0x2c], eax
jl 0x1007b670
xor eax, eax
mov dword [esp + 0x14], 0
cmp ax, word [esi + 0xac]
jae 0x1007b95c
fld qword [0x1023a780]
fld1
fld qword [0x1023a7b8]
fldz
xor ecx, ecx
mov dword [esp + 0x2c], 0
cmp cx, word [esi + 0xae]
jae 0x1007b93c
mov edx, dword [esp + 0x14]
fild dword [esp + 0x60]
and edx, 7
lea eax, [edx + edx]
fstp dword [esp + 0x48]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
test ecx, ecx
jge 0x1007b781
fadd dword [0x1023ab98]
movzx edx, word [esi + 0xaa]
fmul dword [esp + 0x48]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fdivp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld st(0)
call fcn.10153880
movzx ecx, word [esi + 0x409dc]
mov edx, dword [esp + 0x14]
movzx ebp, word [esi + 0xb6]
shr edx, cl
mov dword [esp + 0x18], eax
fisub dword [esp + 0x18]
imul edx, ebp
fstp dword [esp + 0x24]
mov ebp, edi
shr ebp, cl
mov ecx, edi
mov edi, dword [esi + 0x98]
and ecx, 1
or ecx, dword [esp + 0x50]
add edx, ebp
add ecx, ecx
shr edi, cl
and edi, 3
lea ecx, [edi + edx*4]
mov edx, dword [esi + 0x40860]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x28], ecx
movzx ecx, word [ecx]
mov dword [esp + 0x18], ecx
lea edx, [eax + 2]
cmp eax, edx
fild dword [esp + 0x18]
fmul st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
jge 0x1007b8c9
mov ecx, eax
imul ecx, ebx
lea edi, [esp + 0x1c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x38]
mov ebp, ecx
lea ecx, [edi + ecx*2]
sub edx, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
xor ecx, ecx
xor edx, edx
test ebx, ebx
jle 0x1007b88a
mov edi, dword [esp + 0x40]
movzx eax, word [edi]
mov dword [esp + 0x18], eax
lea edx, [ecx + ebp]
fild dword [esp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x1007b85f
inc ecx
add edi, 2
cmp ecx, ebx
jl 0x1007b840
test ecx, ecx
je 0x1007b88a
cmp ecx, ebx
je 0x1007b88a
mov ecx, dword [esp + 0x38]
movzx eax, word [ecx + edx*2]
movzx ecx, word [ecx + edx*2 - 2]
mov dword [esp + 0x18], eax
sub eax, ecx
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fsub st(1)
fidiv dword [esp + 0x18]
jmp 0x1007b88c
fld st(1)
mov eax, dword [esp + 0x30]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
add ebp, ebx
fld st(0)
fsubr st(5)
fmul dword [eax + edx*4]
fld dword [eax + edx*4 - 4]
mov eax, dword [esp + 0x4c]
fmulp st(2)
add eax, 4
mov dword [esp + 0x4c], eax
faddp st(1)
fstp dword [eax - 4]
lea eax, [ebx + ebx]
add dword [esp + 0x40], eax
sub dword [esp + 0x44], 1
jne 0x1007b834
fld dword [esp + 0x24]
movzx edx, word [esi + 0xb0]
add edx, dword [esp + 0x14]
fld st(0)
fsubr st(5)
fmul dword [esp + 0x1c]
mov dword [esp + 0x18], edx
fld dword [esp + 0x20]
fmulp st(2)
faddp st(1)
fild dword [esp + 0x18]
test edx, edx
jge 0x1007b8fa
fadd dword [0x1023ab98]
fmulp st(1)
faddp st(1)
fmul st(4)
call fcn.10153880
cmp eax, 0xffff
jge 0x1007b918
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and eax, ecx
jmp 0x1007b91d
mov eax, 0xffff
mov edx, dword [esp + 0x28]
mov word [edx], ax
mov eax, dword [esp + 0x2c]
movzx ecx, word [esi + 0xae]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, ecx
jb 0x1007b769
mov eax, dword [esp + 0x14]
movzx edx, word [esi + 0xac]
inc eax
mov dword [esp + 0x14], eax
cmp eax, edx
jb 0x1007b73c
fstp st(2)
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.10072be0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret