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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x90]
fldz
mov ecx, dword [eax + 0x24]
fst dword [esp + 8]
mov eax, dword [esp + 0x5c]
fstp dword [esp + 0xc]
push ebx
push esi
mov esi, dword [esp + 0x88]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x7c]
push edi
mov edi, 1
shl edi, cl
mov ecx, dword [esp + 0x6c]
add esi, 3
sar esi, 2
lea edx, [edi + edi]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x74]
xor ebx, ebx
cmp esi, ebx
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], ebx
jle 0x10004165
push ebp
mov dword [esp + 0x6c], ebx
lea eax, [esi - 1]
cmp ebx, eax
jge 0x10003f05
mov dword [esp + 0x78], 4
jmp 0x10003f1c
mov eax, dword [esp + 0x90]
lea ecx, [esi*4]
sub eax, ecx
add eax, 4
mov dword [esp + 0x78], eax
cmp dword [esp + 0x8c], 0
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x84], 0
jle 0x10004150
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x3c]
sub edi, dword [esp + 0x70]
mov esi, dword [esp + 0x30]
add edx, 8
mov dword [esp + 0x10], edx
mov ebx, 0x1c
sub ebx, dword [esp + 0x6c]
mov edx, 0xfffffffc
add ebp, 4
sub edx, dword [esp + 0x70]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x40], edx
jmp 0x10003f7c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [edx]
mov dword [esp + 0x24], eax
mov eax, dword [edi + ebp]
mov dword [esp + 0x20], ecx
mov ecx, ebx
shr eax, cl
and eax, 0xf
mov dword [esp + 0x28], eax
je 0x1000411e
mov edx, dword [ebp]
shr edx, cl
xor ecx, ecx
mov dword [esp + 0x74], ecx
and edx, 0xf
cmp dword [esp + 0x78], ecx
mov dword [esp + 0x2c], edx
jle 0x1000411e
mov esi, dword [esp + 0x40]
lea edi, [esi + ebp]
mov esi, dword [esp + 0x6c]
lea esp, [esp]
cmp byte [ecx + eax*4 + 0x1009b118], 0
je 0x100040fe
cmp byte [ecx + edx*4 + 0x1009b118], 0
je 0x10003fef
mov eax, 0x10
jmp 0x10004047
mov edx, dword [esi*4 + section..data]
mov ecx, dword [esi*4 + 0x1009b080]
mov eax, edx
and eax, dword [esp + 0x44]
mov ebx, edx
and ebx, dword [esp + 0x20]
and edx, dword [esp + 0x24]
shr eax, cl
shr ebx, cl
shr edx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, ebx
add eax, eax
add eax, eax
add eax, eax
or eax, edx
cmp esi, 0x1f
jne 0x1000402a
add eax, eax
mov edx, dword [esp + 0x7c]
xor ecx, ecx
cmp dword [edx + eax*4], ecx
mov edx, 0x80000000
setne cl
add ecx, 0xe
mov eax, ecx
mov ecx, esi
shr edx, cl
or dword [ebp], edx
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + esi*4]
mov ecx, dword [esp + 0x84]
fld qword [edx + ecx*8]
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + esi*4]
fstp dword [esp + 0x48]
mov edx, dword [esp + 0x14]
fld dword [esp + 0x48]
add dword [0x1009fa24], 1
fadd dword [esp + 0x18]
test dword [edi + ecx], edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 4]
fstp dword [esp + 0x18]
mov ecx, dword [ecx]
setne bl
add edx, eax
push edx
add ecx, eax
mov byte [esp + 0x54], bl
mov edx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
call fcn.10003160
mov eax, dword [esp + 0x54]
mov edx, 0x80000000
mov ecx, esi
shr edx, cl
or dword [edi + eax + 4], edx
test bl, bl
je 0x100040f2
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x84]
fld qword [ecx + edx*8]
add dword [0x1009fa28], 1
lea eax, [ecx + edx*8]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x14]
fsubr qword [eax]
fstp qword [eax]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
add ecx, 1
add esi, 1
cmp ecx, dword [esp + 0x78]
mov dword [esp + 0x74], ecx
jl 0x10003fd0
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x84]
add dword [esp + 0x10], 4
add eax, 1
add ebp, 4
cmp eax, dword [esp + 0x8c]
mov dword [esp + 0x84], eax
jl 0x10003f74
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x34]
add dword [esp + 0x6c], 4
add ebx, 1
cmp ebx, esi
mov dword [esp + 0x34], ebx
jl 0x10003ef4
pop ebp
mov eax, dword [0x1009fa28]
fld dword [esp + 0x14]
imul eax, edi
fld st(0)
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x34]
add edi, 0xffffffff
fisub dword [esp + 0x8c]
add eax, 0xffffffff
fstp dword [esp + 0x8c]
fld dword [esp + 0x8c]
mov dword [esp + 0x8c], edi
fimul dword [esp + 0x8c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x90]
fld dword [esp + 0x98]
pop edi
fld st(0)
pop esi
fmulp st(2)
pop ebx
fild dword [esp + 0x28]
fmul dword [esp + 0xc]
faddp st(2)
fild dword [esp + 0x80]
fmulp st(3)
fmulp st(2)
fsubrp st(1)
fsubr qword [eax]
fstp qword [eax]
add esp, 0x54
ret