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

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, ecx
sub esp, 0x130
lea eax, [esp + 0x48]
lea edx, [esp + 0x54]
mov ecx, 0x8f2674
push edx
push eax
push dword [ebp + 0xd4]
push ebp
call fcn.00546270
test al, al
je 0x531010
mov al, byte [ebp + 0x54]
mov ecx, ebp
and al, 0xf7
or al, 8
mov byte [ebp + 0x54], al
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call fcn.004959a0
mov ecx, ebp
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.00495a10
lea esi, [ebp + 0x78]
lea edi, [esp + 0x60]
movsd dword es:[edi], dword [esi]
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x600644]
fcomp dword [0x8e2cb4]
fnstsw ax
test ah, 0x45
jne 0x530962
fld dword [0x600644]
jmp 0x530968
fld dword [0x8e2cb4]
fstp st(1)
fld dword [0x600614]
fmul dword [ebp + 0xc0]
fmul st(1)
fdivr dword [esp + 0x5c]
fstp dword [esp + 0x18]
fld dword [0x8e2cb4]
fld dword [0x60050c]
fmul dword [esp + 0x18]
fsubr dword [0x6004f4]
ftst
fnstsw ax
and ah, 0x45
jne 0x5309b7
fyl2x
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fadd dword [0x6004f4]
fscale
fstp st(1)
jmp 0x5309bc
call fcn.005a4210
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp st(1)
fld dword [ebp + 0x78]
fmul st(1)
fstp dword [ebp + 0x78]
fld dword [ebp + 0x7c]
fmul st(1)
fstp dword [ebp + 0x7c]
fld dword [ebp + 0x80]
fmul st(1)
fstp dword [ebp + 0x80]
fld dword [ebp + 0x84]
fmul st(1)
fstp dword [ebp + 0x84]
fld dword [ebp + 0x88]
fmul st(1)
fstp dword [ebp + 0x88]
fld dword [ebp + 0x8c]
fmul st(1)
fstp dword [ebp + 0x8c]
fld dword [esp + 0x18]
fcomp dword [0x6004ec]
fnstsw ax
test ah, 0x45
jne 0x530b00
mov al, byte [ebp + 0x122]
and al, 0xf7
or al, 8
mov byte [ebp + 0x122], al
fld dword [ebp + 0x80]
fcomp dword [0x600590]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x530a53
mov dword [ebp + 0x80], 0xbdcccccd
mov edi, dword [ebp + 0x1a4]
test edi, edi
je 0x531450
mov al, byte [edi + 0x54]
and al, 0xf7
or al, 8
mov byte [edi + 0x54], al
mov ecx, dword [ebp + 0x1a4]
fstp st(0)
call fcn.004d48e0
test al, al
jne 0x530a89
mov al, byte [ebp + 0x4d9]
shr al, 7
test al, al
jne 0x530aa2
mov ecx, dword [ebp + 0x1a4]
push 0
push 0
push dword [0x8e2cb4]
push 0x14
push 0
call fcn.004ea420
xor esi, esi
jmp 0x530af3
mov edx, dword [ebp + esi*4 + 0x1a8]
test edx, edx
je 0x530af2
mov al, byte [edx + 0x54]
and al, 0xf7
or al, 8
mov byte [edx + 0x54], al
mov ecx, dword [ebp + esi*4 + 0x1a8]
call fcn.004d48e0
test al, al
jne 0x530ad8
mov al, byte [ebp + 0x4d9]
shr al, 7
test al, al
jne 0x530af2
mov ecx, dword [ebp + esi*4 + 0x1a8]
push 0
push 0
push dword [0x8e2cb4]
push 0x14
push 0
call fcn.004ea420
inc esi
movzx eax, byte [ebp + 0x1cc]
cmp esi, eax
jl 0x530aa6
jmp 0x530b10
mov al, byte [ebp + 0x122]
and al, 0xf7
fstp st(0)
mov byte [ebp + 0x122], al
cmp byte [0x64cdf0], 0
jne 0x530b2a
mov byte [0x64cdf0], 1
mov dword [0x64cdec], 0
cmp byte [0x64cdf8], 0
jne 0x530b44
mov byte [0x64cdf8], 1
mov dword [0x64cdf4], 0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
fld dword [esp + 0x3c]
fcomp dword [0x600648]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x530d73
fld dword [esp + 0x18]
fcomp dword [0x6004dc]
fnstsw ax
test ah, 0x45
jne 0x530d73
fld dword [0x6004ec]
fmul dword [0x8f29d8]
fadd dword [0x8f29b4]
fmul dword [0x60064c]
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp dword [esp + 0x40]
fldcw word [esp + 0x14]
fld dword [0x6004ec]
fmul dword [0x940594]
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
fadd dword [0x94144c]
fmul dword [0x60064c]
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp dword [esp + 0x40]
fldcw word [esp + 0x14]
fld dword [0x6004ec]
fmul dword [0x942fac]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
fadd dword [0x942fc0]
fmul dword [0x60064c]
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp dword [esp + 0x40]
fldcw word [esp + 0x14]
mov ebx, dword [esp + 0x40]
call fcn.005a41d0
and eax, 0xffff
mov ecx, dword [0x64cdfd]
mov dword [esp + 0x40], eax
mov dword [esp + 0x6c], ecx
fldz
fild dword [esp + 0x40]
mov cl, byte [esp + 0xc]
lea edi, [esp + 0x70]
mov byte [esp + 0x6c], cl
mov cl, byte [esp + 8]
fmul dword [0x6004e0]
mov byte [esp + 0x6d], cl
mov byte [esp + 0x6e], bl
fmul dword [0x600650]
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp dword [esp + 0x40]
fldcw word [esp + 0x14]
fld dword [esp + 0x64]
fstp st(1)
fmul st(0)
fld dword [esp + 0x60]
fmul st(0)
faddp st(1)
fld dword [esp + 0x3c]
fmul st(0)
faddp st(1)
fld st(0)
fsqrt
mov eax, dword [esp + 0x40]
add al, 0x80
mov byte [esp + 0x6f], al
lea eax, [ebp + 0x34]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fstp st(0)
fstp st(0)
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x7c], 0
mov dword [esp + 0x40], eax
lea eax, [esp + 0x6c]
fild dword [esp + 0x40]
lea esi, [esp + 0x7c]
mov dword [esp + 0x80], 0
push 1
fmul dword [0x6004e0]
push eax
lea eax, [esp + 0x78]
push 0x4b
fmul dword [0x6005a0]
push dword [0x6004f8]
push esi
push eax
fadd dword [0x6005a0]
push 6
fstp dword [esp + 0xa0]
call fcn.004bc5b0
mov eax, dword [0x885b48]
add esp, 0x1c
add eax, 0x12c
mov dword [0x64cdec], eax
mov eax, dword [0x885b48]
add eax, 0x3c
mov dword [0x64cdf4], eax
fld dword [ebp + 0x80]
fcomp dword [0x600654]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x530d5a
mov dword [ebp + 0x80], 0xbe4ccccd
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x6004f8]
push 0x90
push eax
call fcn.0057c840
cmp dword [0x64cdf4], 0
je 0x530f02
mov eax, dword [0x64cdf4]
mov edi, dword [0x885b48]
cmp edi, eax
jb 0x530f02
lea eax, [ebp + 0x34]
lea edi, [esp + 0x88]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x98]
push dword [esp + 0x98]
push dword [esp + 0x98]
call fcn.005552c0
add esp, 0x14
test al, al
je 0x530de6
mov eax, dword [esp + 0x94]
mov dword [esp + 0x90], eax
fld dword [0x6004f8]
fcomp dword [esp + 0x90]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x530f02
fld dword [esp + 0x90]
fadd dword [0x6004f4]
mov eax, dword [0x64ce01]
mov dword [0x64cdf4], 0
xor ebx, ebx
mov dword [esp + 0x98], eax
fstp dword [esp + 0x90]
lea eax, [eax]
lea esi, [esp + 0x88]
lea edi, [esp + 0x9c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [0x6004e0]
fmul dword [0x600658]
fadd dword [0x60065c]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x9c]
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0xc4], 0
mov dword [esp + 0x40], eax
lea eax, [esp + 0x98]
fild dword [esp + 0x40]
lea edx, [esp + 0xc4]
mov dword [esp + 0xc8], 0
push 0
fmul dword [0x6004e0]
push 0
push 0
fmul dword [0x600658]
push 0
push eax
lea eax, [esp + 0xb0]
fadd dword [0x60065c]
push dword [0x6004f8]
push 0
fadd dword [esp + 0xbc]
push edx
push eax
push 0x1e
fstp dword [esp + 0xc8]
mov dword [esp + 0xf4], 0
call fcn.0050d190
inc ebx
add esp, 0x28
cmp ebx, 4
jl 0x530e30
cmp dword [0x64cdec], 0
je 0x531445
mov eax, dword [0x64cdec]
mov ecx, dword [0x885b48]
cmp ecx, eax
jb 0x531445
add ebp, 0x34
lea edi, [esp + 0xa8]
lea esi, [ebp]
movsd dword es:[edi], dword [esi]
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xb8], 0
lea eax, [esp + 0xb8]
push eax
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push dword [esp + 0xb8]
call fcn.005552c0
add esp, 0x14
test al, al
je 0x530f76
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb0], eax
fld dword [esp + 0xb0]
fcomp dword [0x6004f8]
fnstsw ax
test ah, 5
jne 0x531445
fld dword [esp + 0xb0]
mov eax, dword [0x64ce05]
mov dword [esp + 0xd0], 0
fadd dword [0x6004ec]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb8]
lea esi, [esp + 0xd0]
mov dword [0x64cdec], 0
push 1
push eax
lea eax, [esp + 0xb0]
fstp dword [esp + 0xb8]
push 0x9c4
push dword [0x600660]
push esi
push eax
push 8
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
call fcn.004bc5b0
add esp, 0x1c
jmp 0x531445
mov al, byte [ebp + 0x122]
and al, 0xf7
mov byte [ebp + 0x122], al
mov al, byte [ebp + 0x54]
and al, 0xf7
xor edi, edi
mov byte [ebp + 0x54], al
mov eax, dword [0x60063c]
mov dword [esp + 0xbc], eax
mov eax, dword [0x600640]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc0], eax
mov dword [esp + 4], 0
lea eax, [eax]
fldz
fldz
fld dword [ebp + edi*4 + 0x46c]
fcomp dword [0x6004f4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x531457
mov eax, dword [esp + 4]
cmp byte [ebp + eax + 0x3ee], 0x13
jne 0x531460
fld dword [0x6004dc]
lea ebx, [ebp + 0x24]
mov ecx, dword [esp + 0x10]
fmul dword [ebx + 8]
add ecx, 0x3cc
lea esi, [ebp + 0x34]
mov eax, esi
fadd dword [ecx + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x28]
fld dword [0x6004dc]
fmul dword [ebx + 4]
fadd dword [ecx + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x24]
fld dword [0x6004dc]
fmul dword [ebx]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x110], edx
fadd dword [ecx]
fsub dword [eax]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x114], eax
lea eax, [esp + 0x10c]
fld dword [ebp + 0x8c]
fadd dword [ebp + 0xa4]
push eax
lea eax, [esp + 0x128]
fstp st(1)
fld dword [ebp + 0x88]
fadd dword [ebp + 0xa0]
fstp st(2)
fld dword [ebp + 0x84]
fadd dword [ebp + 0x9c]
fstp dword [esp + 0x11c]
fld st(1)
lea ecx, [esp + 0x11c]
fstp dword [esp + 0x120]
fst dword [esp + 0x124]
fcompp
push ecx
push eax
call fcn.004ba350
fldz
fldz
fldz
fldz
fld dword [esp + 0x134]
fadd dword [ebp + 0x7c]
add esp, 0xc
fadd dword [ebp + 0x94]
fstp st(2)
fld dword [esp + 0x124]
fadd dword [ebp + 0x78]
fadd dword [ebp + 0x90]
fstp st(3)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fadd dword [0x6004f8]
fst st(1)
fstp st(4)
fld st(3)
fcomp dword [0x600664]
fnstsw ax
test ah, 0x45
jne 0x531464
fld st(0)
fsqrt
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
fld dword [esp + 0x34]
fcomp dword [0x6005a0]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5311d0
fld dword [0x600528]
jmp 0x5311d6
fld dword [0x60052c]
fmul dword [esp + 0x34]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x600524]
fnstsw ax
test ah, 0x45
jne 0x5311f9
fld dword [0x600524]
fstp dword [esp + 0x1c]
fld dword [0x6004fc]
lea edx, [ebp + 4]
fmul dword [edx + 8]
fmul dword [esp + 0x34]
fadd dword [0x6004f8]
fstp dword [esp + 0x30]
fld dword [0x6004fc]
fmul dword [edx + 4]
fmul dword [esp + 0x34]
fld dword [0x6004fc]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x2c]
fld dword [0x6004fc]
fmul dword [edx]
fmul dword [esp + 0x34]
fld dword [0x6004fc]
fmul st(4)
faddp st(1)
fstp dword [esp + 0x38]
fcompp
fcompp
call fcn.005a41d0
mov ebx, eax
call fcn.005a41d0
fldz
fldz
fld dword [0x600668]
fmul dword [esp + 0x38]
mov edx, esi
and ebx, 0xffff
mov dword [esp + 0x40], ebx
and eax, 0xffff
fstp dword [esp + 0xe8]
fld dword [0x600668]
fmul dword [esp + 0x2c]
push 0
push 1
fstp dword [esp + 0xf4]
fld dword [0x600668]
fmul dword [esp + 0x38]
fstp dword [esp + 0xf8]
fld dword [esp + 0x30]
fadd dword [edx + 8]
fstp st(1)
fld dword [esp + 0x2c]
fadd dword [edx + 4]
fstp st(2)
fld dword [esp + 0x28]
fadd dword [edx]
fstp dword [esp + 0xe4]
fld st(1)
fstp dword [esp + 0xe8]
fst dword [esp + 0xec]
fild dword [esp + 0x48]
fmul dword [0x6004e0]
fmul dword [0x60066c]
fadd dword [0x6004f8]
fnstcw word [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], ecx
fistp dword [esp + 0x48]
mov edx, dword [esp + 0x48]
fldcw word [esp + 0x1c]
mov dword [esp + 0x48], eax
push edx
fild dword [esp + 0x4c]
lea edx, [esp + 0xf4]
fmul dword [0x6004e0]
fmul dword [0x6005c4]
fadd dword [0x6004f8]
fnstcw word [esp + 0x20]
mov eax, dword [esp + 0x20]
or byte [esp + 0x21], 0xc
fldcw word [esp + 0x20]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xc8]
fistp dword [esp + 0x4c]
fldcw word [esp + 0x20]
mov ebx, dword [esp + 0x4c]
fcompp
push ebx
push eax
lea eax, [esp + 0xf0]
push dword [esp + 0x30]
push 0
push edx
push eax
push 0x2c
call fcn.0050d190
fldz
fldz
fld dword [0x600670]
fmul dword [esp + 0x60]
lea eax, [esp + 0xe8]
add esp, 0x28
push 0
fstp dword [esp + 0x104]
fld dword [0x600670]
fmul dword [esp + 0x30]
lea ebx, [esp + 0x104]
push 0
fstp dword [esp + 0x10c]
fld dword [0x600670]
fmul dword [esp + 0x38]
push 0
push 0
fstp dword [esp + 0x118]
fld dword [esp + 0x38]
fadd dword [esi + 8]
push eax
push dword [esp + 0x30]
fstp st(1)
fld dword [esp + 0x3c]
fadd dword [esi + 4]
push 0
push ebx
fstp st(2)
fld dword [esp + 0x40]
fadd dword [esi]
fstp dword [esp + 0x114]
fld st(1)
lea eax, [esp + 0x114]
fstp dword [esp + 0x118]
fst dword [esp + 0x11c]
fcompp
push eax
push 0x3a
call fcn.0050d190
mov eax, dword [0x9412ec]
add esp, 0x28
and eax, 0xf
jne 0x531431
fld dword [0x6005b8]
fmul dword [esp + 0x34]
push eax
mov ecx, 0x95cdbe
fstp dword [esp]
mov eax, dword [ebp + 0x64]
push 0x16
push eax
call fcn.0057c840
inc edi
add dword [esp + 4], 0x28
add dword [esp + 0x10], 0x28
cmp edi, 4
jl 0x531050
add esp, 0x130
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x530aa2
fcompp
jmp 0x531431
fcompp
jmp 0x531431
fcompp
fcompp
jmp 0x531431