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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff80
mov edi, dword [esp + 0x94]
cmp edi, 4
mov esi, dword [esp + 0x98]
jne 0x538914
cmp dword [esp + 0x9c], 5
je 0x538920
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xac]
lea ebp, [esp + 0x74]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x74]
mov dword [esp + 0x78], ebx
push 0x7e4ea8
push 1
push ebp
push eax
call fcn.00647160
fldz
fldz
fld dword [esp + 0x88]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [0x694dd0]
fcomp dword [0x978534]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x538986
xor al, al
jmp 0x538a42
fld st(1)
fsub dword [0x694dd0]
fcomp dword [0xa10678]
fnstsw ax
test ah, 0x45
jne 0x5389a2
xor al, al
jmp 0x538a42
fld st(1)
fmul dword [0x7e4f44]
fld dword [esp + 0x74]
fmul dword [0x7e4f40]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x5389c7
xor al, al
jmp 0x538a42
fld st(1)
fmul dword [0x7e4f50]
fld dword [esp + 0x74]
fmul dword [0x7e4f4c]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x5389f0
xor al, al
jmp 0x538a42
fld dword [esp + 0x7c]
fst st(1)
fmul dword [0x7e4f60]
fld st(2)
fmul dword [0x7e4f5c]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x538a17
xor al, al
jmp 0x538a42
fld st(0)
fmul dword [0x7e4f6c]
fld st(2)
fmul dword [0x7e4f68]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x538a40
xor al, al
jmp 0x538a42
mov al, 1
test al, al
je 0x538e80
fcompp
call fcn.004bc120
add eax, 0x34
fldz
fldz
fld dword [esp + 0xa8]
fsub dword [eax + 4]
fstp st(2)
fld dword [esp + 0xa4]
fsub dword [eax]
fstp st(1)
fld st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(1)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fcompp
mov dword [esp + 0x1c], eax
call fcn.004bc1e0
test eax, eax
je 0x538b26
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x18]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x18]
fstp dword [esp + 0x20]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x14]
call fcn.004bc1e0
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x14]
fadd dword [esp + 0x20]
fsqrt
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x538b03
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x538b1d
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x10]
jmp 0x538e72
fld dword [0x694dd8]
fstp dword [esp + 0x10]
fld dword [0x694ddc]
fmul dword [esp + 0x10]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x45
jne 0x538b50
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esi*4 + 0x92d4c8]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0xa4]
push 0
push 0xffffffffffffffff
push dword [edx + 0xc]
push eax
call fcn.0052fbd0
add esp, 0x10
test al, al
jne 0x538b80
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fld dword [0x694dd8]
fadd dword [esp + 0xac]
lea eax, [esp + 0x33]
push eax
push eax
fstp dword [esp]
push dword [esp + 0xb0]
push dword [esp + 0xb0]
call fcn.004d53a0
fadd dword [0x694dd8]
add esp, 0x10
cmp byte [esp + 0x33], 0
fstp dword [esp + 8]
jne 0x538bc5
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fldz
fld dword [esp + 0xac]
fst st(1)
fcomp dword [esp + 8]
fnstsw ax
test ah, 0x45
jne 0x538be1
fst dword [esp + 0x24]
jmp 0x538be9
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esi*4 + 0x92d4c8]
mov ebp, dword [ecx]
fstp st(0)
call dword [ebp + 0x14]
test eax, eax
jne 0x538c03
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x50]
push 0
push eax
push esi
push edi
mov dword [esp + 0x64], ecx
call fcn.0053b600
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x538c40
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov ecx, ebp
push 0
call fcn.005224b0
call fcn.006499f0
and eax, 0xffff
mov ecx, ebp
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fmul dword [0x694de4]
fmul dword [0x694de0]
fnstcw word [esp + 4]
mov eax, dword [esp + 4]
or byte [esp + 5], 0xc
fldcw word [esp + 4]
mov dword [esp + 4], eax
fistp dword [esp + 0x28]
fldcw word [esp + 4]
mov eax, dword [esp + 0x28]
push eax
call fcn.004facc0
mov al, byte [ebp + 0x151]
and al, 0xfd
or al, 2
mov byte [ebp + 0x151], al
mov eax, dword [ebp + 0x4c]
push 0
push eax
call fcn.00581500
mov eax, dword [esp + 0xa8]
pop ecx
pop ecx
mov ecx, dword [eax*4 + 0x92d4c8]
mov ebx, dword [ecx]
call dword [ebx + 0x14]
test eax, eax
jne 0x538cd0
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x5c]
push 0
push eax
mov dword [esp + 0x68], edx
push dword [esp + 0xa8]
push dword [esp + 0xa8]
call fcn.0053b600
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x538e6a
mov ecx, ebx
push ebp
push 0xf
call fcn.00521f10
mov ecx, ebx
push 7
call fcn.0051a020
lea eax, [esp + 0x68]
mov ecx, ebx
push eax
call fcn.00519e30
lea esi, [esp + 0x68]
lea edi, [esp + 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x694dd8]
fadd dword [esp + 0x3c]
lea eax, [esp + 0x43]
push eax
push eax
fstp dword [esp]
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.004d53a0
fadd dword [0x694dd8]
add esp, 0x10
cmp byte [esp + 0x43], 0
fstp dword [esp + 0xc]
jne 0x538da3
push ebp
call fcn.004db310
test ebp, ebp
pop ecx
je 0x538d87
mov ecx, ebp
mov edi, dword [ecx]
push 1
call dword [edi + 8]
push ebx
call fcn.004db310
test ebx, ebx
pop ecx
je 0x538d9b
mov ecx, ebx
mov esi, dword [ecx]
push 1
call dword [esi + 8]
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fldz
fldz
fld dword [esp + 0x3c]
fstp st(2)
fld st(1)
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x45
jne 0x538dc0
fld st(1)
jmp 0x538dc4
fld dword [esp + 0xc]
fstp st(1)
fld dword [esp + 0x38]
fstp st(2)
fld dword [esp + 0x34]
fstp dword [ebx + 0x34]
fld st(1)
mov esi, 0x7091d4
fstp dword [ebx + 0x38]
fst dword [ebx + 0x3c]
lea edi, [esp + 0x44]
movsd dword es:[edi], dword [esi]
fcompp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax*4 + 0x92d4c8]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x38]
push 3
push dword [edx + 0xc]
push eax
call fcn.0052fbd0
add esp, 0x10
xor eax, eax
mov esi, dword [esp + eax*4 + 0x44]
test esi, esi
je 0x538e57
test esi, esi
je 0x538e57
cmp esi, ebp
je 0x538e57
cmp esi, ebx
je 0x538e57
push ebp
call fcn.004db310
test ebp, ebp
pop ecx
je 0x538e3b
mov ecx, ebp
mov edi, dword [ecx]
push 1
call dword [edi + 8]
push ebx
call fcn.004db310
test ebx, ebx
pop ecx
je 0x538e4f
mov ecx, ebx
mov esi, dword [ecx]
push 1
call dword [esi + 8]
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc eax
cmp eax, 3
jl 0x538e13
mov eax, dword [ebx + 0x4c]
push 0
push eax
call fcn.00581500
pop ecx
pop ecx
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x538b30
fcompp
jmp 0x538b50