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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x78
lea edx, [eax + 0x1e0]
push ebx
mov ecx, eax
push esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], edx
cmp eax, edx
ja 0x10009f33
fld qword [esp + 0x58]
mov esi, dword [esp + 8]
fld qword [esp + 0x78]
mov ebx, dword [esp + 0x18]
fld qword [esp + 0x70]
fld qword [esp + 0x68]
fld qword [esp + 0x60]
fld qword [esp + 0x50]
cmp ecx, 0x290f
ja 0x10009d4c
je 0x10009965
cmp ecx, 0x28bf
ja 0x10009933
je 0x100098de
cmp ecx, 0x1b10
je 0x100098c2
cmp ecx, 0x2897
jne 0x10009f12
fstp st(1)
push 0
fstp st(3)
lea eax, [edi + 4]
fstp st(0)
push 0
fstp st(1)
push eax
fstp st(1)
fstp st(0)
call fcn.100061b0
mov ecx, dword [edi + 0x18]
lea edx, [eax + ecx*8]
add esp, 0xc
mov dword [esp + 0x24], edx
jmp 0x10009eec
mov eax, 0x5b22
cmp eax, eax
je 0x10009f3d
add eax, 0x64
cmp eax, 0x5b22
jbe 0x100098c9
jmp 0x10009f12
fstp st(1)
lea eax, [edi + 4]
fstp st(3)
push eax
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
call fcn.1001df00
sub eax, dword [edi + 0x1c]
add esp, 4
test eax, eax
jle 0x1000990e
lea eax, [edi + 4]
push eax
call fcn.1001df00
add esp, 4
sub eax, dword [edi + 0x1c]
jmp 0x10009910
xor eax, eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x10], eax
fmul qword [edi + 0x28]
fadd qword [0x10039430]
call fcn.100305b0
mov dword [esp + 0x3c], eax
jmp 0x10009eec
cmp ecx, 0x28e7
jne 0x10009f12
mov eax, dword [esp + 0x3c]
fstp st(1)
mov ecx, dword [ebp + 0xc]
fstp st(3)
fstp st(0)
push eax
fstp st(1)
push ecx
fstp st(1)
fstp st(0)
call fcn.1001b4a0
add esp, 8
mov dword [esp + 0x28], eax
jmp 0x10009eec
cmp dword [edi + 0x48], 0
je 0x10009b90
mov eax, 0x2a6d
mov dword [esp + 0x20], eax
sub eax, 0x2a6d
je 0x10009b66
sub eax, 0x22
je 0x10009a04
sub eax, 0x22
jne 0x10009b71
fstp st(1)
push eax
fstp st(3)
fnstcw word [esp + 0xc]
movzx eax, word [esp + 0xc]
fstp st(0)
fstp st(1)
or eax, 0xc00
mov dword [esp + 0x34], eax
fstp st(0)
lea eax, [edi + 4]
fldcw word [esp + 0x34]
fistp qword [esp + 0x34]
mov edx, dword [esp + 0x34]
push edx
push eax
fldcw word [esp + 0x14]
call fcn.100061b0
add esp, 0xc
fld qword [esp + 0x58]
fld st(0)
call fcn.100305b0
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fsubr st(1)
fstp qword [edi + 0x38]
fld qword [esp + 0x50]
fld qword [esp + 0x60]
fld qword [esp + 0x68]
fld qword [esp + 0x70]
fld qword [esp + 0x78]
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
jmp 0x10009b71
fld st(5)
mov dword [esp + 0xc], 0
call fcn.100305b0
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x10]
jge 0x10009b71
jmp 0x10009a25
fxch st(5)
mov eax, 0x644b
mov dword [esp + 0x14], eax
cmp eax, 0x652c
ja 0x10009af1
je 0x10009a92
sub eax, 0x644b
je 0x10009a81
sub eax, 0x4b
je 0x10009a75
sub eax, 0x4b
jne 0x10009a9a
mov ecx, dword [edi + 0x5c]
fstp st(2)
mov edx, 1
shl edx, cl
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul st(3)
fld st(0)
call fcn.100305b0
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
fxch st(2)
jmp 0x10009a9a
fstp st(3)
fild dword [esp + 8]
fsubr st(5)
fxch st(3)
jmp 0x10009a9a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
lea edx, [eax + ecx*8]
mov dword [esp + 0x44], edx
jmp 0x10009a9a
fstp st(4)
xor esi, esi
fldz
fxch st(4)
mov eax, dword [esp + 0x14]
add eax, 0x4b
mov dword [esp + 0x14], eax
cmp eax, 0x65c2
jbe 0x10009a2e
inc dword [esp + 0xc]
fxch st(5)
fadd qword [edi + 0x40]
fld st(0)
call fcn.100305b0
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x10]
jl 0x10009a23
fst qword [esp + 0x58]
fxch st(4)
fst qword [esp + 0x78]
fxch st(3)
fst qword [esp + 0x70]
fxch st(2)
fst qword [esp + 0x68]
fxch st(4)
fxch st(5)
fxch st(3)
fxch st(4)
fxch st(2)
fxch st(3)
jmp 0x10009b71
sub eax, 0x6577
je 0x10009b0c
sub eax, 0x4b
jne 0x10009a9a
mov eax, dword [esp + 0x28]
fxch st(4)
mov ecx, dword [esp + 0xc]
fst qword [eax + ecx*8]
jmp 0x10009a98
cmp esi, dword [edi + 0x58]
jge 0x10009a9a
mov ecx, 0x3f2f
mov eax, ecx
sub eax, 0x3f2f
je 0x10009b27
sub eax, 0x4d
jne 0x10009b51
inc esi
jmp 0x10009b51
mov eax, dword [edi + 0x58]
imul eax, dword [esp + 0x1c]
add eax, esi
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x30]
mov eax, dword [eax]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x44]
fld qword [eax]
fmul st(3)
fadd qword [eax + 8]
fmul st(3)
fadd qword [eax + 0x10]
fmul qword [edx + esi*8]
faddp st(5)
add ecx, 0x4d
cmp ecx, 0x3f7c
jbe 0x10009b16
cmp esi, dword [edi + 0x58]
jl 0x10009b11
jmp 0x10009a9a
fstp st(5)
fld qword [edi + 0x38]
fst qword [esp + 0x58]
fxch st(5)
mov eax, dword [esp + 0x20]
add eax, 0x22
mov dword [esp + 0x20], eax
cmp eax, 0x2ab1
jbe 0x10009978
mov dword [esp + 8], esi
jmp 0x10009f12
mov dword [esp + 0x14], 0x66e6
mov eax, dword [esp + 0x14]
sub eax, 0x66e6
je 0x10009c09
sub eax, 0x3c
jne 0x10009bf2
fstp st(1)
push eax
mov eax, dword [edi + 0x3c]
fstp st(3)
fstp st(0)
push eax
fstp st(1)
lea ecx, [edi + 4]
fstp st(1)
push ecx
fstp st(0)
call fcn.100061b0
fld qword [esp + 0x5c]
add esp, 0xc
fld qword [esp + 0x60]
mov dword [edi + 0x3c], 0
fld qword [esp + 0x68]
fld qword [esp + 0x70]
fld qword [esp + 0x78]
fld qword [esp + 0x58]
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(1)
mov eax, dword [esp + 0x14]
add eax, 0x3c
mov dword [esp + 0x14], eax
cmp eax, 0x6722
jbe 0x10009b98
jmp 0x10009f12
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], 0
cmp dword [edi + 0x3c], edx
jge 0x10009bf2
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], 7
mov edx, dword [esp + 0x2c]
cmp eax, 0x60
ja case.0x10009c38.1
movzx eax, byte [eax + 0x10009f74]
jmp dword [eax*4 + 0x10009f54]
fstp st(1)
fldz
fxch st(1)
mov eax, dword [esp + 0x20]
add eax, 0x10
mov ecx, 1
sub dword [esp + 0x30], ecx
mov dword [esp + 0x20], eax
jne 0x10009c28
add dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x40]
add dword [edi + 0x38], ecx
mov edx, dword [edi + 0x44]
adc dword [edi + 0x3c], edx
mov eax, dword [edi + 0x3c]
cmp eax, dword [esp + 0x10]
jl 0x10009c1a
mov esi, dword [esp + 8]
fst qword [esp + 0x50]
fxch st(1)
fst qword [esp + 0x60]
jmp 0x10009bf0
mov ecx, dword [edi + 0x3c]
mov edx, dword [esp + 0x24]
lea eax, [edx + ecx*8]
mov dword [esp + 0x48], eax
jmp case.0x10009c38.1
mov esi, dword [edi + 0x58]
xor ecx, ecx
test esi, esi
jle case.0x10009c38.1
mov edx, 0x7176
mov eax, edx
sub eax, 0x7176
je 0x10009cb6
sub eax, 0x59
jne 0x10009ce1
inc ecx
jmp 0x10009ce1
mov eax, esi
imul eax, ebx
mov ebx, dword [edi + 0x30]
mov ebx, dword [ebx]
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
mov ebx, dword [esp + 0x18]
fld qword [eax]
fmul st(1)
fadd qword [eax + 8]
fmul st(1)
fadd qword [eax + 0x10]
mov eax, dword [esp + 0x48]
fmul qword [eax + ecx*8]
faddp st(2)
add edx, 0x59
cmp edx, 0x71cf
jbe 0x10009ca5
cmp ecx, esi
jl 0x10009ca0
jmp case.0x10009c38.1
mov ecx, dword [edi + 0x5c]
fstp st(0)
shl edx, cl
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
test edx, edx
jns 0x10009d0e
fadd qword [0x10039428]
fmul qword [0x100394a0]
jmp case.0x10009c38.1
mov ecx, 0x20
sub ecx, dword [edi + 0x5c]
mov ebx, edx
shr ebx, cl
mov dword [esp + 0x18], ebx
jmp case.0x10009c38.1
mov ecx, dword [esp + 0x28]
fxch st(1)
mov edx, dword [esp + 0xc]
fst qword [ecx + edx*8]
jmp 0x10009c43
mov eax, dword [edi + 0x38]
mov dword [esp + 0x2c], eax
jmp case.0x10009c38.1
mov eax, ecx
sub eax, 0x295f
je 0x10009ecc
sub eax, 0x11e7
je 0x10009ea1
sub eax, 0x28
jne 0x10009f12
mov eax, dword [edi]
cmp eax, 4
jle 0x10009e80
mov ecx, dword [ebp + 0xc]
cmp dword [ecx], 0
jl 0x10009dfe
mov eax, 0x7397
mov dword [esp + 0x30], eax
cmp eax, eax
jne 0x10009deb
mov edx, dword [edi]
fstp st(1)
mov ecx, dword [ebp + 0x10]
fstp st(3)
mov esi, dword [ebp + 0x14]
fstp st(0)
fstp st(1)
add ecx, 8
fstp st(1)
push edx
fstp st(0)
call fcn.100241f0
mov eax, dword [edi]
add esp, 4
push eax
mov eax, dword [ebp + 8]
mov edx, esi
call fcn.10005d00
fld qword [esp + 0x54]
fld qword [esp + 0x64]
mov eax, dword [esp + 0x34]
fld qword [esp + 0x6c]
mov esi, dword [esp + 0xc]
fld qword [esp + 0x74]
add esp, 4
fld qword [esp + 0x78]
fld qword [esp + 0x58]
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(1)
add eax, 0x47
mov dword [esp + 0x30], eax
cmp eax, 0x7397
jbe 0x10009d8b
jmp 0x10009f12
mov eax, 0x7626
mov dword [esp + 0x30], eax
cmp eax, eax
jne 0x10009e6d
mov ecx, dword [edi]
fstp st(1)
mov eax, dword [ebp + 0x10]
fstp st(3)
mov esi, dword [ebp + 0x14]
fstp st(0)
fstp st(1)
add eax, 8
fstp st(1)
push ecx
mov ebx, esi
fstp st(0)
call fcn.10005d20
mov edx, dword [edi]
mov ecx, dword [ebp + 8]
add esp, 4
push edx
call fcn.1001c6c0
fld qword [esp + 0x54]
fld qword [esp + 0x64]
mov eax, dword [esp + 0x34]
fld qword [esp + 0x6c]
mov ebx, dword [esp + 0x1c]
fld qword [esp + 0x74]
mov esi, dword [esp + 0xc]
fld qword [esp + 0x7c]
add esp, 4
fld qword [esp + 0x58]
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(1)
add eax, 6
mov dword [esp + 0x30], eax
cmp eax, 0x7626
jbe 0x10009e09
jmp 0x10009f12
jne 0x10009f12
mov eax, dword [ebp + 8]
fstp st(1)
mov edx, dword [ebp + 0x14]
fstp st(3)
fstp st(0)
push 4
fstp st(1)
fstp st(1)
fstp st(0)
call fcn.10005d00
jmp 0x10009ee9
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edi]
add edx, edx
add edx, edx
cmp eax, edx
jle 0x10009f12
mov edx, dword [ebp + 8]
fstp st(1)
fstp st(3)
sar eax, 2
fstp st(0)
push eax
fstp st(1)
mov eax, ecx
fstp st(1)
fstp st(0)
call fcn.10022b70
jmp 0x10009ee9
mov eax, dword [esp + 0x3c]
fstp st(1)
sub eax, dword [esp + 0xc]
fstp st(3)
fstp st(0)
fstp st(1)
push eax
mov eax, dword [ebp + 0xc]
fstp st(1)
fstp st(0)
call fcn.10018780
add esp, 4
fld qword [esp + 0x50]
fld qword [esp + 0x60]
fld qword [esp + 0x68]
fld qword [esp + 0x70]
fld qword [esp + 0x78]
fld qword [esp + 0x58]
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(1)
mov ecx, dword [esp + 0x40]
add ecx, 0x28
mov dword [esp + 0x40], ecx
cmp ecx, dword [esp + 0x4c]
jbe 0x10009863
fstp st(1)
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x50]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(1)
pop esi
fstp st(3)
mov eax, 0x100440d8
fstp st(0)
pop ebx
fstp st(1)
fstp st(1)
fstp st(0)
mov esp, ebp
pop ebp
ret