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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x188
cmp byte [0x62356c], 0
jne 0x416614
mov byte [0x62356c], 1
mov dword [0x623568], 0
movzx ebx, byte [0x95cd61]
movzx eax, byte [0x95cd61]
imul ebx, ebx, 0x13c
push eax
add ebx, 0x9412f0
call fcn.004a1170
fld dword [eax]
fstp dword [esp + 0x134]
fld dword [eax + 4]
fstp dword [esp + 0x138]
fld dword [eax + 8]
pop ecx
fstp dword [esp + 0x138]
call fcn.004a1090
fld dword [eax]
lea edi, [esp + 0xf4]
fstp dword [esp + 0x70]
fld dword [eax + 4]
lea eax, [esp + 0x130]
push edi
push eax
fstp dword [esp + 0x7c]
call fcn.004b6fb0
mov eax, dword [esp + 0xfc]
pop ecx
and eax, 0xffff
pop ecx
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [ebx + 0x100]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x88]
mov eax, dword [esp + 0x88]
fldcw word [esp + 0x1c]
mov word [ebx + 0xfc], ax
mov ax, word [ebx + 0xfc]
and eax, 0xffff
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec8b4]
fmul dword [0x6182f8]
fild dword [0x943118]
fcompp
fnstsw ax
test ah, 5
jne 0x416710
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [0x943118]
add eax, dword [0x8f1b38]
add eax, dword [0x8f1b54]
add eax, dword [0x8f29e0]
add eax, dword [0x885bb0]
add eax, dword [0x9411f0]
cmp eax, dword [0x5ec8b8]
jl 0x416746
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
movzx edx, byte [0x95cd61]
imul edx, edx, 0x4f
mov eax, dword [edx*4 + 0x9412f0]
mov edi, dword [eax + 0x53c]
mov ebx, dword [edi + 0x18]
mov eax, ebx
cmp eax, 1
jle 0x4167c3
movzx eax, byte [edi + 0x12]
cmp dword [0x8f1b38], eax
jge 0x4167c3
mov al, byte [edi + 0x11]
mov cl, byte [edi + 0x10]
cmp cl, al
jae 0x4167c3
mov eax, ebx
cmp eax, 3
jg 0x4167ad
cmp ebx, 2
jle 0x41679b
mov eax, dword [0x8f5ff0]
add eax, 0x1388
cmp dword [0x885b48], eax
ja 0x4167ad
mov eax, dword [0x8f5ff0]
add eax, 0x1f40
cmp dword [0x885b48], eax
jbe 0x4167c3
call fcn.004181f0
mov dword [esp + 0xa0], 0x11
mov dword [esp + 0x10], eax
jmp 0x416820
lea eax, [esp + 0xa0]
lea ebp, [esp + 0x130]
push eax
lea eax, [esp + 0xf8]
push ebp
push eax
call fcn.00417ec0
add esp, 0xc
cmp dword [esp + 0xa0], 0x11
mov dword [esp + 0x10], eax
jne 0x416820
movzx edx, byte [0x95cd61]
imul edx, edx, 0x4f
mov edi, dword [edx*4 + 0x9412f0]
mov eax, dword [edi + 0x53c]
mov ecx, dword [eax + 0x18]
cmp ecx, 1
jl 0x416820
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
mov dword [esp + 0x18], 0x6facfc
mov eax, dword [esp + 0x18]
add eax, 0x10
fld dword [eax + 8]
fcomp dword [0x5ec8bc]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x416872
fld dword [0x5ec8c0]
fstp dword [esp + 0x3c]
fld dword [0x5ec8c4]
fstp dword [esp + 0x40]
fld dword [0x5ec8c8]
mov eax, dword [esp + 0x3c]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
mov dword [esp + 0x38], eax
jmp 0x416ad9
call fcn.004a10c0
test eax, eax
fldz
fldz
fldz
je 0x416a67
fld dword [eax + 0x78]
fstp st(3)
fld dword [eax + 0x7c]
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fst st(1)
fcomp dword [0x5ec8cc]
fnstsw ax
test ah, 0x45
jne 0x416950
fld st(2)
fdiv st(1)
fstp dword [esp + 0x38]
fld st(1)
fdiv st(1)
mov eax, dword [0x9412ec]
mov byte [esp + 0x14], 0
and eax, 3
cmp eax, 3
fstp dword [esp + 0x3c]
ja case.default.0x4168e2
jmp dword [eax*4 + 0x5ecb40]
fld dword [0x5ec8d0]
fstp dword [esp + 0x40]
fld dword [0x5ec8d4]
fmul dword [0x6fade8]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
jmp 0x417d62
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8d4]
fmul dword [0x6fade8]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
jmp 0x417d70
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8c8]
fstp dword [esp + 0x44]
mov byte [esp + 4], 0
jmp 0x417d80
fcom dword [0x5ec8d8]
fnstsw ax
test ah, 0x45
jne 0x4169f4
fld st(2)
fdiv st(1)
fstp dword [esp + 0x38]
fld st(1)
fdiv st(1)
mov eax, dword [0x9412ec]
mov byte [esp + 0x14], 0
and eax, 3
cmp eax, 3
fstp dword [esp + 0x3c]
ja case.default.0x416987
jmp dword [eax*4 + 0x5ecb30]
fld dword [0x5ec8d0]
fstp dword [esp + 0x40]
fld dword [0x5ec8d4]
fmul dword [0x6fade8]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
jmp 0x417da2
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8d4]
fmul dword [0x6fade8]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
jmp 0x417db0
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8c8]
fstp dword [esp + 0x44]
mov byte [esp + 4], 0
jmp 0x417dc0
mov eax, dword [0x9412ec]
mov byte [esp + 0x14], 1
fld dword [0x6fadc8]
and eax, 1
fstp dword [esp + 0x38]
fld dword [0x6fadcc]
cmp eax, 1
fstp dword [esp + 0x3c]
ja case.default.0x416a1e
jmp dword [eax*4 + 0x5ecb28]
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8d4]
fmul dword [0x6fade8]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
jmp 0x417de2
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8c8]
fstp dword [esp + 0x44]
mov byte [esp + 4], 0
jmp 0x417df0
mov eax, dword [0x9412ec]
mov byte [esp + 0x14], 1
fld dword [0x6fadc8]
and eax, 1
fstp dword [esp + 0x38]
fld dword [0x6fadcc]
cmp eax, 1
fstp dword [esp + 0x3c]
ja case.default.0x416a91
jmp dword [eax*4 + 0x5ecb20]
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8d4]
fmul dword [0x6fade8]
mov byte [esp + 4], 1
fstp dword [esp + 0x44]
jmp 0x417e12
fld dword [0x5ec8c0]
fstp dword [esp + 0x40]
fld dword [0x5ec8c8]
fstp dword [esp + 0x44]
fcompp
fstp st(0)
mov byte [esp + 4], 0
xor al, al
cmp dword [esp + 0xa0], 0x11
jne 0x416b06
movzx ebx, byte [0x95cd61]
imul ebx, ebx, 0x4f
mov edx, dword [ebx*4 + 0x9412f0]
mov ecx, dword [edx + 0x53c]
mov edi, dword [ecx + 0x18]
cmp edi, 1
jl 0x416b06
mov al, 1
lea ebp, [esp + 0x94]
push eax
lea eax, [esp + 0xa0]
push ebp
lea edi, [esp + 0xa0]
push eax
lea eax, [esp + 0xb0]
push edi
mov ecx, 0x8f6754
push eax
push dword [esp + 0x18]
push dword [esp + 0x58]
push dword [esp + 0x60]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x15c]
push dword [esp + 0x15c]
call fcn.0042bf10
test al, al
je 0x417d3e
lea eax, [esp + 0x13e]
push 0
push 0
push 1
push 1
push 0
push 0
push 2
push eax
lea eax, [esp + 0xc4]
push 1
push dword [0x5ec8dc]
push eax
call fcn.004b2a30
add esp, 0x2c
cmp word [esp + 0x13e], 0
jne 0x417d3e
mov ecx, 0x8f6754
push dword [esp + 0x138]
push dword [esp + 0x138]
push dword [esp + 0x138]
push 0
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
call fcn.0042c8c0
test al, al
je 0x417d3e
mov ebx, dword [esp + 0x98]
xor eax, eax
shl ebx, 5
movsx edx, byte [ebx + 0x8f676e]
mov ecx, ebx
jmp 0x416bf1
inc eax
movsx ebp, ax
cmp ebp, edx
jge 0x416c12
movsx edi, word [ecx + 0x8f676c]
add edi, ebp
movsx edi, word [edi*2 + 0x92aa9e]
cmp edi, dword [esp + 0x9c]
jne 0x416bf0
movsx edx, word [ebx + 0x8f676c]
add edx, ebp
movsx eax, word [edx*2 + 0x937302]
mov edi, eax
mov dword [esp + 0xc], eax
lea edi, [edi*8]
lea edi, [edi + edi*2]
movsx eax, word [edi + 0x91cfa4]
cmp eax, dword [esp + 0x9c]
jne 0x416c50
movsx eax, byte [edi + 0x91cfa6]
jmp 0x416c57
movsx eax, byte [edi + 0x91cfa7]
mov dword [esp + 8], eax
cmp word [esp + 8], 0
je 0x417d3e
mov eax, dword [esp + 0x10]
mov eax, dword [eax*4 + 0x83d408]
mov ecx, dword [eax + 0x58]
cmp ecx, 5
jne 0x416c85
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
push 0x5a8
call fcn.00551120
mov ebp, eax
pop ecx
test ebp, ebp
je 0x416ca5
mov ecx, ebp
push 1
push dword [esp + 0x14]
call fcn.0052c6b0
mov ebp, eax
mov ebx, ebp
mov dword [ebx + 0x134], 0
mov eax, dword [esp + 0x98]
mov dword [ebx + 0x12c], eax
mov eax, dword [esp + 0x9c]
mov dword [ebx + 0x130], eax
mov edx, dword [esp + 0xa0]
mov eax, edx
cmp eax, 0x11
ja case.0x416cdd.7
jmp dword [eax*4 + 0x5ecad8]
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec8e0]
fmul dword [0x5ec8e4]
fadd dword [0x5ec8e8]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x88]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x88]
mov byte [ebx + 0x164], al
cmp dword [esp + 0xa0], 2
jne 0x416d71
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec8e0]
fmul dword [0x5ec8ec]
fadd dword [0x5ec8f0]
jmp 0x416daf
cmp dword [esp + 0xa0], 0
je 0x416d85
cmp dword [esp + 0xa0], 4
jne 0x416ddc
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec8e0]
fmul dword [0x5ec8f4]
fadd dword [0x5ec8f8]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x88]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x88]
mov byte [ebx + 0x164], al
movsx edx, word [ebx + 0x5c]
mov eax, dword [edx*4 + 0x83d408]
mov ecx, dword [eax + 0x1c]
fld dword [ecx + 0x24]
mov edi, ecx
fsub dword [edi + 0x18]
fcomp dword [0x5ec8dc]
fnstsw ax
test ah, 0x45
je 0x416e09
cmp dword [esp + 0xa0], 5
jne 0x416e22
movsx eax, byte [ebp + 0x164]
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov byte [ebx + 0x164], al
movsx eax, byte [ebx + 0x164]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fstp dword [ebx + 0x160]
mov byte [ebx + 0x15a], 1
mov byte [ebx + 0x15b], 0
mov byte [ebx + 0x159], 0
jmp case.0x416cdd.7
mov byte [ebx + 0x15b], 0
movzx ecx, byte [0x95cd61]
imul ecx, ecx, 0x4f
mov edx, dword [ecx*4 + 0x9412f0]
mov eax, dword [edx + 0x53c]
cmp dword [eax + 0x18], 0
jne 0x416f01
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec8e0]
fmul dword [0x5ec8fc]
fadd dword [0x5ec8f0]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x88]
mov eax, dword [esp + 0x88]
fldcw word [esp + 0x1c]
mov byte [ebx + 0x164], al
movsx eax, byte [ebx + 0x164]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fstp dword [ebx + 0x160]
mov byte [ebx + 0x159], 0
mov byte [ebx + 0x15a], 1
jmp 0x416f45
push ebp
call fcn.00415eb0
mov byte [ebx + 0x164], al
pop ecx
movsx eax, byte [ebx + 0x164]
cmp eax, 0x80000000
sbb eax, 0xffffffff
sar eax, 1
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fstp dword [ebx + 0x160]
call fcn.00415e30
mov byte [ebx + 0x15a], al
mov byte [ebx + 0x159], 2
cmp dword [esp + 0x10], 0x6b
jne case.0x416cdd.7
mov byte [ebp + 0x19c], 0
mov byte [ebp + 0x19d], 0
test ebp, ebp
je 0x416f6e
movsx eax, word [ebp + 0x5c]
cmp eax, 0x71
jne 0x416f6e
mov byte [ebp + 0x22e], 1
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x144], eax
call fcn.005a41d0
movzx eax, ax
movsx ecx, word [esp + 8]
fldz
cdq
fldz
idiv ecx
mov byte [ebx + 0x157], dl
mov al, byte [ebx + 0x157]
mov byte [ebx + 0x158], al
movsx ecx, word [ebx + 0x5c]
mov eax, dword [ecx*4 + 0x83d408]
mov ecx, dword [esp + 0x9c]
mov edx, dword [eax + 0x1c]
shl ecx, 5
fld dword [edx + 0x24]
mov edi, edx
mov edx, dword [esp + 0x98]
fsub dword [edi + 0x18]
shl edx, 5
fstp st(2)
fld dword [0x5ec900]
fmul st(2)
fadd dword [0x5ec904]
fstp st(1)
fld dword [edx + 0x8f6758]
fsub dword [ecx + 0x8f6758]
fstp st(2)
fld st(1)
fmul st(0)
fld dword [edx + 0x8f6754]
fsub dword [ecx + 0x8f6754]
fstp st(3)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp st(2)
fld dword [0x5ec900]
fmul st(2)
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x417033
mov dword [esp + 0x94], 0x3f000000
jmp 0x41708d
fld st(0)
fdiv st(2)
fstp st(1)
fld dword [esp + 0x94]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x417052
fld dword [esp + 0x94]
jmp 0x417054
fld st(0)
fstp st(2)
fld st(1)
fstp dword [esp + 0x94]
fld dword [0x5ec904]
fsub st(1)
fstp st(1)
fld st(1)
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x417080
fld st(1)
jmp 0x417082
fld st(0)
fstp st(2)
fld st(1)
fstp dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
cmp edx, eax
jge 0x4170a8
mov byte [ebx + 0x156], 0xff
jmp 0x4170af
mov byte [ebx + 0x156], 1
mov eax, dword [esp + 0x98]
shl eax, 5
cmp byte [eax + 0x8f676e], 1
jne 0x4170e0
test ebx, ebx
je 0x417e20
fcompp
mov ecx, ebx
mov esi, dword [ecx]
push 1
call dword [esi]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
mov ax, word [ebx + 0x144]
jmp 0x417e27
fcompp
fcompp
call fcn.005a41d0
movzx eax, ax
mov edi, dword [esp + 0x98]
shl edi, 5
movsx ecx, byte [edi + 0x8f676e]
cdq
fldz
fldz
idiv ecx
fldz
mov esi, edx
movsx edx, word [edi + 0x8f676c]
movsx eax, si
add edx, eax
fldz
mov ax, word [edx*2 + 0x937302]
movsx edi, ax
cmp edi, dword [ebx + 0x144]
je 0x4170f0
mov dword [ebx + 0x140], edi
mov eax, dword [esp + 0x98]
shl eax, 5
movsx ecx, word [eax + 0x8f676c]
movsx edx, si
add ecx, edx
movsx eax, word [ecx*2 + 0x92aa9e]
cmp eax, dword [esp + 0x98]
jge 0x417170
mov byte [ebx + 0x155], 0xff
jmp 0x417177
mov byte [ebx + 0x155], 1
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x98]
shl eax, 5
shl edi, 5
add edi, 0x8f6754
add eax, 0x8f6754
fld dword [eax + 4]
fsub dword [edi + 4]
fstp st(3)
fld dword [eax]
fsub dword [edi]
fstp st(4)
fld st(3)
fstp st(2)
fld st(2)
fstp st(1)
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp st(4)
fld dword [0x5ec908]
fcomp st(4)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x4171e4
fld dword [0x5ec904]
fstp st(2)
jmp 0x4171ea
fld st(3)
fdivp st(2)
fdiv st(3)
fld st(1)
mov eax, 4
mov edi, 0x8f6754
fstp dword [ebx + 0x14]
fst dword [ebx + 0x18]
mov dword [ebx + 0x1c], 0
add eax, ebx
fst dword [ebx + 4]
fld st(1)
fchs
fstp dword [eax + 4]
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0x3f800000
mov al, byte [ebx + 0x155]
movsx ecx, al
movsx edx, al
mov dword [esp + 0x88], ecx
mov esi, dword [ebx + 0x140]
fild dword [esp + 0x88]
lea esi, [esi*8]
lea esi, [esi + esi*2]
mov dword [esp + 0x88], edx
fmul dword [esi + 0x91cf9c]
add edi, esi
add edi, 0x26840
fstp dword [esp + 0x24]
fild dword [esp + 0x88]
fmul dword [esi + 0x91cfa0]
fstp dword [esp + 0x28]
mov al, byte [ebx + 0x156]
movsx ecx, al
movsx edx, al
mov dword [esp + 0x88], ecx
mov ecx, dword [ebx + 0x144]
fild dword [esp + 0x88]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x88], edx
fmul dword [ecx + 0x91cf9c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x88]
fmul dword [ecx + 0x91cfa0]
fstp dword [esp + 0x30]
mov al, byte [edi + 0x12]
test al, al
jne 0x4172f4
movsx eax, byte [edi + 0x13]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
fstp st(4)
jmp 0x417328
cmp byte [edi + 0x13], 0
jne 0x417320
movsx edx, al
mov dword [esp + 0x88], edx
fild dword [esp + 0x88]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
jmp 0x417326
fld dword [0x5ec900]
fstp st(4)
movsx eax, byte [ebx + 0x157]
mov esi, 0x8f6754
add esi, ecx
mov dword [esp + 0x88], eax
add esi, 0x26840
fild dword [esp + 0x88]
mov al, byte [esi + 0x12]
test al, al
fadd st(4)
fmul dword [0x5ec8e4]
fstp st(4)
jne 0x417380
movsx eax, byte [esi + 0x13]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
fstp st(3)
jmp 0x4173ad
cmp byte [esi + 0x13], 0
jne 0x4173a5
movsx edx, al
mov dword [esp + 0x88], edx
fild dword [esp + 0x88]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
jmp 0x4173ab
fld dword [0x5ec900]
fstp st(3)
movsx eax, byte [ebx + 0x158]
mov dword [esp + 0x154], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fadd st(3)
fmul dword [0x5ec8e4]
fstp st(3)
fld dword [esp + 0x2c]
fmul st(3)
fstp dword [esp + 0x78]
fld dword [ecx + 0x91cf98]
fsub dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x30]
fmul st(3)
fstp dword [esp + 0x7c]
fld dword [ecx + 0x91cf94]
fadd dword [esp + 0x7c]
fstp dword [esp + 0x14c]
fld st(1)
fstp dword [esp + 0x150]
fld dword [esp + 0x24]
fmul st(4)
fstp dword [esp + 0x80]
mov edi, dword [ebx + 0x140]
lea edi, [edi*8]
lea edi, [edi + edi*2]
fld dword [edi + 0x91cf98]
fsub dword [esp + 0x80]
fstp st(3)
fld dword [esp + 0x28]
fmul st(4)
fstp dword [esp + 0x84]
fld dword [edi + 0x91cf94]
fadd dword [esp + 0x84]
fstp dword [esp + 0x140]
fld st(2)
fstp dword [esp + 0x144]
mov dl, byte [ebx + 0x156]
movsx eax, dl
mov dword [esp + 0x88], eax
mov esi, dword [ebx + 0x144]
fild dword [esp + 0x88]
lea esi, [esi*8]
push eax
lea esi, [esi + esi*2]
fmul dword [esi + 0x91cfa0]
movsx eax, dl
fstp dword [esp]
mov dword [esp + 0x8c], eax
push eax
fild dword [esp + 0x90]
fmul dword [esi + 0x91cf9c]
fstp dword [esp]
mov cl, byte [ebx + 0x155]
movsx eax, cl
mov dword [esp + 0x90], eax
mov edi, dword [ebx + 0x140]
fild dword [esp + 0x90]
lea edi, [edi*8]
push eax
lea edi, [edi + edi*2]
fmul dword [edi + 0x91cfa0]
movsx eax, cl
fstp dword [esp]
mov dword [esp + 0x94], eax
push eax
fild dword [esp + 0x98]
fmul dword [edi + 0x91cf9c]
fstp dword [esp]
fcompp
fcompp
lea eax, [esp + 0x150]
lea esi, [esp + 0x15c]
push esi
push eax
call fcn.00420410
fld dword [0x5ec90c]
fdiv dword [ebx + 0x160]
add esp, 0x18
fmulp st(1)
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x88]
mov eax, dword [esp + 0x88]
fldcw word [esp + 0x1c]
mov dword [ebx + 0x13c], eax
mov eax, dword [0x885b48]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], eax
fild qword [esp + 0x88]
fld dword [0x5ec900]
fadd dword [esp + 0x94]
fimul dword [ebx + 0x13c]
fsubp st(1)
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x88]
mov eax, dword [esp + 0x88]
fldcw word [esp + 0x1c]
mov dword [ebx + 0x138], eax
mov ecx, dword [0x885b48]
sub ecx, dword [ebx + 0x138]
mov edx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 0
fild qword [esp + 0x88]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x28]
fidiv dword [ebx + 0x13c]
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], edx
mov dword [esp + 0x174], eax
mov dword [esp + 0x184], 0
mov dword [esp + 0x170], esi
mov dword [esp + 0x16c], 0
lea esi, [esp + 0xa4]
mov dword [esp + 0x160], 0
lea edx, [esp + 0x17c]
fstp dword [esp + 0x20]
mov eax, dword [ebx + 0x144]
lea eax, [eax*8]
lea eax, [eax + eax*2]
fld dword [eax + 0x91cf98]
fsub dword [esp + 0x78]
fstp dword [esp + 0x4c]
fld dword [eax + 0x91cf94]
fadd dword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x168], eax
fstp dword [esp + 0x164]
mov eax, dword [ebx + 0x140]
lea ecx, [esp + 0x164]
lea eax, [eax*8]
lea eax, [eax + eax*2]
fld dword [eax + 0x91cf98]
fsub dword [esp + 0x80]
fstp dword [esp + 0x48]
fld dword [eax + 0x91cf94]
fadd dword [esp + 0x84]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0xbc]
push eax
push esi
fstp dword [esp + 0x160]
mov eax, dword [ebx + 0x13c]
push eax
lea eax, [esp + 0x17c]
push dword [esp + 0x2c]
push edx
push eax
lea eax, [esp + 0x170]
push ecx
push eax
call fcn.004204d0
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0xbc]
shl eax, 5
shl edi, 5
add edi, 0x8f6754
add esp, 0x20
add eax, 0x8f6754
fldz
fldz
fldz
fldz
fld dword [eax + 8]
fsub dword [edi + 8]
fstp st(2)
fld dword [eax + 4]
fsub dword [edi + 4]
fstp st(3)
fld dword [eax]
fsub dword [edi]
fstp st(4)
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp st(1)
fld dword [0x5ec910]
fdiv st(1)
fst st(1)
fmul st(2)
fstp st(2)
fld st(0)
fmul st(4)
fadd dword [esp + 0xa4]
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
shl esi, 5
shl eax, 5
fstp dword [esp + 0xb0]
fld st(0)
fmul st(3)
fadd dword [esp + 0xa8]
lea ecx, [esp + 0xf0]
push 0
fstp dword [esp + 0xb8]
fld dword [esp + 0xb0]
fadd st(2)
fstp dword [esp + 0xbc]
fld dword [esp + 0x98]
fmul dword [esi + 0x8f675c]
fld dword [0x5ec904]
fsub dword [esp + 0x98]
push 0
push 1
fmul dword [eax + 0x8f675c]
lea eax, [esp + 0xd4]
push 0
faddp st(1)
fstp dword [esp + 0xc8]
fld dword [0x5ec914]
fstp dword [esp + 0x44]
fcompp
fcompp
push 0
push 0
push 1
push ecx
push eax
lea eax, [esp + 0xd4]
push dword [0x5ec90c]
push eax
call fcn.004b0de0
add esp, 0x2c
test al, al
je 0x41783d
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x34], eax
lea eax, [esp + 0xc8]
lea edx, [esp + 0xf0]
push 0
push 0
push 1
push 0
push 0
push 0
push 1
push edx
push eax
lea eax, [esp + 0xd4]
push dword [0x5ec918]
push eax
call fcn.004b0de0
add esp, 0x2c
test al, al
fldz
fldz
fldz
je 0x4178ea
fld dword [esp + 0xd0]
fstp st(1)
fld dword [esp + 0xb8]
fstp st(2)
fld st(0)
fsub st(2)
fstp st(3)
fld st(2)
fcomp dword [0x5ec908]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4178b0
fld st(2)
fchs
jmp 0x4178b2
fld st(2)
fstp st(3)
fld dword [esp + 0x34]
fsub st(2)
fstp st(2)
fld st(1)
fcomp dword [0x5ec908]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4178d4
fld st(1)
fchs
jmp 0x4178d6
fld st(1)
fstp st(2)
fld st(2)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4178ea
fst dword [esp + 0x34]
fld dword [0x5ec914]
fcomp dword [esp + 0x34]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x417936
fld dword [esp + 0x34]
fsub dword [esp + 0xb8]
fstp st(3)
fld st(2)
fcomp dword [0x5ec908]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x417923
fld st(2)
fchs
jmp 0x417925
fld st(2)
fstp st(3)
fld st(2)
fcomp dword [0x5ec8f8]
fnstsw ax
test ah, 0x45
jne 0x417955
test ebx, ebx
je 0x417e30
fcompp
mov ecx, ebx
mov ebx, dword [ecx]
push 1
fstp st(0)
call dword [ebx]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
mov ecx, ebx
mov esi, dword [ecx]
fstp st(0)
call dword [esi + 0x84]
fadd dword [esp + 0x34]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x50], eax
fstp dword [esp + 0xb8]
fld dword [esp + 0xb0]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x54], esi
fstp dword [ebx + 0x34]
fld dword [esp + 0x50]
fstp dword [ebx + 0x38]
fld dword [esp + 0x54]
fstp dword [ebx + 0x3c]
fld dword [0x5ec91c]
fmul dword [esp + 0xc4]
fstp dword [esp + 0x6c]
fld dword [0x5ec91c]
fmul dword [esp + 0xc0]
fstp dword [esp + 0x68]
fld dword [0x5ec91c]
fmul dword [esp + 0xbc]
fstp dword [ebx + 0x78]
fld dword [esp + 0x68]
fstp dword [ebx + 0x7c]
fld dword [esp + 0x6c]
fstp dword [ebx + 0x80]
fld dword [0x5ec91c]
fmul dword [esp + 0xc0]
mov edx, dword [esp + 0xa0]
mov eax, edx
fsub dword [esp + 0x74]
cmp eax, 0x11
fstp dword [esp + 0x5c]
fld dword [0x5ec91c]
fmul dword [esp + 0xbc]
fsub dword [esp + 0x70]
fstp dword [esp + 0x58]
fld dword [esp + 0xa8]
fsub dword [esp + 0x134]
fstp dword [esp + 0x64]
fld dword [esp + 0xa4]
fsub dword [esp + 0x130]
fstp dword [esp + 0x60]
ja case.0x417a3b.7
jmp dword [eax*4 + 0x5eca90]
mov al, byte [ebx + 0x50]
and al, 7
or al, 0x10
mov byte [ebx + 0x50], al
jmp case.0x417a3b.7
cmp byte [ebx + 0x15a], 1
jne 0x417a60
mov al, byte [ebx + 0x50]
and al, 7
or al, 0x10
jmp 0x417a67
mov al, byte [ebx + 0x50]
and al, 7
or al, 0x18
mov byte [ebx + 0x50], al
mov ecx, ebx
push 1
call fcn.00552820
mov eax, dword [ebx + 0x4c]
push 0
push eax
call fcn.00528f50
pop ecx
pop ecx
mov ecx, ebx
call fcn.00474cc0
test al, al
fldz
fldz
je 0x417b82
lea edi, [ebx + 0x34]
fld dword [esp + 0x134]
mov eax, edi
fsub dword [eax + 4]
fstp st(1)
fld dword [esp + 0x130]
fsub dword [eax]
fstp st(2)
fld st(0)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp st(2)
fld dword [0x6fade8]
fstp st(1)
fld dword [0x5ec920]
fmul st(1)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
je 0x417af8
fld dword [0x5ec924]
fmul st(1)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x417b15
test ebx, ebx
je 0x417e40
fcompp
mov ecx, ebx
mov ebx, dword [ecx]
push 1
call dword [ebx]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
add dword [esp + 0x18], 0x30
mov eax, dword [esp + 0x18]
fld dword [eax + 4]
fsub dword [edi + 4]
mov eax, dword [esp + 0x18]
fstp st(1)
fld dword [eax]
fsub dword [edi]
fstp st(2)
fld st(0)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp st(2)
fld dword [0x5ec928]
fmul dword [0x6fade8]
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x417be4
test ebx, ebx
je 0x417e47
fcompp
mov ecx, ebx
mov esi, dword [ecx]
push 1
call dword [esi]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [esp + 0x134]
lea eax, [ebx + 0x34]
fsub dword [eax + 4]
fstp st(1)
fld dword [esp + 0x130]
fsub dword [eax]
fstp st(2)
fld st(0)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fstp st(2)
fld st(1)
fcomp dword [0x5ec92c]
fnstsw ax
test ah, 0x45
jne 0x417be4
test ebx, ebx
je 0x417e50
fcompp
mov ecx, ebx
mov ebx, dword [ecx]
push 1
call dword [ebx]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
cmp byte [esp + 0x14], 0
je 0x417e57
movsx esi, word [ebx + 0x5c]
lea eax, [esp + 0x13e]
fld dword [0x5ec930]
mov edx, dword [esi*4 + 0x83d408]
push 0
push 0
push 0
push 1
push 0
push 0
push 2
push eax
mov eax, dword [edx + 0x1c]
fadd dword [eax + 0xc]
push 1
push eax
fstp dword [esp]
fcompp
lea eax, [ebx + 0x34]
push eax
call fcn.004b2a30
add esp, 0x2c
cmp word [esp + 0x13e], 0
je 0x417c52
test ebx, ebx
je 0x417c47
mov ecx, ebx
mov ebx, dword [ecx]
push 1
call dword [ebx]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
movsx ecx, word [ebx + 0x5c]
lea eax, [esp + 0x13e]
push 0
push 0
push 1
push 1
push 0
push 0
push 2
push eax
mov eax, dword [ecx*4 + 0x83d408]
mov esi, dword [eax + 0x1c]
lea eax, [ebx + 0x34]
push 1
push dword [esi + 0xc]
push eax
call fcn.004b2a30
add esp, 0x2c
cmp word [esp + 0x13e], 0
jne 0x417d32
fld dword [esp + 0x5c]
fmul dword [esp + 0x64]
fld dword [esp + 0x58]
fmul dword [esp + 0x60]
faddp st(1)
fcomp dword [0x5ec908]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x417d32
lea eax, [ebx + 0x19d]
lea edx, [ebx + 0x19c]
push eax
push edx
movsx eax, word [ebx + 0x5c]
mov ecx, dword [eax*4 + 0x83d408]
call fcn.005210a0
push ebx
call fcn.004ae930
cmp dword [esp + 0xa4], 0x11
pop ecx
jne 0x417cf0
push ebp
call fcn.00415c60
pop ecx
jmp 0x417cf7
mov ecx, ebx
call fcn.005520c0
call fcn.005a41d0
movzx eax, ax
and eax, 0x3f
jne 0x417d1c
mov al, byte [ebx + 0x50]
and al, 7
or al, 0x18
mov byte [ebx + 0x50], al
mov byte [ebx + 0x159], 2
add byte [ebx + 0x164], 0xa
cmp dword [esp + 0xa0], 0x11
jne 0x417d3e
mov eax, dword [0x885b48]
mov dword [0x8f5ff0], eax
jmp 0x417d3e
test ebx, ebx
je 0x417d3e
mov ecx, ebx
mov ebx, dword [ecx]
push 1
call dword [ebx]
add esp, 0x188
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
fstp st(0)
jmp 0x416ad9
fcompp
jmp 0x4170d4
fldz
fldz
jmp 0x41712e
fcompp
fstp st(0)
jmp 0x41794a
fcompp
jmp 0x417b0a
fcompp
jmp 0x417b77
fcompp
jmp 0x417bd9
fcompp
jmp 0x417c52