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

Disassembly:
mov al, byte [0xd99608]
test al, al
jns 0x513d5e
jmp 0x525840
ret
sub esp, 0x7c
push ebx
mov ebx, dword [0xd9aec0]
test ebx, ebx
je 0x526468
test byte [ebx], 2
je 0x526468
mov eax, dword [0xe74e18]
mov dword [esp + 0xc], eax
fld dword [esp + 0xc]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jp 0x52587d
mov dword [esp + 0xc], 0x38d1b717
fld dword [esp + 0xc]
mov edx, dword [0xe74e08]
fmul dword [esp + 0xc]
mov eax, dword [0xe74e0c]
mov dword [esp + 0x4c], edx
mov ecx, dword [0xe74e04]
fadd dword [0x87076c]
push ebp
mov dword [esp + 0x54], eax
fsqrt
mov al, 0xff
push esi
mov byte [esp + 0x1b], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x19], al
mov byte [esp + 0x18], al
mov byte [esp + 0x23], al
mov byte [esp + 0x22], al
mov byte [esp + 0x21], al
mov byte [esp + 0x20], al
mov esi, dword [ebx + 8]
mov al, byte [esi + 0xc]
or ebp, 0xffffffff
test al, 1
push edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], 0
fdivr dword [0x87076c]
fsubr dword [0x87076c]
fdivr dword [0x870774]
fstp dword [esp + 0x2c]
fld dword [esp + 0x58]
fchs
fstp dword [esp + 0x58]
fld dword [0x879dc4]
fld dword [0xe74de0]
fmul dword [0x886824]
fstp dword [esp + 0x60]
fld dword [0xe74de4]
fchs
fmul dword [0x886824]
fstp dword [esp + 0x64]
fld dword [0xe74de8]
fmul dword [0x886824]
fstp dword [esp + 0x68]
je 0x525962
fld dword [esp + 0x60]
fadd dword [0x8cb0f4]
fstp dword [esi]
fld dword [esp + 0x64]
fadd dword [0x886044]
fstp dword [esi + 4]
fld dword [esp + 0x68]
fadd dword [0x8cb0f0]
fstp dword [esi + 8]
xor edi, edi
cmp word [ebx + 4], di
jbe 0x525ba9
mov edi, edi
fld dword [esi]
fsub dword [esp + 0x60]
fstp dword [esp + 0x30]
fld dword [esi + 4]
fsub dword [esp + 0x64]
fstp dword [esp + 0x34]
fld dword [esi + 8]
fsub dword [esp + 0x68]
fst dword [esp + 0x38]
fmul dword [esp + 0x5c]
fld dword [esp + 0x34]
fmul dword [esp + 0x58]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x54]
faddp st(1)
fcom dword [0x88603c]
fnstsw ax
test ah, 0x41
jne 0x525a19
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
fld dword [esp + 0x34]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
faddp st(1)
fsqrt
fdivr dword [0x87076c]
fst dword [esp + 0x20]
fmul dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [esp + 0x20]
fmul dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0x20]
fmul st(1)
fsubr dword [0x87076c]
fmul dword [esp + 0x2c]
fsubr dword [0x87076c]
fstp dword [esp + 0x14]
jmp 0x525a21
mov dword [esp + 0x14], 0
test edi, edi
fstp st(0)
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x14], ecx
jne 0x525a74
mov al, byte [esi + 0xc]
fstp st(0)
test al, 1
fld dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [esp + 0x28], 0x3dcccccd
je 0x525a5c
fcomp dword [0x873814]
fnstsw ax
test ah, 1
jne 0x525b99
xor ebp, ebp
jmp 0x525ab3
fcomp dword [0x8cb0ec]
fnstsw ax
test ah, 1
jne 0x525b99
xor ebp, ebp
jmp 0x525b1e
fld dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x525b99
fld dword [esp + 0x14]
mov al, byte [esi + 0xc]
test al, 1
fsub st(1)
fstp dword [esp + 0x28]
fstp st(0)
fld dword [esp + 0x14]
fld dword [esp + 0x14]
je 0x525b0f
fcomp dword [0x873814]
fnstsw ax
test ah, 1
jne 0x525b99
mov ebp, edi
fld dword [esp + 0x54]
fsub dword [esp + 0x30]
fld dword [esp + 0x58]
fsub dword [esp + 0x34]
fld dword [esp + 0x5c]
fsub dword [esp + 0x38]
fstp dword [esp + 0x50]
fld dword [0x870780]
fdiv dword [esp + 0x20]
fst dword [esp + 0x10]
fmul st(2)
fstp dword [esp + 0x48]
fld dword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x4c]
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fmul dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x14]
fsub dword [0x873814]
fmul dword [0x8cb0c0]
jmp 0x525b78
fcomp dword [0x8cb0ec]
fnstsw ax
test ah, 1
jne 0x525b99
mov ebp, edi
fld dword [esp + 0x54]
fsub dword [esp + 0x30]
fld dword [esp + 0x58]
fsub dword [esp + 0x34]
fld dword [esp + 0x5c]
fsub dword [esp + 0x38]
fstp dword [esp + 0x50]
fld dword [0x870780]
fdiv dword [esp + 0x20]
fst dword [esp + 0x10]
fmul st(2)
fstp dword [esp + 0x48]
fld dword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x4c]
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fmul dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x14]
fsub dword [0x8cb0ec]
fmul dword [0x8cb0e8]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
call fcn.0043bd30
mov byte [esp + 0x1f], al
movzx edx, word [ebx + 4]
inc edi
add esi, 0x18
cmp edi, edx
jl 0x525970
fld dword [esp + 0x28]
fmul dword [0x88515c]
fcom dword [0x87076c]
fnstsw ax
test ah, 0x41
jne 0x525bc8
fstp st(0)
fld dword [0x87076c]
movzx eax, byte [esp + 0x1f]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fmul st(1)
call fcn.0043bd30
fstp st(0)
fcomp dword [0x87d4bc]
mov byte [esp + 0x1f], al
fnstsw ax
test ah, 5
jnp 0x526465
call fcn.00865870
push 0x2000
call fcn.00516210
call fcn.00516280
push 0
push 0x48
call fcn.00517300
call fcn.00517340
push 1
call fcn.005173c0
add esp, 0x10
call fcn.005162b0
fld dword [esp + 0x18]
fcomp dword [0x8cb03c]
mov ecx, dword [0xd9aec0]
mov esi, dword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x525c4e
fld dword [esp + 0x18]
fmul dword [0x8cb0e4]
fstp dword [esp + 0x14]
jmp 0x525c56
mov dword [esp + 0x14], 0x3c9374bd
xor edi, edi
cmp word [ecx + 4], di
jbe 0x525d65
mov ebx, 0x909810
jmp 0x525c70
fld dword [esi + 0x10]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x44
jnp 0x525d4f
fld dword [esi + 0x14]
fcomp dword [0x87d4bc]
fnstsw ax
test ah, 5
jnp 0x525d4f
fld dword [esi + 0x14]
fcomp dword [0x8cb03c]
fnstsw ax
test ah, 5
jp 0x525cb9
fld dword [esi + 0x14]
fsub dword [0x87d4bc]
fmul dword [0x88515c]
jmp 0x525cbf
fld dword [0x87076c]
fmul dword [0x8cb0e0]
call fcn.0043bd30
fld dword [esp + 0x14]
mov byte [esp + 0x27], al
mov ecx, esi
mov edx, dword [ecx]
mov dword [esp + 0x6c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x70], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x74], ecx
fmul dword [esi + 0x10]
lea edx, [esp + 0x24]
mov dword [esp + 0x84], 1
fst dword [esp + 0x78]
mov dword [esp + 0x88], edx
fstp dword [esp + 0x7c]
mov al, byte [esi + 0xc]
test al, 1
je 0x525d31
push 0x2af8
call fcn.00517370
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x88], 0x909830
call fcn.00516810
jmp 0x525d4c
push 0x2b01
call fcn.00517370
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x88], ebx
call fcn.00516630
add esp, 8
mov edx, dword [0xd9aec0]
movzx eax, word [edx + 4]
inc edi
add esi, 0x18
cmp edi, eax
jl 0x525c70
call fcn.00516260
mov eax, dword [0xd9aec0]
cmp word [eax + 6], 1
jne 0x526459
cmp ebp, 0xffffffff
je 0x526459
fld dword [esp + 0x18]
mov edx, dword [eax + 8]
fcomp dword [0x87076c]
lea ecx, [ebp + ebp*2]
lea esi, [edx + ecx*8]
fnstsw ax
test ah, 5
jp 0x525dc6
fld dword [esp + 0x3c]
fmul dword [0x8cb0b0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul dword [0x8cb0b0]
fstp dword [esp + 0x40]
fld dword [esp + 0x44]
fmul dword [0x8cb0b0]
jmp 0x525de8
fld dword [esp + 0x18]
fmul dword [0x8cb0b0]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul st(1)
fstp dword [esp + 0x40]
fmul dword [esp + 0x44]
push 0x1000
fstp dword [esp + 0x48]
call fcn.00516210
call fcn.005162b0
push 0x2afe
call fcn.00517370
fld dword [esp + 0x44]
fmul dword [0x8cb0dc]
fld dword [esp + 0x48]
fmul dword [0x8cb0dc]
fld dword [esp + 0x4c]
fmul dword [0x8cb0dc]
fstp dword [esp + 0x40]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fadd dword [esi + 4]
fstp dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
fld dword [esp + 0x40]
fadd dword [esi + 8]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x74]
fstp dword [esp + 0x40]
mov edx, dword [esp + 0x40]
fld dword [esp + 0x20]
lea eax, [esp + 0x24]
fmul dword [0x88515c]
push ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x94], eax
fst dword [esp + 0x84]
mov dword [esp + 0x8c], 0x909878
fst dword [esp + 0x38]
fst dword [esp + 0x20]
fstp dword [esp + 0x88]
call fcn.00516630
fld dword [esp + 0x48]
fmul dword [0x8cb0d8]
fld dword [esp + 0x4c]
fmul dword [0x8cb0d8]
fld dword [esp + 0x50]
fmul dword [0x8cb0d8]
fstp dword [esp + 0x44]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
fadd dword [esi + 4]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
fld dword [esp + 0x44]
fadd dword [esi + 8]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x78]
push edx
fstp dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
fld dword [esp + 0x24]
mov dword [esp + 0x80], eax
fmul dword [0x870770]
mov dword [esp + 0x84], ecx
fst dword [esp + 0x88]
fst dword [esp + 0x24]
fstp dword [esp + 0x8c]
call fcn.00516630
fld dword [esp + 0x4c]
fmul dword [0x8cb03c]
fld dword [esp + 0x50]
fmul dword [0x8cb03c]
fld dword [esp + 0x54]
fmul dword [0x8cb03c]
fstp dword [esp + 0x48]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x40]
fadd dword [esi + 4]
fstp dword [esp + 0x44]
fld dword [esp + 0x48]
fadd dword [esi + 8]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
fstp dword [esp + 0x48]
mov edx, dword [esp + 0x48]
fld dword [esp + 0x24]
lea eax, [esp + 0x7c]
fmul dword [0x870774]
push eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
fst dword [esp + 0x8c]
fstp dword [esp + 0x90]
call fcn.00516630
fld dword [esp + 0x50]
fmul dword [0x870774]
fld dword [esp + 0x54]
fmul dword [0x870774]
fld dword [esp + 0x58]
fmul dword [0x870774]
fstp dword [esp + 0x4c]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
fadd dword [esi + 4]
fstp dword [esp + 0x48]
mov edx, dword [esp + 0x48]
fld dword [esp + 0x4c]
fadd dword [esi + 8]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
push ecx
fstp dword [esp + 0x50]
mov eax, dword [esp + 0x50]
fld dword [esp + 0x30]
mov dword [esp + 0x88], edx
fmul dword [0x8cb0d4]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x98], 0x909898
fst dword [esp + 0x90]
fst dword [esp + 0x2c]
fstp dword [esp + 0x94]
call fcn.00516630
fld dword [esp + 0x54]
fmul dword [0x8cb0d0]
fld dword [esp + 0x58]
fmul dword [0x8cb0d0]
fld dword [esp + 0x5c]
fmul dword [0x8cb0d0]
fstp dword [esp + 0x50]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x48]
mov edx, dword [esp + 0x48]
fadd dword [esi + 4]
fstp dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
fld dword [esp + 0x50]
fadd dword [esi + 8]
mov dword [esp + 0x84], edx
lea edx, [esp + 0x84]
push edx
fstp dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
fld dword [esp + 0x30]
mov dword [esp + 0x8c], eax
fadd st(0), st(0)
mov dword [esp + 0x90], ecx
fst dword [esp + 0x94]
fstp dword [esp + 0x98]
call fcn.00516630
fld dword [esp + 0x58]
fmul dword [0x8cb048]
fld dword [esp + 0x5c]
fmul dword [0x8cb048]
fld dword [esp + 0x60]
fmul dword [0x8cb048]
fstp dword [esp + 0x54]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
fadd dword [esi + 4]
fstp dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
fld dword [esp + 0x54]
fadd dword [esi + 8]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x88]
push eax
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x58]
fld dword [esp + 0x4c]
mov dword [esp + 0x90], ecx
fst dword [esp + 0x98]
mov dword [esp + 0x94], edx
fst dword [esp + 0x34]
mov dword [esp + 0xa0], 0x9098b8
fstp dword [esp + 0x9c]
call fcn.00516630
fld dword [esp + 0x5c]
fmul dword [0x8cb0cc]
fld dword [esp + 0x60]
fmul dword [0x8cb0cc]
fld dword [esp + 0x64]
fmul dword [0x8cb0cc]
fstp dword [esp + 0x58]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
fadd dword [esi + 4]
fstp dword [esp + 0x54]
mov edx, dword [esp + 0x54]
fld dword [esp + 0x58]
fadd dword [esi + 8]
mov dword [esp + 0x8c], ecx
lea ecx, [esp + 0x8c]
push ecx
fstp dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
fld dword [esp + 0x38]
mov dword [esp + 0x94], edx
fmul dword [0x871344]
mov dword [esp + 0x98], eax
fst dword [esp + 0x9c]
fst dword [esp + 0x38]
fstp dword [esp + 0xa0]
call fcn.00516630
fld dword [esp + 0x60]
fmul dword [0x8cb0c8]
fld dword [esp + 0x64]
fmul dword [0x8cb0c8]
fld dword [esp + 0x68]
fmul dword [0x8cb0c8]
fstp dword [esp + 0x5c]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x54]
mov edx, dword [esp + 0x54]
fadd dword [esi + 4]
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x58]
fld dword [esp + 0x5c]
fadd dword [esi + 8]
mov dword [esp + 0x90], edx
lea edx, [esp + 0x90]
push edx
fstp dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
fld dword [esp + 0x3c]
mov dword [esp + 0x98], eax
fadd st(0), st(0)
mov dword [esp + 0x9c], ecx
fst dword [esp + 0xa0]
fst dword [esp + 0x3c]
fstp dword [esp + 0xa4]
call fcn.00516630
fld dword [esp + 0x64]
fmul dword [0x873814]
fld dword [esp + 0x68]
fmul dword [0x873814]
fld dword [esp + 0x6c]
fmul dword [0x873814]
fstp dword [esp + 0x60]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x58]
fadd dword [esi + 4]
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
fld dword [esp + 0x60]
fadd dword [esi + 8]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x94]
push eax
fstp dword [esp + 0x64]
mov edx, dword [esp + 0x64]
fld dword [esp + 0x40]
mov dword [esp + 0x9c], ecx
fmul dword [0x8cb0c4]
mov dword [esp + 0xa0], edx
fst dword [esp + 0xa4]
fstp dword [esp + 0xa8]
call fcn.00516630
fld dword [esp + 0x68]
fmul dword [0x8cafd8]
fld dword [esp + 0x6c]
fmul dword [0x8cafd8]
fld dword [esp + 0x70]
fmul dword [0x8cafd8]
fstp dword [esp + 0x64]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
fadd dword [esi + 4]
fstp dword [esp + 0x60]
mov edx, dword [esp + 0x60]
fld dword [esp + 0x64]
fadd dword [esi + 8]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x98]
push ecx
fstp dword [esp + 0x68]
mov eax, dword [esp + 0x68]
fld dword [esp + 0x48]
mov dword [esp + 0xa0], edx
fmul dword [0x87b780]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], 0x9098d8
fst dword [esp + 0xa8]
fstp dword [esp + 0xac]
call fcn.00516630
fld dword [esp + 0x6c]
fmul dword [0x8cafe4]
fld dword [esp + 0x70]
fmul dword [0x8cafe4]
fld dword [esp + 0x74]
fmul dword [0x8cafe4]
fstp dword [esp + 0x68]
fxch st(1)
fadd dword [esi]
fstp dword [esp + 0x60]
mov edx, dword [esp + 0x60]
fadd dword [esi + 4]
fstp dword [esp + 0x64]
mov eax, dword [esp + 0x64]
fld dword [esp + 0x68]
fadd dword [esi + 8]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xb0], 0x9098f8
fstp dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
fld dword [esp + 0x48]
mov dword [esp + 0xa4], ecx
fmul dword [0x885dd4]
fst dword [esp + 0xa8]
fstp dword [esp + 0xac]
lea edx, [esp + 0x9c]
push edx
call fcn.00516630
push 0x2aff
call fcn.00517370
fld dword [esp + 0x74]
fadd dword [esi]
fstp dword [esp + 0x68]
mov eax, dword [esp + 0x68]
fld dword [esp + 0x78]
fadd dword [esi + 4]
fstp dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
fld dword [esp + 0x7c]
fadd dword [esi + 8]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0xa4]
push eax
fstp dword [esp + 0x74]
mov edx, dword [esp + 0x74]
fld dword [esp + 0x54]
mov dword [esp + 0xac], ecx
fmul dword [0x87183c]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xbc], 0x909918
fst dword [esp + 0xb4]
fstp dword [esp + 0xb8]
call fcn.00516630
add esp, 0x3c
call fcn.00516260
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
jmp fcn.00865870
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret