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

Disassembly:
sub esp, 0x138
mov eax, dword [0x101e25f0]
mov ecx, dword [eax + 0x1994]
mov byte [ecx + 0x7c], 1
push edi
mov edi, dword [eax + 0x1994]
cmp byte [edi + 0x7f], 0
mov dword [esp + 0xa0], edi
je 0x10064553
xor al, al
pop edi
add esp, 0x138
ret
mov eax, dword [esp + 0x150]
mov edx, eax
shr edx, 0xe
not dl
and dl, 1
mov byte [esp + 5], dl
push ebx
mov edx, eax
mov ecx, eax
mov ebx, eax
shr edx, 0x10
shr ecx, 0x14
shr ebx, 0xf
shr eax, 0x12
and cl, 1
not dl
push ebp
mov ebp, dword [0x101e25f0]
and bl, 1
and dl, 1
and al, 1
test cl, cl
mov dword [esp + 0x2c], ebp
mov byte [esp + 0xc], cl
mov byte [esp + 0x43], bl
mov byte [esp + 0x22], dl
mov byte [esp + 0x52], al
je 0x100645ac
call fcn.10047ab0
push esi
mov esi, dword [esp + 0x14c]
push 0
push esi
mov ecx, edi
call fcn.10040e10
fld dword [0x1019cf4c]
push ecx
fstp dword [esp]
push 1
push 0
lea edx, [esp + 0x104]
push esi
push edx
mov dword [esp + 0x64], eax
call fcn.1003b8f0
add esp, 0x14
cmp byte [esp + 0x10], 0
je 0x100645f5
call fcn.1003d000
fmul qword [0x101a0bf0]
jmp 0x100645fc
fld dword [esp + 0xfc]
fld dword [ebp + 0x1548]
push ecx
fadd st(0), st(0)
faddp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.1004d340
mov eax, dword [esp + 0x15c]
mov edx, dword [eax]
push ecx
mov ecx, dword [eax + 4]
fstp dword [esp]
push ecx
push edx
lea eax, [esp + 0xb4]
push eax
call fcn.1004a0d0
fld dword [esp + 0xb8]
fadd dword [edi + 0xc8]
mov ecx, dword [edi + 0xc8]
add esp, 0x14
fstp dword [esp + 0x74]
mov eax, dword [esp + 0x74]
fld dword [edi + 0xcc]
mov dword [esp + 0x8c], ecx
fadd dword [esp + 0xa8]
mov edx, dword [edi + 0xcc]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], edx
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
fldz
mov dword [esp + 0x98], eax
fld dword [esp + 0xf8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
fldz
jne 0x100646ab
fld dword [ebp + 0x155c]
faddp st(2)
jmp 0x100646b1
fstp st(1)
fld st(0)
fxch st(1)
cmp byte [esp + 0x10], 0
fxch st(1)
fstp dword [esp + 0x3c]
mov dword [esp + 0x128], ecx
fld dword [esp + 0x3c]
mov dword [esp + 0x12c], edx
fadd dword [esp + 0x74]
mov dword [esp + 0x4c], edi
fstp dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x130], ecx
fadd dword [esp + 0x78]
fstp dword [esp + 0x64]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x134], edx
je 0x1006479f
mov esi, dword [esp + 0x50]
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x12c]
push esi
push ecx
call fcn.10046960
fld dword [esp + 0xa0]
fsub dword [esp + 0x98]
push 0
lea edx, [esp + 0x4c]
push edx
fstp dword [esp + 0x50]
push esi
fld dword [esp + 0xb0]
fsub dword [esp + 0xa8]
fstp dword [esp + 0x58]
call fcn.1004ecf0
add esp, 0x18
test al, al
jne 0x10064767
call fcn.1004ed70
call fcn.10047c00
pop esi
pop ebp
pop ebx
xor al, al
pop edi
add esp, 0x138
ret
mov eax, dword [0x101e25f0]
mov ecx, dword [eax + 0x1994]
mov byte [ecx + 0x7c], 1
mov eax, dword [eax + 0x1994]
mov edx, dword [eax + 0x138]
or dword [eax + 0x140], edx
fld dword [esp + 0xa4]
fsub dword [eax + 0x70]
mov dword [esp + 0x4c], eax
fstp dword [esp + 0xa4]
jmp 0x100647d7
fld dword [ebp + 0x1548]
push ecx
lea eax, [esp + 0x12c]
fstp dword [esp]
push eax
call fcn.10041120
mov esi, dword [esp + 0x58]
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x134]
push esi
push edx
call fcn.10046960
add esp, 0x14
test al, al
je 0x1006475a
lea eax, [esp + 0x8c]
push esi
push eax
call fcn.100411f0
add esp, 8
test al, al
mov byte [esp + 0x16], al
je 0x100647fa
mov dword [ebp + 0x1c50], 1
test bl, bl
je 0x1006486f
mov ecx, dword [ebp + 0x18b0]
push 0x2a
call fcn.10074eb0
mov edx, dword [ebp + 0x18b0]
fld dword [edx]
lea ecx, [ebp + 0x2b7c]
fstp dword [ecx]
mov edx, dword [ebp + 0x18b0]
fld dword [edx + 4]
push ecx
fstp dword [ecx + 4]
mov edx, dword [ebp + 0x18b0]
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [ebp + 0x18b0]
fld dword [edx + 0x48]
fstp dword [ecx + 0x48]
mov edx, dword [ebp + 0x18b0]
fld dword [edx + 0x4c]
fstp dword [ecx + 0x4c]
mov edx, dword [ebp + 0x18b0]
mov edx, dword [edx + 0x44]
mov dword [ecx + 0x44], edx
mov dword [ecx + 0x34], eax
fld dword [eax + 4]
fstp dword [ecx + 0x38]
call fcn.100474a0
add esp, 4
test dword [esp + 0x15c], 0x440
mov ebx, dword [esp + 0x50]
sete al
lea esi, [ebp + 0x1d0c]
push eax
push ebx
push edi
call fcn.100412b0
add esp, 0xc
test al, al
mov byte [esp + 0x17], al
je 0x100648ac
mov ecx, dword [edi + 0x328]
cmp ecx, dword [edi + 0x330]
jne 0x100648ac
mov al, 1
jmp 0x100648ae
xor al, al
cmp byte [esp + 0x17], 0
mov byte [esp + 0x1f], al
je 0x100648c2
test al, al
mov byte [esp + 0x14], 1
je 0x100648c7
mov byte [esp + 0x14], 0
cmp byte [esp + 0x16], 0
je 0x100648dc
cmp byte [ebp + 0x3e0], 0
mov byte [esp + 0x15], 1
jne 0x100648e1
mov byte [esp + 0x15], 0
cmp byte [esp + 0x10], 0
je 0x10064911
cmp dword [ebp + 0x19b4], 0
jne 0x10064911
cmp dword [esi], ebx
jne 0x10064911
mov ecx, dword [esp + 0x4c]
push 0
push 0x101a1678
call fcn.10040e80
cmp dword [ebp + 0x19b8], eax
jne 0x10064911
mov cl, 1
jmp 0x10064913
xor cl, cl
mov eax, dword [ebp + 0x19b4]
cmp eax, ebx
je 0x1006493d
cmp dword [ebp + 0x1ab4], ebx
je 0x10064936
cmp dword [ebp + 0x1aa8], ebx
jne 0x1006493d
cmp dword [ebp + 0x1ac4], 3
jne 0x1006493d
mov byte [esp + 0x12], 1
jmp 0x10064942
mov byte [esp + 0x12], 0
cmp eax, ebx
mov byte [esp + 0x27], 0
je 0x10064968
test byte [esp + 0x15c], 0x10
jne 0x1006495c
cmp byte [esp + 0x12], 0
je 0x10064968
cmp byte [esp + 0x10], 0
mov byte [esp + 0x13], 1
je 0x1006496d
mov byte [esp + 0x13], 0
cmp byte [esp + 0x17], 0
mov ebx, dword [esp + 0x154]
jne 0x100649a2
cmp byte [esp + 0x15], 0
jne 0x100649a2
test cl, cl
jne 0x100649a2
cmp byte [esp + 0x12], cl
jne 0x100649a2
cmp byte [ebp + 0x3e0], cl
je 0x10064ae4
mov byte [esp + 0x27], 1
jmp 0x10064ae4
cmp eax, dword [esp + 0x50]
je 0x10064aa6
mov edx, dword [esi + 0x2c]
mov eax, dword [esp + 0x150]
mov dword [esp + 0x34], edx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100649c0
sub eax, edx
mov edi, eax
lea eax, [ebx + 1]
push eax
lea ecx, [esi + 4]
call fcn.10044bd0
add edi, 1
push edi
lea ecx, [esi + 0x10]
call fcn.10044cf0
mov ecx, dword [esi + 0x18]
push edi
mov edi, dword [esp + 0x154]
push edi
push ecx
call fcn.10114cf0
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x54]
push edx
push 0
push edi
push ebx
push eax
mov dword [esp + 0x68], 0
call fcn.1003a3d0
fld dword [0x101a1628]
mov ecx, dword [esp + 0x68]
fstp dword [esi + 0xe5c]
sub ecx, edi
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0x70]
add esp, 0x20
cmp dword [esi], ecx
mov dword [esi + 0x2c], eax
jne 0x10064a43
cmp dword [esp + 0x34], eax
jne 0x10064a43
mov ecx, esi
call fcn.10055c00
jmp 0x10064a72
fldz
xor eax, eax
cmp byte [esp + 0x10], al
fstp dword [esi + 0x34]
lea edx, [esi + 0x38]
sete al
push edx
mov dword [esi], ecx
call fcn.10054580
add esp, 4
cmp byte [esp + 0x10], 0
jne 0x10064a72
cmp byte [esp + 0x1f], 0
je 0x10064a72
mov byte [esp + 0x13], 1
test dword [esp + 0x15c], 0x2000
je 0x10064a83
mov byte [esi + 0x44], 1
cmp byte [esp + 0x10], 0
jne 0x10064aa6
cmp byte [esp + 0x14], 0
jne 0x10064aa1
cmp byte [esp + 0x15], 0
je 0x10064aa6
cmp byte [ebp + 0x108], 0
je 0x10064aa6
mov byte [esp + 0x13], 1
mov edi, dword [esp + 0xac]
mov eax, dword [esp + 0x50]
push edi
push eax
call fcn.1003b2d0
mov ecx, dword [esp + 0x58]
push edi
push ecx
call fcn.1003b370
push edi
call fcn.100427b0
add esp, 0x14
cmp byte [esp + 0x10], 0
jne 0x10064ae4
test byte [esp + 0x15c], 0x80
jne 0x10064ae4
or dword [ebp + 0x19cc], 0xc
mov edx, dword [ebp + 0x19b4]
cmp edx, dword [esp + 0x50]
mov byte [esp + 0x57], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x48], 0
jne 0x10064dea
cmp byte [esp + 0x11], 0
jne 0x10064b62
cmp byte [ebp + 0x19c4], 0
jne 0x10064b62
lea eax, [ebx + 1]
lea edi, [esi + 4]
push eax
mov ecx, edi
call fcn.10044bd0
mov edx, dword [esp + 0x150]
mov eax, dword [edi]
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esi + 0xc]
push 0
push edx
push eax
push ecx
mov dword [esp + 0x5c], 0
call fcn.1003a3d0
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x164]
add esp, 0x14
mov ecx, esi
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], edx
call fcn.10055c00
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
mov dword [esi + 0xe64], ecx
mov dword [esi + 0x30], ebx
mov dword [esi + 0xe68], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x164]
mov dword [esi + 0xe6c], eax
cmp byte [ebp + 0xf8], 0
mov dword [ebp + 0x2e58], 1
sete cl
cmp byte [esp + 0x10], 0
mov byte [ebp + 0x19c5], cl
fld dword [ebp + 0xf0]
fsub dword [esp + 0x8c]
fsub dword [ebp + 0x1544]
fadd dword [esi + 0x34]
fstp dword [esp + 0x18]
je 0x10064be6
fld dword [ebp + 0xf4]
mov edx, dword [esp + 0x4c]
fsub dword [edx + 0xcc]
fsub dword [ebp + 0x1548]
jmp 0x10064bf2
fld dword [ebp + 0x18b4]
fmul qword [0x1019e130]
cmp byte [esp + 0x13], 0
fstp dword [esp + 0x20]
mov cl, byte [ebp + 0xbd]
mov byte [esp + 0x2f], cl
jne 0x10064cf9
mov al, byte [esp + 0x16]
test al, al
je 0x10064c23
test cl, cl
jne 0x10064c6d
cmp byte [ebp + 0x3e5], cl
jne 0x10064cf9
cmp byte [ebp + 0x3e0], 0
je 0x10064c93
cmp byte [esi + 0xe61], 0
jne 0x10064c93
test al, al
je 0x10064d14
fld dword [esp + 0x20]
sub esp, 8
fstp dword [esp + 4]
lea edi, [esi + 0x38]
fld dword [esp + 0x20]
mov ebx, esi
fstp dword [esp]
call fcn.10059120
fld dword [0x101a1628]
add esp, 8
fstp dword [esi + 0xe5c]
jmp 0x10064d14
cmp byte [ebp + 0x3e5], 0
je 0x10064c23
push 0x1000c
mov ecx, esi
call fcn.100644f0
push 0x3000d
mov ecx, esi
call fcn.100644f0
jmp 0x10064d14
cmp byte [ebp + 0xf8], 0
je 0x10064d14
cmp byte [esi + 0xe61], 0
jne 0x10064d1d
fldz
fcom dword [ebp + 0x380]
fnstsw ax
test ah, 0x44
jp 0x10064cc3
fcomp dword [ebp + 0x384]
fnstsw ax
test ah, 0x44
jnp 0x10064d14
jmp 0x10064cc5
fstp st(0)
fld dword [esp + 0x20]
sub esp, 8
fstp dword [esp + 4]
lea edi, [esi + 0x38]
fld dword [esp + 0x20]
mov ebx, esi
fstp dword [esp]
call fcn.10059170
fld dword [0x101a1628]
add esp, 8
fstp dword [esi + 0xe5c]
mov byte [esi + 0xe60], 1
jmp 0x10064d14
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
mov byte [esi + 0x47], 0
mov byte [esi + 0xe61], 1
cmp byte [esi + 0xe61], 0
je 0x10064d2d
cmp byte [ebp + 0xf8], 0
jne 0x10064d2d
mov byte [esi + 0xe61], 0
mov eax, dword [ebp + 0x1500]
test eax, eax
jle 0x10064dea
cmp byte [ebp + 0x108], 0
je 0x10064d51
cmp byte [ebp + 0x10a], 0
je 0x10064dd5
cmp byte [esp + 0x2f], 0
je 0x10064d61
cmp byte [ebp + 0x10b], 0
jne 0x10064dd5
cmp byte [esp + 0x11], 0
je 0x10064dd5
cmp byte [esp + 0x12], 0
jne 0x10064dd5
xor ebp, ebp
test eax, eax
jle 0x10064dd5
jmp 0x10064d80
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x1508]
movzx edx, word [ecx + ebp*2]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
mov ebx, dword [esp + 0x15c]
push eax
push ecx
lea edi, [esp + 0x28]
mov dword [esp + 0x28], edx
call fcn.10054610
add esp, 8
test al, al
je 0x10064dc5
mov edx, dword [esp + 0x20]
push edx
mov ecx, esi
call fcn.100644f0
mov eax, dword [esp + 0x30]
add ebp, 1
add eax, 0x1500
cmp ebp, dword [eax]
jl 0x10064d80
mov ecx, dword [esp + 0x30]
push 0
add ecx, 0x1500
call fcn.10044bd0
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
cmp dword [ebp + 0x19b4], eax
mov byte [esp + 0x2f], 0
jne 0x10065627
cmp byte [ebp + 0x19c4], 0
jne 0x10065627
cmp byte [esp + 0x27], 0
jne 0x10065627
mov cl, byte [ebp + 0x109]
mov al, byte [ebp + 0xbd]
mov dl, cl
neg dl
mov byte [esp + 0x6b], al
sbb edx, edx
and edx, 0x20000
test al, al
mov edi, edx
je 0x10064e4d
cmp byte [ebp + 0x10b], 0
je 0x10064e71
cmp byte [ebp + 0x108], 0
je 0x10064e5f
jmp 0x10064e71
cmp byte [ebp + 0x108], 0
je 0x10064e71
cmp byte [ebp + 0x10b], 0
jne 0x10064e71
cmp byte [ebp + 0x10a], 0
jne 0x10064e71
test cl, cl
mov byte [esp + 0x12], 1
je 0x10064e76
mov byte [esp + 0x12], 0
test al, al
je 0x10064e9e
cmp byte [ebp + 0x10b], 0
je 0x10064e9e
test cl, cl
je 0x10064e9e
cmp byte [ebp + 0x108], 0
jne 0x10064e9e
cmp byte [ebp + 0x10a], 0
mov byte [esp + 0x55], 1
je 0x10064ea3
mov byte [esp + 0x55], 0
test al, al
je 0x10064f15
cmp byte [ebp + 0x10b], 0
mov al, byte [ebp + 0x10a]
mov byte [esp + 0x15], al
je 0x10064ecc
cmp byte [ebp + 0x108], 0
jne 0x10064ecc
test al, al
mov byte [esp + 0x13], 1
je 0x10064ed1
mov byte [esp + 0x13], 0
mov al, byte [ebp + 0x108]
test al, al
je 0x10064ef4
test cl, cl
jne 0x10064ef4
cmp byte [ebp + 0x10a], cl
jne 0x10064ef4
cmp byte [ebp + 0x10b], cl
mov byte [esp + 0x16], 1
je 0x10064ef9
mov byte [esp + 0x16], 0
test cl, cl
je 0x10064f21
test al, al
jne 0x10064f21
cmp byte [ebp + 0x10a], al
jne 0x10064f21
cmp byte [ebp + 0x10b], al
jne 0x10064f21
mov bl, 1
jmp 0x10064f23
mov al, byte [ebp + 0x108]
mov byte [esp + 0x15], al
jmp 0x10064ecc
xor bl, bl
cmp byte [esp + 0x12], 0
mov byte [esp + 0x14], bl
je 0x10064f3e
push 1
push 0x12
call fcn.10040420
add esp, 8
test al, al
jne 0x10064f52
test bl, bl
je 0x10064f77
push 1
push 0xa
call fcn.10040420
add esp, 8
test al, al
je 0x10064f77
mov bl, byte [esp + 0x11]
test bl, bl
je 0x10064f7b
cmp byte [esp + 0x47], 0
jne 0x10064f7b
cmp byte [esp + 0x10], 0
je 0x10064f70
mov ecx, dword [esi + 0x3c]
cmp ecx, dword [esi + 0x40]
je 0x10064f7b
mov byte [esp + 0x1f], 1
jmp 0x10064f80
mov bl, byte [esp + 0x11]
mov byte [esp + 0x1f], 0
cmp byte [esp + 0x12], 0
je 0x10064f97
push 1
push 0x10
call fcn.10040420
add esp, 8
test al, al
jne 0x10064fae
cmp byte [esp + 0x16], 0
je 0x10064fcb
push 1
push 9
call fcn.10040420
add esp, 8
test al, al
je 0x10064fcb
cmp byte [esp + 0x47], 0
jne 0x10064fcb
cmp byte [esp + 0x10], 0
je 0x10064fc4
mov edx, dword [esi + 0x3c]
cmp edx, dword [esi + 0x40]
je 0x10064fcb
mov byte [esp + 0x16], 1
jmp 0x10064fd0
mov byte [esp + 0x16], 0
cmp byte [esp + 0x12], 0
je 0x10064fe7
push 1
push 0x11
call fcn.10040420
add esp, 8
test al, al
jne 0x10064ffe
cmp byte [esp + 0x14], 0
je 0x10065007
push 1
push 9
call fcn.10040420
add esp, 8
test al, al
je 0x10065007
test bl, bl
mov byte [esp + 0x14], 1
jne 0x1006500c
mov byte [esp + 0x14], 0
cmp byte [esp + 0x12], 0
je 0x10065032
push 1
push 0x14
call fcn.10040420
add esp, 8
test al, al
je 0x10065032
test bl, bl
je 0x10065032
cmp byte [esp + 0x26], 0
je 0x10065032
mov bl, 1
jmp 0x10065034
xor bl, bl
cmp byte [esp + 0x12], 0
je 0x1006504b
push 1
push 0x13
call fcn.10040420
add esp, 8
test al, al
jne 0x10065062
cmp byte [esp + 0x55], 0
je 0x10065075
push 1
push 0x14
call fcn.10040420
add esp, 8
test al, al
je 0x10065075
cmp byte [esp + 0x11], 0
je 0x10065075
cmp byte [esp + 0x26], 0
mov byte [esp + 0x26], 1
jne 0x1006507a
mov byte [esp + 0x26], 0
push 1
push 1
call fcn.10040420
add esp, 8
test al, al
je 0x100650c4
cmp byte [esp + 0x13], 0
je 0x100650a5
mov eax, 0x10004
or eax, edi
push eax
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
mov al, byte [esp + 0x15]
neg al
mov ecx, esi
sbb eax, eax
and eax, 0xc
add eax, 0x10000
or eax, edi
push eax
call fcn.100644f0
jmp 0x10065627
push 1
push 2
call fcn.10040420
add esp, 8
test al, al
je 0x1006510e
cmp byte [esp + 0x13], 0
je 0x100650ef
mov eax, 0x10005
or eax, edi
push eax
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
mov al, byte [esp + 0x15]
neg al
mov ecx, esi
sbb eax, eax
and eax, 0xc
add eax, 0x10001
or eax, edi
push eax
call fcn.100644f0
jmp 0x10065627
push 1
push 3
call fcn.10040420
add esp, 8
test al, al
je 0x10065187
cmp byte [esp + 0x10], 0
je 0x10065187
cmp byte [ebp + 0x108], 0
je 0x10065168
fldz
mov ecx, dword [esp + 0x4c]
sub esp, 8
fstp dword [esp + 4]
fld dword [ecx + 0x5c]
fsub dword [ebp + 0x18b4]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp]
call fcn.10055150
add esp, 4
fstp dword [esp]
push ecx
call fcn.1003cb70
add esp, 8
jmp 0x10065627
xor eax, eax
cmp byte [esp + 0x13], al
mov ecx, esi
setne al
lea eax, [eax*4 + 0x10002]
or eax, edi
push eax
call fcn.100644f0
jmp 0x10065627
push 1
push 4
call fcn.10040420
add esp, 8
test al, al
je 0x10065203
cmp byte [esp + 0x10], 0
je 0x10065203
cmp byte [ebp + 0x108], 0
je 0x100651e4
call fcn.10042d10
mov ecx, dword [esp + 0x4c]
sub esp, 8
fstp dword [esp + 4]
fld dword [ebp + 0x18b4]
fadd dword [ecx + 0x5c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp]
call fcn.10055120
add esp, 4
fstp dword [esp]
push ecx
call fcn.1003cb70
add esp, 8
jmp 0x10065627
xor ecx, ecx
cmp byte [esp + 0x13], cl
setne cl
lea ecx, [ecx*4 + 0x10003]
or ecx, edi
push ecx
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
push 1
push 7
call fcn.10040420
add esp, 8
test al, al
je 0x10065246
cmp byte [ebp + 0x108], 0
je 0x10065231
or edi, 0x10006
mov eax, edi
push eax
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
or edi, 0x10004
mov eax, edi
push eax
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
push 1
push 8
call fcn.10040420
add esp, 8
test al, al
je 0x10065289
cmp byte [ebp + 0x108], 0
je 0x10065274
or edi, 0x10007
mov eax, edi
push eax
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
or edi, 0x10005
mov eax, edi
push eax
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
push 1
push 0xa
call fcn.10040420
add esp, 8
test al, al
je 0x100652b3
cmp byte [esp + 0x11], 0
je 0x100652b3
or edi, 0x10008
push edi
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
push 1
push 0xb
call fcn.10040420
add esp, 8
test al, al
je 0x10065321
cmp byte [esp + 0x11], 0
je 0x10065321
mov edx, dword [esi + 0x3c]
cmp edx, dword [esi + 0x40]
jne 0x1006530e
cmp byte [esp + 0x15], 0
je 0x100652e0
push 0x3000c
jmp 0x10065307
cmp byte [esp + 0x6b], 0
je 0x1006530e
cmp byte [ebp + 0x10b], 0
je 0x1006530e
cmp byte [ebp + 0x10a], 0
jne 0x1006530e
cmp byte [ebp + 0x108], 0
jne 0x1006530e
push 0x30004
mov ecx, esi
call fcn.100644f0
or edi, 0x10009
push edi
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
push 1
push 0xd
call fcn.10040420
add esp, 8
test al, al
je 0x1006537e
mov eax, dword [esp + 0x15c]
shr eax, 0xb
and al, 1
cmp byte [esp + 0x10], 0
je 0x10065351
test al, al
je 0x10065360
cmp byte [ebp + 0x108], 0
jne 0x10065369
mov byte [esp + 0x27], 1
mov byte [esp + 0x17], 1
jmp 0x10065627
cmp byte [ebp + 0x108], 0
jne 0x10065351
cmp byte [esp + 0x11], 0
je 0x10065627
mov dword [esp + 0x20], 0xa
jmp 0x100653c5
test dword [esp + 0x15c], 0x400
je 0x10065401
push 1
push 0
call fcn.10040420
add esp, 8
test al, al
je 0x10065401
cmp byte [ebp + 0x108], 0
jne 0x10065401
cmp byte [ebp + 0x109], 0
jne 0x10065401
cmp byte [ebp + 0x10a], 0
jne 0x10065401
cmp byte [esp + 0x11], 0
je 0x10065401
mov dword [esp + 0x20], 9
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
mov ebx, dword [esp + 0x15c]
push eax
push ecx
lea edi, [esp + 0x28]
call fcn.10054610
add esp, 8
test al, al
je 0x10065627
mov edx, dword [esp + 0x20]
push edx
mov ecx, esi
call fcn.100644f0
jmp 0x10065627
push 1
push 0xe
call fcn.10040420
add esp, 8
test al, al
je 0x10065420
mov byte [esp + 0x2f], 1
mov byte [esp + 0x27], 1
jmp 0x10065627
test bl, bl
jne 0x1006560c
cmp byte [esp + 0x26], bl
jne 0x1006560c
cmp byte [esp + 0x12], bl
je 0x10065464
push 1
push 0xf
call fcn.10040420
add esp, 8
test al, al
je 0x10065464
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], eax
mov byte [esi + 0x47], bl
mov byte [esi + 0xe60], 1
jmp 0x10065624
cmp byte [esp + 0x1f], 0
jne 0x10065561
cmp byte [esp + 0x16], 0
jne 0x10065561
cmp byte [esp + 0x14], 0
je 0x10065627
call fcn.1003b650
mov edi, eax
test edi, edi
je 0x10065627
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10065497
sub eax, edx
lea eax, [eax + eax + 2]
push eax
call fcn.1003b5f0
add esp, 4
xor ebp, ebp
cmp byte [edi], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edi
je 0x10065529
mov edi, edi
mov edi, dword [esp + 0x18]
push 0
lea ecx, [esp + 0x24]
push edi
push ecx
call fcn.1003a220
add edi, eax
mov eax, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
mov dword [esp + 0x18], edi
je 0x10065529
cmp eax, 0x10000
jae 0x10065520
mov edx, dword [esp + 0x164]
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x15c]
push edx
push eax
lea edi, [esp + 0x28]
call fcn.10054610
add esp, 8
test al, al
je 0x10065520
mov cx, word [esp + 0x20]
mov edx, dword [esp + 0x28]
mov word [edx + ebp*2], cx
add ebp, 1
mov eax, dword [esp + 0x18]
cmp byte [eax], 0
jne 0x100654c0
test ebp, ebp
mov edi, dword [esp + 0x28]
mov word [edi + ebp*2], 0
jle 0x1006554f
lea ecx, [esi + 0x38]
push ecx
push esi
mov eax, ebp
mov ecx, edi
call fcn.1005e7b0
add esp, 8
mov byte [esi + 0xe60], 1
push edi
call fcn.1003b620
mov ebp, dword [esp + 0x34]
add esp, 4
jmp 0x10065627
cmp dword [ebp + 0xdc], 0
je 0x100655d6
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x40]
cmp eax, edi
je 0x10065582
jge 0x1006557c
mov dword [esp + 0x18], eax
jmp 0x1006558a
mov dword [esp + 0x18], edi
jmp 0x1006558a
mov dword [esp + 0x18], 0
cmp eax, edi
je 0x10065594
jl 0x10065597
mov edi, eax
jmp 0x10065597
mov edi, dword [esi + 0x2c]
mov edx, edi
sub edx, dword [esp + 0x18]
lea ebx, [esi + 0x1c]
lea eax, [edx*4 + 1]
push eax
mov ecx, ebx
call fcn.10044cf0
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + edi*2]
push ecx
mov ecx, dword [ebx]
lea eax, [eax + edx*2]
mov edx, dword [esi + 0x24]
push eax
push ecx
push edx
call fcn.1003a5c0
mov eax, dword [esi + 0x24]
push eax
call fcn.1003b680
add esp, 0x14
cmp byte [esp + 0x1f], 0
je 0x10065627
mov ecx, dword [esi + 0x3c]
cmp ecx, dword [esi + 0x40]
jne 0x100655f9
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
mov byte [esi + 0x47], 0
lea eax, [esi + 0x38]
mov ebx, esi
mov byte [esi + 0xe60], 1
call fcn.1005e490
jmp 0x10065627
neg bl
mov ecx, esi
sbb ebx, ebx
add ebx, 0x1000b
push ebx
call fcn.100644f0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov ebx, dword [esp + 0x50]
cmp dword [ebp + 0x19b4], ebx
jne 0x10065a4d
xor ebx, ebx
cmp byte [esp + 0x2f], bl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
je 0x100656af
cmp byte [esp + 0x11], bl
je 0x10065697
mov edi, dword [esi + 0x18]
mov eax, dword [esp + 0x150]
mov ecx, edi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10065680
test dl, dl
je 0x1006567c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10065680
add eax, 2
add ecx, 2
test dl, dl
jne 0x10065660
xor eax, eax
jmp 0x10065685
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x10065697
mov eax, dword [esi + 0x10]
sub eax, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], eax
cmp byte [esp + 0x17], bl
je 0x10065944
test byte [esp + 0x15c], 0x20
je 0x10065944
cmp byte [esp + 0x11], bl
je 0x100656de
mov edx, dword [esi + 4]
lea eax, [edx*4 + 1]
lea edi, [esi + 0x1c]
push eax
mov ecx, edi
call fcn.10044cf0
mov ecx, dword [esi + 0xc]
mov edx, dword [edi]
mov eax, dword [esi + 0x24]
push ebx
push ecx
push edx
push eax
call fcn.1003a5c0
add esp, 0x10
test dword [esp + 0x15c], 0x1c0
je 0x100658f8
test byte [esp + 0x15c], 0x40
mov ebx, 0x15
je 0x10065717
push 1
push 0
call fcn.10040420
add esp, 8
test al, al
je 0x10065717
mov edi, 0x40
xor ebx, ebx
jmp 0x10065774
mov edi, dword [esp + 0x15c]
and edi, 0x80
je 0x10065742
push 1
push 3
call fcn.10040420
add esp, 8
test al, al
je 0x10065742
mov edi, 0x80
mov ebx, 3
jmp 0x10065774
test edi, edi
je 0x10065762
push 1
push 4
call fcn.10040420
add esp, 8
test al, al
je 0x10065762
mov edi, 0x80
mov ebx, 4
jmp 0x10065774
mov edi, 0x100
test dword [esp + 0x15c], edi
je 0x100658f8
push 0x30
lea ecx, [esp + 0xcc]
push 0
push ecx
call fcn.10114870
mov edx, dword [esp + 0x168]
mov ecx, dword [esi + 0x24]
mov eax, dword [esp + 0x170]
mov dword [esp + 0xd8], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 0xd4], edi
mov edi, dword [esi + 0xc]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esi + 0x38]
mov dword [esp + 0xec], edx
lea edx, [edi + ecx*2]
mov dword [esp + 0xdc], eax
mov eax, dword [esi + 0x30]
push edx
push edi
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf8], eax
mov byte [esp + 0xfc], 0
call fcn.1003a630
mov dword [esp + 0x100], eax
mov ebx, eax
mov eax, dword [esi + 0x3c]
lea ecx, [edi + eax*2]
push ecx
push edi
call fcn.1003a630
mov edx, dword [esi + 0x40]
mov dword [esp + 0x10c], eax
mov ebp, eax
lea eax, [edi + edx*2]
push eax
push edi
call fcn.1003a630
lea ecx, [esp + 0xec]
push ecx
mov dword [esp + 0x11c], eax
mov edi, eax
call dword [esp + 0x188]
mov eax, dword [esp + 0x114]
add esp, 0x28
cmp eax, ebx
je 0x10065854
mov ecx, dword [esp + 0xdc]
add eax, ecx
push eax
push ecx
call fcn.1003a450
add esp, 8
mov dword [esi + 0x38], eax
mov byte [esi + 0xe60], 1
mov ecx, dword [esp + 0xf0]
cmp ecx, ebp
je 0x10065875
mov eax, dword [esp + 0xdc]
add ecx, eax
push ecx
push eax
call fcn.1003a450
add esp, 8
mov dword [esi + 0x3c], eax
mov ecx, dword [esp + 0xf4]
cmp ecx, edi
je 0x10065896
mov eax, dword [esp + 0xdc]
add ecx, eax
push ecx
push eax
call fcn.1003a450
add esp, 8
mov dword [esi + 0x40], eax
cmp byte [esp + 0xe8], 0
je 0x100658f8
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x48]
cmp eax, edx
jle 0x100658c3
cmp byte [esp + 0x56], 0
je 0x100658c3
lea ecx, [esi + 4]
sub eax, edx
add eax, dword [ecx]
push eax
call fcn.10044bd0
mov edx, dword [esp + 0xdc]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
push 0
push 0
push edx
push eax
push ecx
call fcn.1003a3d0
fld dword [0x101a1628]
mov edx, dword [esp + 0xf4]
fstp dword [esi + 0xe5c]
add esp, 0x14
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], edx
cmp byte [esp + 0x11], 0
je 0x10065944
mov edi, dword [esi + 0x24]
mov ecx, dword [esp + 0x150]
mov eax, edi
jmp 0x10065910
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10065930
test dl, dl
je 0x1006592c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10065930
add eax, 2
add ecx, 2
test dl, dl
jne 0x10065910
xor eax, eax
jmp 0x10065935
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10065944
mov eax, dword [esi + 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], eax
xor eax, eax
cmp dword [esp + 0x20], eax
je 0x10065a33
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x48], edi
je 0x10065a07
cmp byte [esp + 0x56], al
je 0x10065a07
lea ecx, [esp + 0xc8]
call fcn.10054590
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x150]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x154]
lea eax, [edi + 1]
cmp ecx, eax
mov dword [esp + 0xc8], 0x40000
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], ecx
jge 0x100659be
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0xc8]
push ecx
mov dword [esp + 0xd4], eax
call dword [esp + 0x164]
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
mov ecx, eax
add eax, 0xffffffff
add esp, 4
cmp edi, eax
mov dword [esp + 0x150], edx
jl 0x10065a0e
mov edi, eax
jmp 0x10065a0e
mov ecx, dword [esp + 0x154]
lea eax, [edi + 1]
cmp eax, ecx
jl 0x10065a17
mov eax, ecx
mov ecx, dword [esp + 0x150]
push eax
mov eax, dword [esi + 0x24]
push eax
push ecx
call fcn.10039e70
add esp, 0xc
mov byte [esp + 0x57], 1
xor eax, eax
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x50]
mov dword [esi + 0xe64], eax
mov dword [esi + 0xe68], eax
mov dword [esi + 0xe6c], eax
cmp byte [esp + 0x27], 0
je 0x10065a61
cmp dword [ebp + 0x19b4], ebx
jne 0x10065a75
call fcn.1003b440
cmp dword [ebp + 0x19b4], ebx
jne 0x10065a75
cmp byte [esp + 0x11], 0
je 0x10065a75
mov edi, dword [esi + 0x24]
jmp 0x10065a7c
mov edi, dword [esp + 0x150]
cmp byte [esp + 0x10], 0
mov dword [esp + 0x20], edi
jne 0x10065ade
push 1
lea edx, [esp + 0x90]
push ebx
push edx
call fcn.1003b050
fld dword [ebp + 0x154c]
add esp, 8
fstp dword [esp]
push 1
fld1
push ecx
fstp dword [esp]
push 7
call fcn.1003aa30
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
add esp, 8
push eax
mov eax, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x9c]
push ecx
push edx
push eax
call fcn.1003ac00
add esp, 0x1c
fld dword [esp + 0x8c]
mov cl, byte [esp + 0x10]
test cl, cl
fst dword [esp + 0xb0]
fld dword [esp + 0x90]
fst dword [esp + 0xb4]
fld st(1)
fadd dword [esp + 0xa4]
fstp dword [esp + 0xb8]
fld dword [esp + 0xa8]
fadd st(1)
fstp dword [esp + 0xbc]
je 0x10065b31
mov eax, dword [esp + 0x4c]
fstp st(0)
fstp st(0)
add eax, 0xc8
jmp 0x10065b4d
fld dword [ebp + 0x1544]
lea eax, [esp + 0x3c]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x3c]
fadd dword [ebp + 0x1548]
fstp dword [esp + 0x40]
mov edx, dword [eax]
fldz
mov dword [esp + 0x84], edx
fst dword [esp + 0x74]
mov eax, dword [eax + 4]
fstp dword [esp + 0x78]
mov dword [esp + 0x88], eax
cmp dword [esi], ebx
jne 0x10065b8e
test cl, cl
je 0x10065b8e
mov ecx, dword [esp + 0x4c]
push 0
push 0x101a1678
call fcn.10040e80
cmp dword [ebp + 0x19b4], eax
jne 0x10065b8e
mov al, 1
jmp 0x10065b90
xor al, al
cmp dword [ebp + 0x19b4], ebx
je 0x10065c78
test al, al
jne 0x10065c78
cmp byte [esp + 0x10], al
mov dword [esp + 0x28], 0
je 0x10065bf0
fld dword [esp + 0xa4]
lea esi, [esp + 0x28]
mov ecx, edi
fstp dword [esp + 0x60]
call fcn.10054110
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x74], ecx
fmul dword [ebp + 0x18b4]
fstp dword [esp + 0x64]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x78], edx
jmp 0x10065c16
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10065bf5
sub eax, edx
add eax, edi
mov ecx, eax
sub ecx, edi
cmp ecx, 0x200000
jge 0x1006655b
mov edi, dword [esp + 0x20]
mov dl, byte [esp + 0x10]
fldz
neg dl
lea ecx, [esp + 0xb0]
sbb edx, edx
not edx
and edx, ecx
push edx
push ecx
fstp dword [esp]
push eax
fld1
push edi
push ecx
fstp dword [esp]
push 0
call fcn.1003aa30
add esp, 8
push eax
mov eax, dword [esp + 0x44]
fld dword [eax + 0x18b4]
mov eax, dword [eax + 0x18b0]
lea edx, [esp + 0x98]
push edx
push ecx
mov ecx, dword [esp + 0x68]
fstp dword [esp]
mov ecx, dword [ecx + 0x274]
push eax
call fcn.1007c260
mov ebp, dword [esp + 0x30]
jmp 0x10066513
mov edx, dword [esp + 0x30]
fld dword [edx + 0x18]
mov eax, dword [esi + 0x38]
fadd dword [esi + 0xe5c]
mov ebp, dword [esi + 0xc]
mov edx, dword [esi + 0x40]
lea ecx, [ebp + eax*2]
fstp dword [esi + 0xe5c]
mov dword [esp + 0x6c], ecx
fldz
mov ecx, dword [esi + 0x3c]
cmp ecx, edx
fst dword [esp + 0xa0]
mov edi, 0xfffffc19
fstp dword [esp + 0x9c]
mov dword [esp + 0x70], 0
mov eax, 1
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x5c], edi
je 0x10065ce9
jl 0x10065cd5
mov ecx, edx
lea edx, [ebp + ecx*2]
or edi, 0xffffffff
mov dword [esp + 0x70], edx
mov dword [esp + 0x5c], edi
mov eax, 2
movzx edx, word [ebp]
xor ecx, ecx
cmp byte [esp + 0x10], cl
mov ebx, ebp
setne cl
add eax, ecx
xor ecx, ecx
test dx, dx
je 0x10065d49
movzx edx, dx
cmp dx, 0xa
jne 0x10065d39
add ecx, 1
cmp dword [esp + 0x58], 0xffffffff
jne 0x10065d25
cmp ebx, dword [esp + 0x6c]
jb 0x10065d25
sub eax, 1
test eax, eax
mov dword [esp + 0x58], ecx
jle 0x10065d45
cmp edi, 0xffffffff
jne 0x10065d39
cmp ebx, dword [esp + 0x70]
jb 0x10065d39
sub eax, 1
test eax, eax
mov edi, ecx
jle 0x10065d45
movzx edx, word [ebx + 2]
add ebx, 2
test dx, dx
jne 0x10065d04
mov dword [esp + 0x5c], edi
add ecx, 1
cmp dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x34], ecx
jne 0x10065d5b
mov dword [esp + 0x58], ecx
cmp edi, 0xffffffff
jne 0x10065d64
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x6c]
push 0
push 0
push ebp
push edi
call fcn.10039f10
add esp, 8
xor bl, bl
lea ecx, [esp + 0xc8]
call fcn.10058d20
fld dword [eax]
mov edx, dword [esp + 0x38]
fstp dword [esp + 0x84]
fild dword [esp + 0x60]
add esp, 8
cmp dword [esp + 0x5c], 0
fmul dword [edx + 0x18b4]
fstp dword [esp + 0x80]
jl 0x10065deb
mov edi, dword [esp + 0x70]
push 0
push 0
push ebp
push edi
call fcn.10039f10
add esp, 8
lea ecx, [esp + 0xc8]
call fcn.10058d20
fld dword [eax]
mov eax, dword [esp + 0x38]
fstp dword [esp + 0xa4]
fild dword [esp + 0x64]
add esp, 8
fmul dword [eax + 0x18b4]
fstp dword [esp + 0xa0]
mov bl, byte [esp + 0x10]
fld dword [esp + 0xa4]
test bl, bl
je 0x10065e20
mov ecx, dword [esp + 0x30]
fst dword [esp + 0x60]
fild dword [esp + 0x34]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x74], edx
fmul dword [ecx + 0x18b4]
fstp dword [esp + 0x64]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x78], eax
cmp byte [esi + 0xe60], 0
fld dword [esp + 0x80]
fld dword [esp + 0x7c]
je 0x10065f67
test dword [esp + 0x15c], 0x1000
jne 0x10065ec2
fld st(2)
fmul qword [0x101a0bc8]
fstp dword [esp + 0x28]
fld dword [esi + 0x34]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10065e9a
fstp st(2)
fld dword [esp + 0x28]
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fcom qword [0x1019c9d0]
fnstsw ax
test ah, 0x41
jp 0x10065e80
fstp st(0)
fldz
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
call fcn.10114560
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fstp dword [esi + 0x34]
jmp 0x10065ecf
fsubrp st(2)
fld dword [esi + 0x34]
fcomp st(2)
fnstsw ax
test ah, 0x41
jp 0x10065ecd
fld dword [esp + 0x28]
faddp st(2)
fxch st(1)
call fcn.10114560
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fstp dword [esi + 0x34]
jmp 0x10065ecf
fstp st(2)
fstp st(1)
fldz
fstp dword [esi + 0x34]
jmp 0x10065ecf
fstp st(1)
test bl, bl
je 0x10065f6b
mov ecx, dword [esp + 0x4c]
fld dword [ecx + 0x5c]
mov edx, dword [esp + 0x30]
fstp dword [esp + 0x18]
fld st(0)
fsub dword [edx + 0x18b4]
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10065f1e
fstp st(0)
fstp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fcom qword [0x1019c9d0]
fnstsw ax
test ah, 0x41
jp 0x10065f18
fstp st(0)
fldz
fstp dword [esp + 0x18]
jmp 0x10065f3a
fstp st(1)
fld dword [esp + 0xa8]
fsubp st(2)
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10065f38
fstp dword [esp + 0x18]
jmp 0x10065f3a
fstp st(0)
fld dword [ecx + 0x5c]
fld dword [esp + 0x18]
fld st(0)
fsubp st(2)
fld dword [ecx + 0xcc]
faddp st(2)
fxch st(1)
fstp dword [ecx + 0xcc]
fstp dword [ecx + 0x5c]
fld dword [ecx + 0xcc]
fstp dword [esp + 0x88]
jmp 0x10065f6d
fstp st(2)
fstp st(1)
fstp st(0)
mov eax, dword [esi + 0x3c]
fld dword [esi + 0x34]
mov ecx, dword [esi + 0x40]
fstp dword [esp + 0x60]
cmp eax, ecx
mov byte [esi + 0xe60], 0
je 0x100662d9
mov edx, eax
jl 0x10065f8f
mov edx, ecx
cmp eax, ecx
lea ebx, [ebp + edx*2]
jge 0x10065f99
mov eax, ecx
cmp byte [esp + 0x10], 0
lea edi, [ebp + eax*2]
je 0x10065faf
fldz
fst dword [esp + 0xac]
jmp 0x10065fc2
fld dword [0x1019cf4c]
fstp dword [esp + 0xac]
fld dword [0x1019e1e0]
fstp dword [esp + 0x48]
push ecx
fld1
fstp dword [esp]
push 0x2a
call fcn.1003aa30
fld dword [esp + 0x8c]
fadd dword [esp + 0xa4]
mov ebp, dword [esp + 0x38]
add esp, 8
cmp ebx, edi
fstp dword [esp + 0x34]
mov ecx, ebx
fld dword [esp + 0x88]
mov dword [esp + 0x58], eax
fadd dword [esp + 0xa0]
mov dword [esp + 0x18], ecx
fstp dword [esp + 0x38]
fld dword [esp + 0x34]
fsub dword [esp + 0x60]
fstp dword [esp + 0x6c]
fld dword [esp + 0x38]
fsub qword [0x1019c9d0]
fstp dword [esp + 0x70]
jae 0x100662dd
lea ebx, [ebx]
fld dword [esp + 0x70]
fld dword [esp + 0xbc]
fadd dword [ebp + 0x18b4]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x100662d5
fld dword [esp + 0xb4]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x100660a0
cmp ecx, edi
jae 0x1006607e
mov ax, word [ecx]
add ecx, 2
cmp ax, 0xa
je 0x1006607a
cmp ecx, edi
jb 0x1006606a
mov dword [esp + 0x18], ecx
cmp ecx, edi
fld dword [esp + 0x84]
fsub dword [esp + 0x60]
fstp dword [esp + 0x6c]
fadd dword [ebp + 0x18b4]
fstp dword [esp + 0x70]
jb 0x10066030
jmp 0x100662dd
lea edx, [esp + 0x18]
fstp st(0)
push 0
mov eax, ecx
push edx
mov bl, 1
lea ecx, [esp + 0xa4]
call fcn.10058d20
fldz
fcomp dword [esp + 0xa4]
add esp, 8
fnstsw ax
test bl, ah
jne 0x10066107
mov eax, dword [ebp + 0x18b0]
cmp dword [eax + 0x1c], 0x20
jle 0x100660e2
mov eax, dword [eax + 0x24]
fld dword [eax + 0x80]
jmp 0x100660e5
fld dword [eax + 0x38]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fmul qword [0x1019e130]
call fcn.10114560
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fstp dword [esp + 0x9c]
fld dword [esp + 0x6c]
fld st(0)
fadd dword [esp + 0x9c]
fstp dword [esp + 0x118]
fld dword [esp + 0x70]
fld st(0)
fadd dword [esp + 0x48]
fstp dword [esp + 0x11c]
fld dword [esp + 0xac]
fsub dword [ebp + 0x18b4]
fstp dword [esp + 0xc4]
fxch st(1)
fadd qword [0x1019c9d0]
fstp dword [esp + 0x110]
fld st(0)
fadd dword [esp + 0xc4]
fstp dword [esp + 0x114]
fld dword [esp + 0x114]
fld dword [esp + 0xb4]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x1006617e
fxch st(1)
fstp dword [esp + 0x34]
jmp 0x10066184
fstp st(1)
fst dword [esp + 0x34]
fld dword [esp + 0x110]
fld dword [esp + 0xb0]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x1006619f
fstp st(0)
jmp 0x100661a1
fstp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esp + 0x120]
mov ecx, dword [esp + 0x120]
fld dword [esp + 0x34]
mov dword [esp + 0x138], ecx
fst dword [esp + 0x124]
mov edx, dword [esp + 0x124]
fld dword [esp + 0x11c]
mov dword [esp + 0x13c], edx
fld dword [esp + 0xbc]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100661f6
fxch st(1)
fstp dword [esp + 0x28]
jmp 0x100661fc
fstp st(1)
fst dword [esp + 0x28]
fld dword [esp + 0x118]
fld dword [esp + 0xb8]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x1006621c
fstp st(0)
fld dword [esp + 0xb8]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fst dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
fld dword [esp + 0x28]
mov dword [esp + 0x140], eax
fst dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
fcomp st(5)
mov dword [esp + 0x144], ecx
fnstsw ax
fstp st(4)
test ah, 0x41
jne 0x100662b7
fcompp
fnstsw ax
test ah, 0x41
jne 0x100662c8
fld dword [esp + 0xb0]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x100662ca
fld dword [esp + 0xb8]
fcompp
fnstsw ax
test ah, 0x41
jne 0x100662cc
mov edx, dword [esp + 0x58]
fstp st(0)
fldz
push 0xf
push ecx
fstp dword [esp]
push edx
mov edx, dword [esp + 0x58]
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x148]
push ecx
mov ecx, dword [edx + 0x274]
call fcn.1007bee0
fld dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
jmp 0x1006607e
mov ecx, dword [esp + 0x18]
fstp st(3)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x1006607e
fstp st(1)
fstp st(0)
mov ecx, dword [esp + 0x18]
jmp 0x1006607e
fstp st(0)
jmp 0x100662dd
mov ebp, dword [esp + 0x30]
mov al, byte [esp + 0x10]
test al, al
mov esi, dword [esi + 0x28]
jne 0x100662f0
cmp esi, 0x200000
jge 0x10066364
fld dword [esp + 0x84]
neg al
fsub dword [esp + 0x60]
lea ecx, [esp + 0xb0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x88]
fsub qword [0x1019c9d0]
sbb eax, eax
not eax
fstp dword [esp + 0x40]
and eax, ecx
fldz
push eax
mov eax, dword [esp + 0x24]
push ecx
fstp dword [esp]
add esi, eax
fld1
push esi
push eax
push ecx
fstp dword [esp]
push 0
call fcn.1003aa30
fld dword [ebp + 0x18b4]
add esp, 8
push eax
mov eax, dword [ebp + 0x18b0]
lea edx, [esp + 0x50]
push edx
push ecx
mov ecx, dword [esp + 0x68]
fstp dword [esp]
mov ecx, dword [ecx + 0x274]
push eax
call fcn.1007c260
cmp byte [ebp + 0xbe], 0
je 0x100663a6
fldz
fcomp dword [ebp + 0x2b68]
fnstsw ax
test ah, 1
je 0x100663a6
fld dword [ebp + 0x2b68]
fld qword [0x101a1750]
call fcn.10116bba
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fcomp qword [0x101a0ad8]
fnstsw ax
test ah, 0x41
jnp 0x100663a6
xor al, al
jmp 0x100663a8
mov al, 1
test al, al
fld dword [esp + 0x84]
fadd dword [esp + 0x7c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x88]
fadd dword [esp + 0x80]
fstp dword [esp + 0x40]
fld dword [esp + 0x3c]
fsub dword [esp + 0x60]
fstp dword [esp + 0x7c]
fld dword [esp + 0x40]
fsub qword [0x1019c9d0]
fstp dword [esp + 0x80]
fld dword [esp + 0x7c]
fst dword [esp + 0x100]
fld dword [esp + 0x80]
fld st(0)
fsub dword [ebp + 0x18b4]
fadd qword [0x1019e130]
fstp dword [esp + 0x104]
fld st(1)
fadd qword [0x1019f150]
fstp dword [esp + 0x108]
fld qword [0x101a18c8]
fsubr st(1)
fstp dword [esp + 0x10c]
je 0x100664dc
fld dword [esp + 0xb4]
fld dword [esp + 0x10c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x100664da
fld dword [esp + 0xbc]
fld dword [esp + 0x104]
fcompp
fnstsw ax
test ah, 5
jp 0x100664da
fld dword [esp + 0xb0]
fld dword [esp + 0x108]
fcompp
fnstsw ax
test ah, 0x41
jne 0x100664da
fld dword [esp + 0xb8]
fcomp st(3)
fnstsw ax
test ah, 0x41
jne 0x100664da
fstp st(1)
sub esp, 8
fxch st(1)
fstp dword [esp + 0x44]
fstp dword [esp + 0x48]
fld1
fst dword [esp + 4]
fstp dword [esp]
push 0
call fcn.1003aa30
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + 0x274]
add esp, 8
push eax
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x10c]
push eax
call fcn.1007bcf0
fld dword [esp + 0x7c]
fld dword [esp + 0x80]
jmp 0x100664dc
fstp st(0)
cmp byte [esp + 0x11], 0
je 0x1006650f
fxch st(1)
fsub qword [0x1019f150]
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov dword [ebp + 0x2c10], edx
fsub dword [ebp + 0x18b4]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x2c14], eax
jmp 0x10066513
fstp st(1)
fstp st(0)
cmp byte [esp + 0x10], 0
je 0x1006655b
fld dword [ebp + 0x18b4]
lea ecx, [esp + 0x3c]
fstp dword [esp + 0xc4]
push ecx
fld dword [esp + 0x78]
fadd qword [0x1019c9d0]
fstp dword [esp + 0x40]
fld dword [esp + 0xc8]
fadd dword [esp + 0x7c]
fstp dword [esp + 0x44]
call fcn.10053830
add esp, 4
call fcn.1004ed70
call fcn.10047c00
mov bl, byte [esp + 0x47]
test bl, bl
je 0x10066568
call fcn.10042920
mov esi, dword [esp + 0x30]
cmp byte [esi + 0x2c4c], 0
je 0x10066590
test bl, bl
jne 0x10066590
mov edx, dword [esp + 0x20]
push 0
push edx
lea eax, [esp + 0x8c]
push eax
call fcn.10049010
add esp, 0xc
fldz
fcomp dword [esp + 0xf8]
fnstsw ax
test ah, 5
jp 0x100665e0
fld dword [esi + 0x155c]
mov ecx, dword [esp + 0x14c]
fadd dword [esp + 0x94]
push 1
push 0
push ecx
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
fld dword [esi + 0x1548]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
push edx
push eax
call fcn.10049e20
add esp, 0x14
mov bl, byte [esp + 0x57]
test bl, bl
je 0x100665f5
mov ecx, dword [esp + 0x50]
push ecx
call fcn.1003b4e0
add esp, 4
test byte [esp + 0x15c], 0x20
mov al, byte [esp + 0x17]
jne 0x10066605
mov al, bl
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x138
ret