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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov ecx, dword [ebp + 0x24]
fldz
mov edx, dword [ebp + 0x10]
fstp dword [esp + 0x24]
push ebx
mov eax, 1
shl eax, cl
push esi
mov esi, dword [edx + 8]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 8]
push edi
mov edi, dword [ebp + 0x30]
lea ecx, [eax + eax]
add edi, 3
mov dword [esp + 0x84], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0x40]
mov edx, dword [edx + 0x24]
sar edi, 2
xor ebx, ebx
test edi, edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], ebx
jle 0x10003e28
lea eax, [edi - 1]
cmp ebx, eax
jge 0x10003b21
mov dword [esp + 0x14], 4
jmp 0x10003b36
lea eax, [edi*4]
mov edx, eax
mov eax, dword [ebp + 0x30]
sub eax, edx
add eax, 4
mov dword [esp + 0x14], eax
cmp dword [ebp + 0x2c], 0
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x1c], 0
jle 0x10003e15
lea edi, [ebx*4]
mov ebx, 0x1c
sub ebx, edi
mov edi, dword [esp + 0x54]
sub edi, ecx
mov dword [esp + 0x6c], edi
mov edi, 4
sub edi, ecx
mov dword [esp + 0x5c], edi
sub esi, ecx
mov edi, 0xfffffffc
mov dword [esp + 0x58], ebx
lea ebx, [ecx + 4]
sub edi, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x64], edi
jmp 0x10003b9c
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov edi, dword [esi + ebx + 4]
mov ecx, dword [esp + 0x58]
mov esi, edx
shr esi, cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov dword [esp + 0x10], edx
and esi, 0xf
cmp esi, dword [ecx*4 + 0x1009b100]
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], esi
je 0x10003de7
or eax, edi
mov edi, dword [esp + 0x24]
or eax, edx
cmp edi, 7
mov dword [esp + 0x28], eax
je 0x10003bf8
add edi, edi
add edi, edi
mov ecx, 0x1b
sub ecx, edi
shr eax, cl
test al, 0x3f
je 0x10003de7
mov edi, dword [esp + 0x24]
jmp 0x10003c00
test al, 0x1f
je 0x10003de7
cmp dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
jle 0x10003de0
mov eax, dword [esp + 0x5c]
add eax, ebx
add edi, edi
mov dword [esp + 0x70], eax
add edi, edi
mov ecx, dword [esp + 0x18]
cmp byte [ecx + esi*4 + 0x1009b118], 0
jne 0x10003dca
mov eax, dword [edi*4 + section..data]
mov ecx, dword [esp + 0x28]
test ecx, eax
mov dword [esp + 0x3c], eax
je 0x10003dca
mov ecx, dword [edi*4 + 0x1009b080]
mov esi, eax
and esi, dword [esp + 0x60]
and eax, edx
mov edx, dword [esp + 0x3c]
and edx, dword [esp + 0x34]
shr esi, cl
shr eax, cl
shr edx, cl
add esi, esi
add esi, esi
add esi, esi
or esi, eax
add esi, esi
add esi, esi
add esi, esi
or esi, edx
cmp edi, 0x1f
jne 0x10003c7e
add esi, esi
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0xc]
lea eax, [edx + ebx]
mov edx, dword [ecx + edi*4]
mov ecx, dword [esp + 0x20]
test dword [eax + edx], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
setne byte [esp + 0x38]
add edx, eax
push edx
mov edx, dword [esp + 0x3c]
add ecx, eax
push ecx
mov ecx, dword [ebp + 0x40]
push edx
call fcn.10003160
mov ecx, edi
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x6c]
or dword [ecx + ebx], eax
cmp byte [esp + 0x38], 0
mov dword [esp + 0x78], eax
je 0x10003dc2
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + edx]
mov eax, dword [ebx - 4]
mov ebx, dword [ebx]
mov edx, dword [esp + 0x3c]
add dword [0x1009fa24], 1
mov dword [esp + 0x68], ecx
or ecx, ebx
or ecx, eax
test edx, ecx
je 0x10003d28
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x6c]
push edi
push edx
push esi
push ecx
push ebx
push eax
call fcn.10003a20
add esp, 0x1c
jmp 0x10003d32
and esi, 0xaa
mov dword [esp + 0x40], esi
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 8]
mov ebx, dword [esp + 0x74]
mov ebx, dword [esi + ebx + 4]
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x40]
mov eax, dword [edx + eax*4]
mov ecx, 0x1f
sub ecx, edi
shr ebx, cl
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx]
mov dl, al
shr eax, 1
add ecx, eax
add esi, eax
and bl, 1
movzx eax, bl
and dl, 1
xor al, dl
push esi
push ecx
mov ecx, dword [ebp + 0x40]
push eax
call fcn.10003160
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
or eax, ecx
or dword [esp + 0x28], eax
test bl, bl
mov dword [esp + 0x10], eax
je 0x10003d96
mov eax, dword [esp + 0x2c]
or dword [eax], ecx
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + edi*4]
mov eax, dword [esp + 0x1c]
fld qword [edx + eax*8]
mov ebx, dword [esp + 0x2c]
lea eax, [edx + eax*8]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x20]
fsubr qword [eax]
fstp qword [eax]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
add dword [esp + 0x18], 1
mov ecx, dword [esp + 0x14]
add edi, 1
cmp dword [esp + 0x18], ecx
jl 0x10003c21
mov eax, dword [esp + 0x4c]
mov dword [eax + ebx], edx
mov eax, dword [esp + 0x1c]
add eax, 1
add ebx, 4
cmp eax, dword [ebp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebx
jl 0x10003b90
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x20]
add ebx, 1
cmp ebx, edi
mov dword [esp + 0x24], ebx
jl 0x10003b10
mov ecx, dword [0x1009fa24]
fld dword [esp + 0x30]
imul ecx, eax
fld st(0)
mov dword [esp + 0x80], ecx
add eax, 0xffffffff
pop edi
fisub dword [esp + 0x7c]
pop esi
pop ebx
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
mov dword [esp + 0x74], eax
fimul dword [esp + 0x74]
mov eax, dword [ebp + 0x34]
fmul dword [ebp + 0x3c]
fild dword [esp + 0x78]
fmulp st(2)
faddp st(1)
fsubr qword [eax]
fstp qword [eax]
mov esp, ebp
pop ebp
ret