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

Disassembly:
sub esp, 0x64
mov eax, dword [esp + 0x6c]
push ebx
mov ecx, eax
add eax, 0xc
mov ebx, dword [esp + 0x6c]
push ebp
mov edx, dword [ecx]
push esi
mov dword [esp + 0x10], edx
push edi
mov edx, dword [ecx + 4]
mov edi, dword [ebx + 0xc74]
mov dword [esp + 0x18], edx
mov edx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
mov eax, dword [ebx + 0xc6c]
mov dword [esp + 0x28], edx
mov edx, dword [ebx + 0xc5c]
lea eax, [eax + edx*2]
lea eax, [eax + eax*2]
add eax, edi
lea ecx, [eax*8]
sub ecx, eax
xor eax, eax
mov al, byte [ecx*4 + 0x650cbd]
mov ecx, eax
lea eax, [ecx - 5]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
je 0x511885
add ecx, 5
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 1
jne 0x511885
lea ecx, [edx + edx*2]
test dword [ecx*8 + 0x652474], 0x20000
je 0x51181c
fld dword [0x634198]
mov dword [esp + 0x10], 0x42c80000
jmp 0x51182a
fld dword [0x644fc0]
mov dword [esp + 0x10], 0
lea ecx, [ebx + 0xbe4]
mov esi, 2
mov edx, 4
fcom dword [ecx]
fnstsw ax
test ah, 1
je 0x511847
fstp st(0)
fld dword [ecx]
fld dword [ecx]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x51185a
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
add ecx, 0xc
dec edx
jne 0x51183a
dec esi
jne 0x511835
fadd dword [0x634190]
fld dword [esp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x51188f
fld dword [esp + 0x24]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x511891
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
fstp st(0)
fld dword [esp + 0x10]
fsub dword [0x634190]
fld dword [esp + 0x18]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5118c1
fld dword [esp + 0x24]
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x5118c3
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
fstp st(0)
xor ebp, ebp
xor edi, edi
add ebx, 0xc1c
mov edx, 1
mov ecx, 0xc
mov esi, ebx
mov eax, dword [esp + 0x78]
fld dword [esi]
fcomp dword [edi + eax + 0xc10]
fnstsw ax
test ah, 1
je 0x5118f1
mov ebp, edx
mov edi, ecx
add ecx, 0xc
inc edx
add esi, 0xc
cmp ecx, 0x30
jl 0x5118d9
mov eax, dword [esp + 0x78]
lea ecx, [ebp + ebp*2]
fld dword [eax + 0xae8]
fsub dword [0x6341a0]
lea edx, [eax + ecx*4 + 0xc10]
mov ecx, dword [eax + ecx*4 + 0xc10]
mov dword [esp + 0x68], ecx
fld dword [esp + 0x68]
mov ecx, dword [edx + 4]
fcomp st(1)
mov dword [esp + 0x6c], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x70], edx
fnstsw ax
test ah, 0x41
jne 0x511944
fstp dword [esp + 0x68]
jmp 0x511946
fstp st(0)
xor ebp, ebp
mov edx, 1
xor edi, edi
mov ecx, 0xc
mov esi, ebx
mov ebx, dword [esp + 0x78]
fld dword [esi]
fcomp dword [edi + ebx + 0xc10]
fnstsw ax
test ah, 0x41
jne 0x51196e
mov ebp, edx
mov edi, ecx
add ecx, 0xc
inc edx
add esi, 0xc
cmp ecx, 0x30
jl 0x511956
fld dword [ebx + 0xae8]
fadd dword [0x6341a0]
lea eax, [ebp + ebp*2]
lea ecx, [ebx + eax*4 + 0xc10]
mov edx, dword [ebx + eax*4 + 0xc10]
mov dword [esp + 0x5c], edx
fld dword [esp + 0x5c]
mov eax, dword [ecx + 4]
fcomp st(1)
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x64], ecx
fnstsw ax
test ah, 1
je 0x5119bd
fstp dword [esp + 0x5c]
jmp 0x5119bf
fstp st(0)
fld dword [ebx + 0xd0c]
fst dword [esp + 0x64]
fstp dword [esp + 0x70]
call fcn.00401b54
mov ebx, dword [esp + 0x7c]
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x34]
push edx
push eax
call fcn.00403724
add eax, 0x4000
push eax
call fcn.004040cf
push 0
push 0
lea ecx, [esp + 0x4c]
push 0xc1200000
push ecx
call fcn.00403cba
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
lea eax, [esp + 0x48]
lea ecx, [esp + 0x48]
push eax
push ecx
mov dword [esp + 0x58], edx
call fcn.00404340
mov edi, 1
push edi
call fcn.00404106
lea edx, [esp + 0x54]
lea eax, [esp + 0x90]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.00401c80
fld dword [esp + 0x78]
fcomp dword [esp + 0x9c]
add esp, 0x34
fnstsw ax
test ah, 0x41
jne 0x511a65
mov edx, dword [esp + 0x68]
mov dword [esp + 0x44], edx
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x5c]
push eax
lea edx, [esp + 0x54]
push ecx
push edx
call fcn.00401c80
fld dword [esp + 0x5c]
fcomp dword [esp + 0x68]
add esp, 0xc
fnstsw ax
test ah, 1
je 0x511a93
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
mov ecx, 4
mov dword [eax], 0x3f800000
add eax, 0xc
dec ecx
jne 0x511a9c
mov ecx, dword [0xcdc76c]
push 3
push ecx
call fcn.00403ab2
add esp, 8
test eax, eax
je 0x511b28
push 0x40000000
call fcn.0040148d
lea edx, [esp + 0x24]
push 0
lea eax, [esp + 0x1c]
push edx
push eax
call fcn.00402392
lea ecx, [esp + 0x60]
push 0
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00402392
lea eax, [esp + 0x78]
push 0
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.00402392
lea edx, [esp + 0x90]
push 0
lea eax, [esp + 0x88]
push edx
push eax
call fcn.00402392
lea ecx, [esp + 0x78]
push 0
lea edx, [esp + 0xa0]
push ecx
push edx
call fcn.00402392
add esp, 0x40
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
sub esp, 0xc
mov dword [esp + 0x1c], edi
mov eax, esp
sub esp, 0xc
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
mov edx, esp
sub esp, 0xc
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [edx], eax
mov eax, dword [esp + 0x70]
mov dword [edx + 4], ecx
mov ecx, esp
sub esp, 0xc
mov dword [edx + 8], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov dword [ecx], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00403ce2
add esp, 0x30
test eax, eax
jne 0x511d0d
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
sub esp, 0xc
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x7c]
mov dword [edx + 4], ecx
mov ecx, esp
sub esp, 0xc
mov dword [edx + 8], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov dword [ecx], edx
mov edx, dword [esp + 0x7c]
mov dword [ecx + 4], eax
mov eax, esp
sub esp, 0xc
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 4], edx
mov edx, esp
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.00403ce2
add esp, 0x30
test eax, eax
jne 0x511d0d
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x88]
mov dword [ecx + 4], eax
mov eax, esp
sub esp, 0xc
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [eax], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 4], edx
mov edx, esp
sub esp, 0xc
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [edx], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [ecx], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
call fcn.00403ce2
add esp, 0x30
test eax, eax
jne 0x511d0d
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
sub esp, 0xc
mov eax, esp
sub esp, 0xc
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], edx
mov edx, esp
sub esp, 0xc
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [edx], eax
mov eax, dword [esp + 0x94]
mov dword [edx + 4], ecx
mov ecx, esp
sub esp, 0xc
mov dword [edx + 8], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov dword [ecx], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00403ce2
add esp, 0x30
test eax, eax
jne 0x511d0d
mov dword [esp + 0x10], eax
mov dword [esp + 0x7c], 0
mov ebp, edi
xor edx, edx
lea ecx, [esp + 0x4c]
fld dword [esp + 0x14]
fsub dword [ecx - 8]
fld dword [esp + 0x1c]
lea esi, [edx + 1]
fsub dword [ecx]
mov eax, esi
and eax, 3
lea eax, [eax + eax*2]
shl eax, 2
test edx, edx
fld dword [esp + eax + 0x44]
fsub dword [ecx - 8]
fld dword [esp + eax + 0x4c]
fsub dword [ecx]
fxch st(1)
fmul st(2)
fxch st(1)
fmul st(3)
fsubp st(1)
fstp st(2)
fstp st(0)
je 0x511daf
fcom dword [0x634198]
fnstsw ax
test ah, 0x41
jne 0x511d68
mov edx, edi
jmp 0x511d7c
fcom dword [0x634198]
fnstsw ax
test ah, 1
je 0x511d7a
or edx, 0xffffffff
jmp 0x511d7c
xor edx, edx
fld dword [esp + 0x7c]
fcomp dword [0x634198]
fnstsw ax
test ah, 0x41
jne 0x511d91
mov eax, edi
jmp 0x511da9
fld dword [esp + 0x7c]
fcomp dword [0x634198]
fnstsw ax
test ah, 1
je 0x511da7
or eax, 0xffffffff
jmp 0x511da9
xor eax, eax
cmp edx, eax
je 0x511daf
xor ebp, ebp
fstp dword [esp + 0x7c]
mov edx, esi
add ecx, 0xc
cmp edx, 4
jl 0x511d1d
mov dword [esp + 0x7c], 0
xor edx, edx
lea ecx, [esp + 0x4c]
fld dword [esp + 0x20]
fsub dword [ecx - 8]
fld dword [esp + 0x28]
lea esi, [edx + 1]
fsub dword [ecx]
mov eax, esi
and eax, 3
lea eax, [eax + eax*2]
shl eax, 2
test edx, edx
fld dword [esp + eax + 0x44]
fsub dword [ecx - 8]
fld dword [esp + eax + 0x4c]
fsub dword [ecx]
fxch st(1)
fmul st(2)
fxch st(1)
fmul st(3)
fsubp st(1)
fstp st(2)
fstp st(0)
je 0x511e67
fcom dword [0x634198]
fnstsw ax
test ah, 0x41
jne 0x511e1d
mov edx, 1
jmp 0x511e31
fcom dword [0x634198]
fnstsw ax
test ah, 1
je 0x511e2f
or edx, 0xffffffff
jmp 0x511e31
xor edx, edx
fld dword [esp + 0x7c]
fcomp dword [0x634198]
fnstsw ax
test ah, 0x41
jne 0x511e49
mov eax, 1
jmp 0x511e61
fld dword [esp + 0x7c]
fcomp dword [0x634198]
fnstsw ax
test ah, 1
je 0x511e5f
or eax, 0xffffffff
jmp 0x511e61
xor eax, eax
cmp edx, eax
je 0x511e67
xor edi, edi
fstp dword [esp + 0x7c]
mov edx, esi
add ecx, 0xc
cmp edx, 4
jl 0x511dcf
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x511e8d
test ebp, ebp
jne 0x511e8d
test edi, edi
je 0x511885
mov edx, dword [esp + 0x78]
mov eax, dword [ebx]
add edx, 0xc44
pop edi
pop esi
pop ebp
mov dword [edx], eax
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov eax, dword [ebx + 8]
pop ebx
mov dword [edx + 8], eax
mov eax, 1
add esp, 0x64
ret