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

Disassembly:
sub esp, 0x114
mov eax, dword [esp + 0x11c]
push ebx
push ebp
push esi
mov ebp, dword [eax + 4]
push edi
mov edi, ecx
cmp ebp, 0x24
mov dword [esp + 0x10], edi
jb 0x10003036
mov eax, dword [0x10057d1c]
jmp 0x1000304a
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
sub eax, ebp
shl eax, 5
add eax, ecx
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x10003512
mov edx, dword [edi]
push ebp
mov ecx, edi
call dword [edx + 0x20]
fcomp qword [0x1004a1f8]
fnstsw ax
test ah, 1
jne 0x10003512
cmp ebp, 0x24
jb 0x1000307d
mov eax, dword [0x10057d1c]
jmp 0x10003091
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
sub eax, ebp
shl eax, 5
add eax, ecx
mov eax, dword [eax + 0xdc]
push eax
call dword [0x10058d8c]
mov edx, dword [0x10059160]
lea ecx, [ebp - 1]
push ecx
mov ebx, eax
call dword [edx + 0x7c]
push eax
mov eax, dword [0x10059160]
call dword [eax + 0x10]
mov ecx, dword [0x10059160]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x28], esi
call dword [ecx + 0x40]
mov dword [esp + 0x18], eax
mov eax, dword [0x1005a934]
cmp eax, 3
jne 0x100030e2
lea edx, [esi + 8]
push edx
call fcn.100187f0
add esp, 4
mov eax, dword [edi]
add esi, 8
push esi
mov ecx, edi
call dword [eax + 0x40]
mov esi, eax
test esi, esi
mov dword [esp + 0x14], esi
je 0x10003512
lea ecx, [esp + 0xb4]
push ecx
push ebx
call fcn.10003520
mov eax, dword [esi]
add esp, 8
xor ebx, ebx
test eax, eax
jle 0x10003458
mov eax, dword [esp + 0x14]
lea edx, [ebx + ebx*2]
cmp ebp, 0x24
lea edi, [eax + edx*4 + 4]
jb 0x1000312f
mov eax, dword [0x10057d1c]
jmp 0x10003143
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
sub eax, ebp
shl eax, 5
add eax, ecx
lea ecx, [ebx + ebx*2 + 0x12]
lea esi, [eax + ecx*4]
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*2]
shl edx, 4
mov eax, dword [edx + ecx + 0xc]
mov dword [esi], eax
mov eax, dword [edi]
lea edx, [eax + eax*2]
shl edx, 4
mov eax, dword [edx + ecx + 0x1c]
mov dword [esi + 4], eax
mov eax, dword [edi]
lea edx, [eax + eax*2]
shl edx, 4
fld dword [edx + ecx + 0x2c]
fst dword [esp + 0x2c]
fstp dword [esi + 8]
mov eax, dword [edi + 4]
test eax, eax
je 0x100031f2
lea eax, [eax + eax*2]
push ecx
shl eax, 4
add eax, ecx
fld dword [eax + 0xc]
fld dword [eax + 0x1c]
fld dword [eax + 0x2c]
fsub dword [esp + 0x30]
fstp dword [esp]
push ecx
fsub dword [esi + 4]
fstp dword [esp]
push ecx
lea ecx, [esp + 0xe4]
fsub dword [esi]
fstp dword [esp]
call fcn.10005790
push eax
lea ecx, [esp + 0xac]
call fcn.100057b0
fld dword [esp + 0xa8]
fmul dword [edi + 8]
fadd dword [esi]
fstp dword [esi]
fld dword [esp + 0xac]
fmul dword [edi + 8]
fadd dword [esi + 4]
fstp dword [esi + 4]
fld dword [esp + 0xb0]
fmul dword [edi + 8]
fadd dword [esi + 8]
fstp dword [esi + 8]
fld dword [esp + 0xb4]
fadd dword [esi]
test ebx, ebx
fstp dword [esi]
fld dword [esp + 0xb8]
fadd dword [esi + 4]
fstp dword [esi + 4]
fld dword [esp + 0xbc]
fadd dword [esi + 8]
fstp dword [esi + 8]
jne 0x10003412
lea ecx, [esp + 0x48]
lea edx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x130]
lea eax, [esp + 0x7c]
push edx
add ecx, 0x1c
push eax
push ecx
call dword [0x10058d18]
mov edi, dword [esp + 0x20]
add esp, 0x10
lea edx, [esp + 0xc0]
lea ecx, [esp + 0x6c]
fld dword [edi + 0x90]
fld dword [esp + 0x48]
fmul st(1)
push edx
fstp dword [esp + 0xc4]
fld dword [esp + 0x50]
fmul st(1)
fstp dword [esp + 0xc8]
fld dword [esp + 0x54]
fmul st(1)
fstp dword [esp + 0xcc]
fstp st(0)
call fcn.100057b0
fld dword [edi + 0x98]
fld dword [esp + 0x60]
fmul st(1)
lea eax, [esp + 0x30]
lea ecx, [esp + 0x90]
push eax
fstp dword [esp + 0x34]
fld dword [esp + 0x68]
fmul st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x6c]
fmul st(1)
fstp dword [esp + 0x3c]
fstp st(0)
call fcn.100057b0
fld dword [edi + 0x94]
fld dword [esp + 0x78]
fmul st(1)
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x40]
fstp dword [esp + 0xd0]
fld dword [esp + 0x80]
fmul st(1)
fstp dword [esp + 0xd4]
fld dword [esp + 0x84]
fmul st(1)
fstp dword [esp + 0xd8]
fstp st(0)
call fcn.100057b0
fld dword [esp + 0x90]
fadd dword [esp + 0x3c]
lea edx, [esp + 0x54]
lea ecx, [esp + 0x84]
push edx
fstp dword [esp + 0x58]
fld dword [esp + 0x98]
fadd dword [esp + 0x44]
fstp dword [esp + 0x5c]
fld dword [esp + 0x9c]
fadd dword [esp + 0x48]
fstp dword [esp + 0x60]
call fcn.100057b0
fld dword [esp + 0x6c]
fadd dword [esp + 0x84]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x1c]
push eax
fstp dword [esp + 0xa0]
fld dword [esp + 0x74]
fadd dword [esp + 0x8c]
fstp dword [esp + 0xa4]
fld dword [esp + 0x78]
fadd dword [esp + 0x90]
fstp dword [esp + 0xa8]
call fcn.100057b0
cmp ebp, 0x24
jb 0x10003394
mov eax, dword [0x10057d1c]
jmp 0x100033a8
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
sub eax, ebp
shl eax, 5
add eax, ecx
fld dword [esp + 0x1c]
fadd dword [eax + 0x48]
cmp ebp, 0x24
fstp dword [eax + 0x48]
jb 0x100033be
mov eax, dword [0x10057d1c]
jmp 0x100033d2
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
sub eax, ebp
shl eax, 5
add eax, ecx
fld dword [esp + 0x20]
fadd dword [eax + 0x4c]
cmp ebp, 0x24
fstp dword [eax + 0x4c]
jb 0x100033f2
mov eax, dword [0x10057d1c]
fld dword [esp + 0x24]
fadd dword [eax + 0x50]
fstp dword [eax + 0x50]
jmp 0x10003416
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
fld dword [esp + 0x24]
sub eax, ebp
shl eax, 5
add eax, ecx
fadd dword [eax + 0x50]
fstp dword [eax + 0x50]
jmp 0x10003416
mov edi, dword [esp + 0x10]
mov eax, dword [0x1005a934]
cmp eax, 4
jne 0x1000342b
cmp ebx, dword [edi + 0x40]
je 0x10003435
push 1
push 0xffffffffffffffff
jmp 0x1000343c
cmp eax, 5
jne 0x10003447
cmp ebx, dword [edi + 0x40]
jne 0x10003447
push 2
push 0xff1111ff
push esi
mov ecx, 0x100567f0
call fcn.100025a0
mov ecx, dword [esp + 0x14]
inc ebx
cmp ebx, dword [ecx]
jl 0x10003118
mov edi, dword [esp + 0x10]
cmp dword [0x1005a934], 3
jl 0x100034e9
mov esi, dword [edi + 0x78]
test esi, esi
jl 0x100034e9
mov edi, dword [esp + 0x28]
cmp esi, dword [edi + 0x8c]
jge 0x100034e9
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*2]
shl edx, 4
add eax, edx
push 2
push 0xffffaaff
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], edx
push ecx
mov ecx, 0x100567f0
mov dword [esp + 0x30], eax
call fcn.100025a0
mov eax, dword [edi + 0x90]
lea edx, [esi*8]
sub edx, esi
shl edx, 4
add edx, eax
lea eax, [esp + 0xe4]
add edx, edi
push edx
push esi
push str._d:__s
push eax
call fcn.10038586
lea ecx, [esp + 0xf4]
push ecx
call fcn.10018770
add esp, 0x14
cmp ebp, 0x24
jb 0x100034f5
mov eax, dword [0x10057d1c]
jmp 0x10003509
mov ecx, dword [0x10057d1c]
lea eax, [ebp*8]
sub eax, ebp
shl eax, 5
add eax, ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov dword [eax + 0x44], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret 8