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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffb1c
mov eax, dword [0x59d95c]
cmp byte [eax], 0
je 0x53f868
xor eax, eax
mov dword [ebp - 0x830], eax
jmp 0x53f872
mov dword [ebp - 0x830], 1
mov eax, dword [0x59d748]
cmp byte [eax], 0
je 0x53f88c
mov eax, dword [0x59d5ac]
mov eax, dword [eax]
inc eax
mov dword [ebp - 0x82c], eax
jmp 0x53f899
mov eax, dword [0x59d5ac]
mov eax, dword [eax]
mov dword [ebp - 0x82c], eax
call fcn.0053d74c
test al, al
je 0x53f8aa
xor eax, eax
mov dword [ebp - 0x82c], eax
mov eax, dword [ebp - 0x830]
mov edx, dword [ebp - 0x82c]
sub edx, eax
jl 0x53fa80
inc edx
mov dword [ebp - 0x908], edx
mov dword [ebp - 0x824], eax
xor eax, eax
mov dword [ebp - 0x828], eax
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59db80]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fld qword [eax + edx*8]
fabs
fstp xword [ebp - 0x14dc]
wait
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fld qword [eax + edx*8]
fabs
fld xword [ebp - 0x14dc]
fcompp
wait
fnstsw ax
sahf
jbe 0x53f9b0
push ebp
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59db80]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
push dword [eax + edx*8 + 4]
push dword [eax + edx*8]
call fcn.0053f744
pop ecx
imul edx, dword [ebp - 0x824], 0xfb
lea edx, [ebp + edx - 0x14d0]
mov ecx, dword [ebp - 0x828]
mov byte [edx + ecx], al
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59db80]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fld qword [eax + edx*8]
fabs
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fstp qword [eax + edx*8]
wait
jmp 0x53f9f3
push ebp
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
push dword [eax + edx*8 + 4]
push dword [eax + edx*8]
call fcn.0053f744
pop ecx
imul edx, dword [ebp - 0x824], 0xfb
lea edx, [ebp + edx - 0x14d0]
mov ecx, dword [ebp - 0x828]
mov byte [edx + ecx], al
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fld qword [eax + edx*8]
fabs
fchs
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fstp qword [eax + edx*8]
wait
imul eax, dword [ebp - 0x824], 0xfb
mov edx, dword [0x59db80]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
xor ecx, ecx
mov dword [eax + edx*8], ecx
mov dword [eax + edx*8 + 4], ecx
inc dword [ebp - 0x828]
cmp dword [ebp - 0x828], 0xfb
jne 0x53f8d3
inc dword [ebp - 0x824]
dec dword [ebp - 0x908]
jne 0x53f8cb
mov eax, dword [0x59d5a4]
mov eax, dword [eax]
test eax, eax
jle 0x53fe6c
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x824], 1
imul eax, dword [ebp - 0x824], 0x23
mov edx, dword [0x59d87c]
lea eax, [edx + eax*2 - 0x46]
mov dword [ebp - 0x90c], eax
mov eax, dword [ebp - 0x90c]
cmp byte [eax + 4], 0
jne 0x53fe5a
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d86c]
fld qword [edx + eax*8]
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59dd64]
fsub qword [edx + eax*8]
fmul dword [0x540a40]
fld dword [0x540a44]
call fcn.004052d0
fstp qword [ebp - 0x898]
wait
fld qword [ebp - 0x898]
mov eax, dword [ebp - 0x90c]
fcomp qword [eax + 0x1e]
wait
fnstsw ax
sahf
jbe 0x53fc8e
xor eax, eax
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], eax
mov eax, dword [ebp - 0x90c]
fld qword [eax + 6]
fcomp dword [0x540a48]
wait
fnstsw ax
sahf
jbe 0x53fb53
mov eax, dword [ebp - 0x90c]
fld qword [eax + 6]
mov eax, dword [0x59d5d0]
fmul qword [eax]
fstp qword [ebp - 0x8a0]
wait
mov eax, dword [ebp - 0x90c]
fld qword [eax + 0xe]
fcomp dword [0x540a48]
wait
fnstsw ax
sahf
jbe 0x53fb85
mov eax, dword [ebp - 0x90c]
fld qword [eax + 0xe]
mov eax, dword [0x59d958]
fmul qword [eax]
fadd qword [ebp - 0x8a0]
fstp qword [ebp - 0x8a0]
wait
mov eax, dword [ebp - 0x90c]
cmp dword [eax], 0
jle 0x53fbdf
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d5ac]
cmp eax, dword [edx]
jg 0x53fbdf
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
mov eax, dword [ebp - 0x90c]
fsub qword [eax + 0x1e]
fmul qword [ebp - 0x8a0]
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
call fcn.004052d0
fstp qword [ebp - 0x8a0]
wait
mov eax, dword [ebp - 0x90c]
fld qword [eax + 0x1e]
fld qword [ebp - 0x898]
call fcn.004052d0
fsubr dword [0x540a4c]
fmul qword [ebp - 0x8a0]
fstp qword [ebp - 0x8a0]
wait
xor eax, eax
mov dword [ebp - 0x828], eax
mov eax, dword [ebp - 0x90c]
imul eax, dword [eax], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fld qword [eax + edx*8]
fadd qword [ebp - 0x8a0]
mov eax, dword [ebp - 0x90c]
imul eax, dword [eax], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fstp qword [eax + edx*8]
wait
inc dword [ebp - 0x828]
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
fld dword [0x540a50]
call fcn.004052d0
fild dword [ebp - 0x828]
fmulp st(1)
mov eax, dword [ebp - 0x90c]
fcomp qword [eax + 0x1e]
wait
fnstsw ax
sahf
jbe 0x53fc0e
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
mov eax, dword [ebp - 0x90c]
fsub qword [eax + 0x1e]
fcomp qword [ebp - 0x898]
wait
fnstsw ax
sahf
jae 0x53fe5a
xor eax, eax
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], eax
mov eax, dword [ebp - 0x90c]
fld qword [eax + 6]
fcomp dword [0x540a48]
wait
fnstsw ax
sahf
jbe 0x53fcf2
mov eax, dword [ebp - 0x90c]
fld qword [eax + 6]
mov eax, dword [0x59d5d0]
fmul qword [eax]
fstp qword [ebp - 0x8a0]
wait
mov eax, dword [ebp - 0x90c]
fld qword [eax + 0xe]
fcomp dword [0x540a48]
wait
fnstsw ax
sahf
jbe 0x53fd24
mov eax, dword [ebp - 0x90c]
fld qword [eax + 0xe]
mov eax, dword [0x59d958]
fmul qword [eax]
fadd qword [ebp - 0x8a0]
fstp qword [ebp - 0x8a0]
wait
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d5ac]
mov edx, dword [edx]
inc edx
cmp eax, edx
jge 0x53fd70
mov eax, dword [ebp - 0x90c]
cmp dword [eax], 0
jle 0x53fd70
fld qword [ebp - 0x8a0]
mov eax, dword [ebp - 0x90c]
fmul qword [eax + 0x1e]
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
call fcn.004052d0
fstp qword [ebp - 0x8a0]
wait
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
mov eax, dword [ebp - 0x90c]
fsub qword [eax + 0x1e]
fld qword [ebp - 0x898]
call fcn.004052d0
fsubr dword [0x540a4c]
fmul qword [ebp - 0x8a0]
fstp qword [ebp - 0x8a0]
wait
mov dword [ebp - 0x828], 0xfa
mov eax, dword [ebp - 0x90c]
imul eax, dword [eax], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fld qword [eax + edx*8]
fadd qword [ebp - 0x8a0]
mov eax, dword [ebp - 0x90c]
imul eax, dword [eax], 0xfb
mov edx, dword [0x59dbc0]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x828]
fstp qword [eax + edx*8]
wait
dec dword [ebp - 0x828]
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
fld dword [0x540a50]
call fcn.004052d0
mov eax, 0xfa
sub eax, dword [ebp - 0x828]
mov dword [ebp - 0x14e0], eax
fild dword [ebp - 0x14e0]
fmulp st(1)
mov eax, dword [ebp - 0x90c]
mov eax, dword [eax]
mov edx, dword [0x59d688]
fld qword [edx + eax*8]
mov eax, dword [ebp - 0x90c]
fsub qword [eax + 0x1e]
fcompp
wait
fnstsw ax
sahf
jae 0x53fdb2
inc dword [ebp - 0x824]
dec dword [ebp - 0x908]
jne 0x53fa9f
call fcn.0053d74c
test al, al
jne 0x540367
mov eax, dword [0x59d5ac]
mov eax, dword [eax]
inc eax
test eax, eax
jle 0x540367
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x824], 1