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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
mov edx, dword [ebp + 0x10]
push ebx
push esi
push edi
test edx, edx
je 0x40464e
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov ebx, edx
dec ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
je 0x403f48
dec ecx
je 0x403f50
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
mov dword [ebp + 0xc], esi
jmp 0x403f53
mov esi, dword [ebp + 8]
cmp edx, 0xa
jae 0x403f95
lea ecx, [edx*8]
mov edi, 0x7f6c90
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0xc]
lea ecx, [edx*8]
mov ebx, ecx
mov edi, 0x7f2050
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [esp + 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x403fb0
mov ecx, 0x14
mov edi, 0x7f6c90
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0xc]
mov ecx, 0x14
mov edi, 0x7f2050
rep movsd dword es:[edi], dword [esi]
test edx, edx
jle 0x4045ae
mov ecx, dword [0x7f1fe8]
mov edi, dword [0x7f1fe4]
jmp 0x403fce
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
sub ecx, edi
cmp ebx, ecx
jle 0x403fd6
mov ebx, ecx
cmp eax, 0xa
jge 0x403ffc
mov ecx, dword [0x8003b8]
lea edx, [ecx + eax*8]
mov ecx, dword [0x7f6c20]
lea esi, [ecx + eax*8]
mov ecx, 0xa
sub ecx, eax
cmp ebx, ecx
jle 0x404008
mov ebx, ecx
jmp 0x404008
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
lea edx, [edx + eax*8]
lea esi, [ecx + eax*8]
mov ecx, dword [0x7f6c18]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 0x4172a0]
mov eax, dword [0x7f6c1c]
push ecx
push ebx
lea ecx, [eax + edi*8]
push ecx
push edx
call fcn.00404660
mov ecx, dword [0x7f6c18]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [0x7f1fe4]
lea edx, [eax + eax*2]
lea eax, [edx*8 + 0x4172a0]
mov edx, dword [0x7f1fe0]
push eax
push ebx
lea eax, [edx + ecx*8]
push eax
push esi
call fcn.00404660
mov esi, dword [0x7f6c18]
mov edi, dword [0x7f1fe4]
mov edx, dword [0x7f1fec]
add esp, 0x20
lea ecx, [esi + esi*4]
test ebx, ebx
lea eax, [ecx*8 + 0x417888]
lea ecx, [edx + edi*8]
mov edx, dword [0x7f6c1c]
lea edx, [edx + edi*8]
je 0x4040d0
lea esi, [ebx]
fld qword [eax]
fmul qword [edx]
fld qword [ecx - 8]
fmul qword [eax + 8]
add ecx, 8
add edx, 8
dec esi
fsubp st(1)
fld qword [edx - 0x10]
fmul qword [eax + 0x10]
faddp st(1)
fld qword [ecx - 0x18]
fmul qword [eax + 0x18]
fsubp st(1)
fld qword [edx - 0x18]
fmul qword [eax + 0x20]
faddp st(1)
fstp qword [ecx - 8]
jne 0x404094
mov edi, dword [0x7f1fe4]
mov esi, dword [0x7f6c18]
mov ecx, dword [0x7f6ce0]
mov edx, dword [0x7f1fe0]
lea eax, [esi + esi*4]
test ebx, ebx
lea eax, [eax*8 + 0x417888]
lea ecx, [ecx + edi*8]
lea edx, [edx + edi*8]
je 0x404128
lea esi, [ebx]
fld qword [edx]
fmul qword [eax]
fld qword [ecx - 8]
fmul qword [eax + 8]
add ecx, 8
add edx, 8
dec esi
fsubp st(1)
fld qword [edx - 0x10]
fmul qword [eax + 0x10]
faddp st(1)
fld qword [ecx - 0x18]
fmul qword [eax + 0x18]
fsubp st(1)
fld qword [edx - 0x18]
fmul qword [eax + 0x20]
faddp st(1)
fstp qword [ecx - 8]
jne 0x4040f2
mov edi, dword [0x7f1fe4]
mov eax, dword [0x7f1fec]
mov edx, dword [0x7f6ce0]
lea ecx, [eax + edi*8]
mov eax, ebx
and eax, 0x8000000f
lea esi, [edx + edi*8]
jns 0x404147
dec eax
or eax, 0xfffffff0
inc eax
mov edx, eax
dec eax
test edx, edx
je 0x404181
inc eax
fld qword [ecx]
fld st(0)
fmul st(1)
add ecx, 8
add esi, 8
dec eax
fadd qword [0x7f20a0]
fstp qword [0x7f20a0]
fstp st(0)
fld qword [esi - 8]
fld st(0)
fmul st(1)
fadd qword [0x7fb858]
fstp qword [0x7fb858]
fstp st(0)
jne 0x40414f
mov eax, ebx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov edx, eax
dec eax
test edx, edx
je 0x404481
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x30]
mov edx, dword [ecx + 0x34]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x6c], edx
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x40]
mov dword [esp + 0x1c], edx
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 0x4c]
fld qword [ecx]
mov dword [esp + 0x98], eax
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x9c], edx
mov edx, dword [ecx + 0x54]
fld qword [ecx + 8]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x58]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 0x5c]
fld qword [ecx + 0x10]
fld qword [ecx + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x7c], edx
mov edx, dword [ecx + 0x64]
fld qword [ecx + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x3c], edx
mov edx, dword [ecx + 0x6c]
fld qword [ecx + 0x28]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0x70]
mov dword [esp + 0xac], edx
mov edx, dword [ecx + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x78]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
fld qword [esp + 0x88]
fmul qword [esp + 0x88]
fld qword [esp + 0x28]
fmul qword [esp + 0x28]
faddp st(1)
fld qword [esp + 0xa8]
fmul qword [esp + 0xa8]
faddp st(1)
fld qword [esp + 0x38]
fmul qword [esp + 0x38]
faddp st(1)
fld qword [esp + 0x78]
fmul qword [esp + 0x78]
faddp st(1)
fld qword [esp + 0x48]
fmul qword [esp + 0x48]
faddp st(1)
fld qword [esp + 0x98]
fmul qword [esp + 0x98]
faddp st(1)
fld qword [esp + 0x58]
fmul qword [esp + 0x58]
faddp st(1)
fld qword [esp + 0x18]
fmul qword [esp + 0x18]
faddp st(1)
fld qword [esp + 0x68]
fmul qword [esp + 0x68]
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
add ecx, 0x80
faddp st(1)
fld st(4)
fmul st(5)
faddp st(1)
fld st(5)
fmul st(6)
faddp st(1)
fld st(6)
fmul st(7)
faddp st(1)
fadd qword [0x7f20a0]
fstp qword [0x7f20a0]
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0xb4], edx
mov edx, dword [esi + 0x3c]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0xa4], edx
mov edx, dword [esi + 0x44]
fstp st(0)
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x94], edx
mov edx, dword [esi + 0x4c]
fstp st(0)
fstp st(0)
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x50]
mov dword [esp + 0x84], edx
mov edx, dword [esi + 0x54]
fstp st(0)
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x58]
mov dword [esp + 0x74], edx
mov edx, dword [esi + 0x5c]
fstp st(0)
fstp st(0)
fld qword [esi]
fld qword [esi + 8]
fld qword [esi + 0x10]
fld qword [esi + 0x18]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x60]
mov dword [esp + 0x64], edx
mov edx, dword [esi + 0x64]
fld qword [esi + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x68]
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x6c]
fld qword [esi + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x70]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x74]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x34], edx
mov edx, dword [esi + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
fld qword [esp + 0x20]
fmul qword [esp + 0x20]
fld qword [esp + 0x30]
fmul qword [esp + 0x30]
faddp st(1)
fld qword [esp + 0x40]
fmul qword [esp + 0x40]
faddp st(1)
fld qword [esp + 0x50]
fmul qword [esp + 0x50]
faddp st(1)
fld qword [esp + 0x60]
fmul qword [esp + 0x60]
faddp st(1)
fld qword [esp + 0x70]
fmul qword [esp + 0x70]
mov eax, dword [esp + 0x14]
add esi, 0x80
dec eax
faddp st(1)
fld qword [esp + 0x80]
fmul qword [esp + 0x80]
mov dword [esp + 0x14], eax
faddp st(1)
fld qword [esp + 0x90]
fmul qword [esp + 0x90]
faddp st(1)
fld qword [esp + 0xa0]
fmul qword [esp + 0xa0]
faddp st(1)
fld qword [esp + 0xb0]
fmul qword [esp + 0xb0]
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld st(4)
fmul st(5)
faddp st(1)
fld st(5)
fmul st(6)
faddp st(1)
fld st(6)
fmul st(7)
faddp st(1)
fadd qword [0x7fb858]
fstp qword [0x7fb858]
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jne 0x40419c
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [0x7f1fe8]
add edi, ebx
sub esi, ebx
add edx, ebx
cmp edi, ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov dword [0x7f1fe4], edi
jne 0x404599
fld qword [0x7fb858]
fadd qword [0x7f20a0]
fidiv dword [0x7f1fe4]
fmul qword [0x417a08]
fadd qword [0x417a00]
fldlg2
fxch st(1)
fyl2x
fmul qword [0x4179f8]
call fcn.0040e410
test eax, eax
jge 0x4044e2
xor eax, eax
jmp 0x4044ee
cmp eax, 0x2ee0
jl 0x4044ee
mov eax, 0x2edf
mov ebx, dword [eax*4 + 0x41eba4]
push 0x50
inc ebx
mov dword [0x7fb858], 0
mov dword [eax*4 + 0x41eba4], ebx
lea eax, [edi*8 + 0x8003c0]
push eax
push 0x8003c0
mov dword [0x7fb85c], 0
mov dword [0x7f20a0], 0
mov dword [0x7f20a4], 0
call fcn.0040e440
mov ecx, dword [0x7f1fe4]
push 0x50
lea edx, [ecx*8 + 0x7f6d00]
push edx
push 0x7f6d00
call fcn.0040e440
mov eax, dword [0x7f1fe4]
push 0x50
lea ecx, [eax*8 + 0x7f20c0]
push ecx
push 0x7f20c0
call fcn.0040e440
mov edx, dword [0x7f1fe4]
push 0x50
lea eax, [edx*8 + 0x7fb860]
push eax
push 0x7fb860
call fcn.0040e440
mov ecx, dword [0x7f1fe8]
xor edi, edi
add esp, 0x30
mov dword [0x7f1fe4], edi
cmp edi, ecx
jg 0x403f3f
mov eax, dword [esp + 0xc]
test eax, eax
jg 0x403fc6
mov edx, dword [ebp + 0x10]
cmp edx, 0xa
jae 0x404628
lea ebx, [edx*8]
mov esi, 0x50
sub esi, ebx
lea ecx, [ebx + 0x7f6c40]
push esi
push ecx
push 0x7f6c40
call fcn.0040e440
lea edx, [ebx + 0x7f2000]
push esi
push edx
push 0x7f2000
call fcn.0040e440
mov esi, dword [ebp + 8]
mov ecx, ebx
mov edi, 0x7f6c90
mov eax, ecx
sub edi, ebx
add esp, 0x18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0xc]
mov ecx, ebx
mov edi, 0x7f2050
mov edx, ecx
sub edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov ecx, 0x14
mov edi, 0x7f6c40
lea esi, [eax + edx*8 - 0x50]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xc]
mov edi, 0x7f2000
lea esi, [ecx + edx*8 - 0x50]
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret