Function at 0x538910
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 0x538934
cmp dword [esp + 0x9c], 5
je 0x538940
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 0x7e4eb0
push 1
push ebp
push eax
call fcn.006471b0
fldz
fldz
fld dword [esp + 0x88]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [0x694dd0]
fcomp dword [0x97853c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5389a6
xor al, al
jmp 0x538a62
fld st(1)
fsub dword [0x694dd0]
fcomp dword [0xa10680]
fnstsw ax
test ah, 0x45
jne 0x5389c2
xor al, al
jmp 0x538a62
fld st(1)
fmul dword [0x7e4f4c]
fld dword [esp + 0x74]
fmul dword [0x7e4f48]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x5389e7
xor al, al
jmp 0x538a62
fld st(1)
fmul dword [0x7e4f58]
fld dword [esp + 0x74]
fmul dword [0x7e4f54]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x538a10
xor al, al
jmp 0x538a62
fld dword [esp + 0x7c]
fst st(1)
fmul dword [0x7e4f68]
fld st(2)
fmul dword [0x7e4f64]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x538a37
xor al, al
jmp 0x538a62
fld st(0)
fmul dword [0x7e4f74]
fld st(2)
fmul dword [0x7e4f70]
faddp st(1)
fcomp dword [0x694dd0]
fnstsw ax
test ah, 0x45
jne 0x538a60
xor al, al
jmp 0x538a62
mov al, 1
test al, al
je 0x538ea0
fcompp
call fcn.004bc140
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.004bc200
test eax, eax
je 0x538b46
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x18]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x18]
fstp dword [esp + 0x20]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x14]
call fcn.004bc200
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 0x538b23
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x538b3d
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x10]
jmp 0x538e92
fld dword [0x694dd8]
fstp dword [esp + 0x10]
fld dword [0x694ddc]
fmul dword [esp + 0x10]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 0x45
jne 0x538b70
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esi*4 + 0x92d4d0]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0xa4]
push 0
push 0xffffffffffffffff
push dword [edx + 0xc]
push eax
call fcn.0052fbf0
add esp, 0x10
test al, al
jne 0x538ba0
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.004d53c0
fadd dword [0x694dd8]
add esp, 0x10
cmp byte [esp + 0x33], 0
fstp dword [esp + 8]
jne 0x538be5
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 0x538c01
fst dword [esp + 0x24]
jmp 0x538c09
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esi*4 + 0x92d4d0]
mov ebp, dword [ecx]
fstp st(0)
call dword [ebp + 0x14]
test eax, eax
jne 0x538c23
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.0053b620
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x538c60
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov ecx, ebp
push 0
call fcn.005224d0
call fcn.00649a40
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.004face0
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.00581520
mov eax, dword [esp + 0xa8]
pop ecx
pop ecx
mov ecx, dword [eax*4 + 0x92d4d0]
mov ebx, dword [ecx]
call dword [ebx + 0x14]
test eax, eax
jne 0x538cf0
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.0053b620
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x538e8a
mov ecx, ebx
push ebp
push 0xf
call fcn.00521f30
mov ecx, ebx
push 7
call fcn.0051a040
lea eax, [esp + 0x68]
mov ecx, ebx
push eax
call fcn.00519e50
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.004d53c0
fadd dword [0x694dd8]
add esp, 0x10
cmp byte [esp + 0x43], 0
fstp dword [esp + 0xc]
jne 0x538dc3
push ebp
call fcn.004db330
test ebp, ebp
pop ecx
je 0x538da7
mov ecx, ebp
mov edi, dword [ecx]
push 1
call dword [edi + 8]
push ebx
call fcn.004db330
test ebx, ebx
pop ecx
je 0x538dbb
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 0x538de0
fld st(1)
jmp 0x538de4
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 + 0x92d4d0]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x38]
push 3
push dword [edx + 0xc]
push eax
call fcn.0052fbf0
add esp, 0x10
xor eax, eax
mov esi, dword [esp + eax*4 + 0x44]
test esi, esi
je 0x538e77
test esi, esi
je 0x538e77
cmp esi, ebp
je 0x538e77
cmp esi, ebx
je 0x538e77
push ebp
call fcn.004db330
test ebp, ebp
pop ecx
je 0x538e5b
mov ecx, ebp
mov edi, dword [ecx]
push 1
call dword [edi + 8]
push ebx
call fcn.004db330
test ebx, ebx
pop ecx
je 0x538e6f
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 0x538e33
mov eax, dword [ebx + 0x4c]
push 0
push eax
call fcn.00581520
pop ecx
pop ecx
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x538b50
fcompp
jmp 0x538b70