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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xb8
cmp dword [0x978810], 4
je 0x538eb0
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x58], eax
fldz
fldz
fild dword [esp + 0x58]
fmul dword [0x694de4]
fmul dword [0x694de8]
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
fistp dword [esp + 0x58]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x24], eax
add ebp, 3
mov dword [esp + 0x58], ebp
mov dword [esp + 0x20], ebp
fldcw word [esp + 0x24]
fild dword [esp + 0x58]
fdivr dword [0x694dec]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcos
fnstsw ax
test eax, 0x400
je 0x538f22
call fcn.00642920
fcos
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp st(2)
fld dword [0x694dd8]
fsub st(2)
fdivr dword [0x694df0]
fsqrt
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xcc]
fld dword [eax + 8]
mov eax, dword [esp + 0xcc]
fstp st(1)
fld dword [eax + 4]
mov eax, dword [esp + 0xcc]
fstp st(2)
fld dword [eax]
fstp dword [esp + 0xac]
fld st(1)
lea eax, [esp + 0xac]
lea edx, [esp + 0xac]
fstp dword [esp + 0xb0]
fst dword [esp + 0xb4]
fcompp
push 0x7e4ea8
push 1
push edx
push eax
call fcn.00647160
fldz
fldz
fld dword [esp + 0xc0]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [esp + 0x4c]
fcomp dword [0x978534]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x538fd0
xor al, al
jmp 0x539092
fld st(1)
fsub dword [esp + 0x4c]
fcomp dword [0xa10678]
fnstsw ax
test ah, 0x45
jne 0x538ff0
xor al, al
jmp 0x539092
fld st(1)
fmul dword [0x7e4f44]
fld dword [esp + 0xac]
fmul dword [0x7e4f40]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539016
xor al, al
jmp 0x539092
fld st(1)
fmul dword [0x7e4f50]
fld dword [esp + 0xac]
fmul dword [0x7e4f4c]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539040
xor al, al
jmp 0x539092
fld dword [esp + 0xb4]
fst st(1)
fmul dword [0x7e4f60]
fld st(2)
fmul dword [0x7e4f5c]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539068
xor al, al
jmp 0x539092
fld st(0)
fmul dword [0x7e4f6c]
fld st(2)
fmul dword [0x7e4f68]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539090
xor al, al
jmp 0x539092
mov al, 1
test al, al
je 0x5397c7
fcompp
call fcn.004bc120
mov ecx, dword [esp + 0xcc]
add eax, 0x34
fldz
fldz
fld dword [ecx + 4]
fsub dword [eax + 4]
mov ecx, dword [esp + 0xcc]
fstp st(2)
fld dword [ecx]
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 + 0x58]
mov eax, dword [esp + 0x58]
fcompp
mov dword [esp + 0x50], eax
call fcn.004bc1e0
test eax, eax
je 0x539180
call fcn.004bc1e0
fld dword [eax + 0x74]
fstp dword [esp + 0x48]
call fcn.004bc1e0
fld dword [eax + 0x74]
fmul dword [esp + 0x48]
fstp dword [esp + 0x54]
call fcn.004bc1e0
fld dword [eax + 0x70]
fstp dword [esp + 0x44]
call fcn.004bc1e0
fldz
fld dword [eax + 0x70]
fmul dword [esp + 0x44]
fadd dword [esp + 0x54]
fsqrt
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp st(1)
fsub dword [0x694dd4]
fadd dword [0x694dd8]
fld dword [0x694dd8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x539158
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x539172
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x40]
jmp 0x5397c0
fld dword [0x694dd8]
fstp dword [esp + 0x40]
fld dword [0x694ddc]
fmul dword [esp + 0x40]
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 0x45
jne 0x5391b0
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
push 0
push 0xffffffffffffffff
push dword [esp + 0x54]
push dword [esp + 0xd8]
call fcn.0052fbd0
add esp, 0x10
test al, al
jne 0x5391d6
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x18], 0
jle 0x539696
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 4
call fcn.006499f0
mov ebp, eax
call fcn.006499f0
mov edi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], eax
and ebp, 0xffff
fldz
fldz
fldz
fild dword [esp + 0x58]
mov dword [esp + 0x58], ebp
fmul dword [esp + 0x28]
fild dword [esp + 0x58]
fmul dword [0x694de4]
fmul dword [0x694df4]
fadd dword [0x694df8]
fmul dword [esp + 0x28]
faddp st(1)
fstp st(3)
fld st(2)
fcos
fnstsw ax
test eax, 0x400
je 0x539258
call fcn.00642920
fcos
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
and edi, 0xffff
mov dword [esp + 0x58], edi
fstp st(2)
fild dword [esp + 0x58]
fmul dword [0x694de4]
fmul dword [0x694df4]
fadd dword [0x694df8]
fmul dword [esp + 0x4c]
fadd dword [esp + 0x4c]
fst st(1)
fmul st(2)
fstp dword [esp + 0x2c]
fld st(2)
fsin
fnstsw ax
test eax, 0x400
je 0x5392a6
call fcn.00642920
fsin
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp st(3)
lea eax, [esp + 0x87]
fld st(0)
push eax
mov eax, dword [esp + 0xd0]
fmul st(3)
fstp dword [esp + 0x34]
fld dword [0x694dd8]
fadd dword [eax + 8]
push eax
fstp dword [esp]
mov eax, dword [esp + 0xd4]
fld dword [eax + 4]
fadd dword [esp + 0x38]
push eax
fstp dword [esp]
mov eax, dword [esp + 0xd8]
fld dword [eax]
fadd dword [esp + 0x38]
push eax
fstp dword [esp]
fcompp
fstp st(0)
call fcn.004d53a0
fadd dword [0x694dd8]
add esp, 0x10
cmp byte [esp + 0x87], 0
fstp dword [esp + 0x34]
je 0x539684
mov eax, dword [esp + 0xcc]
fldz
fldz
fld dword [eax + 8]
fstp st(2)
fld st(1)
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x45
jne 0x539340
fld st(1)
jmp 0x539344
fld dword [esp + 0x34]
fstp st(1)
mov eax, dword [esp + 0xcc]
cmp dword [esp + 0x18], 0
fld dword [eax + 4]
fadd dword [esp + 0x30]
mov eax, dword [esp + 0xcc]
fstp st(2)
fld dword [eax]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x88]
fld st(1)
fstp dword [esp + 0x8c]
fst dword [esp + 0x90]
jne 0x5393a5
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], edx
fld dword [0x975340]
fcomp dword [0x694dd4]
fnstsw ax
test ah, 0x45
jne 0x539430
xor ebp, ebp
mov al, 1
mov edi, dword [esp + 0x1c]
jmp 0x5397d0
call fcn.006499f0
and eax, 0xffff
inc ebp
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x694de4]
fmul dword [0x694dfc]
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x58]
fldcw word [esp + 0x24]
mov eax, dword [esp + 0x58]
mov dword [0x7091d0], eax
add eax, edi
mov esi, dword [eax*4 + 0x7d4120]
push esi
call fcn.0053a6f0
pop ecx
test al, al
je 0x539423
cmp ebp, 8
jl 0x5393c5
mov dword [esp + 4], esi
jmp 0x539486
fcompp
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x694de4]
fmul dword [0x694dfc]
fnstcw word [esp + 0x24]
mov eax, dword [esp + 0x24]
or byte [esp + 0x25], 0xc
fldcw word [esp + 0x24]
mov dword [esp + 0x24], eax
fistp dword [esp + 0x58]
fldcw word [esp + 0x24]
mov ebp, dword [esp + 0x58]
mov dword [0x7091d0], ebp
add ebp, dword [esp + 0x1c]
mov eax, dword [ebp*4 + 0x7d4120]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, dword [eax*4 + 0x92d4c8]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x10], eax
mov edi, dword [ecx]
call dword [edi + 0x14]
test eax, eax
je 0x539684
mov dword [esp + 0x94], 0
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 8]
mov eax, dword [eax*4 + 0x92d4c8]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x8c]
push 6
push dword [edx + 0xc]
push eax
call fcn.0052fbd0
mov byte [esp + 0x24], 0
add esp, 0x10
xor edi, edi
lea eax, [eax]
mov ecx, dword [esp + edi*4 + 0x94]
test ecx, ecx
je 0x539550
xor ebp, ebp
xor al, al
test ebx, ebx
jle 0x539545
cmp ecx, dword [esp + ebp*4 + 0x64]
jne 0x539540
mov al, 1
jmp 0x539545
inc ebp
cmp ebp, ebx
jl 0x539533
test al, al
jne 0x539550
mov byte [esp + 0x14], 1
jmp 0x539556
inc edi
cmp edi, 6
jl 0x539520
cmp dword [esp + 0x18], 0
jne 0x539561
mov cl, 1
jmp 0x539586
lea eax, [esp + 0x88]
lea ecx, [esp + 0x78]
push 0
push 0
push 0
push 0
push 0
push 0
push 1
push ecx
push eax
call fcn.004da560
add esp, 0x24
mov cl, al
cmp dword [esp + 0x18], 0
fldz
jne 0x539593
mov dl, 1
jmp 0x5395d8
fld dword [esp + 0x90]
fsub dword [esp + 0x80]
fabs
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fst st(1)
fcomp dword [0x694dd8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5395c4
mov ebp, 1
jmp 0x5395c6
xor ebp, ebp
xor eax, eax
xor edx, edx
test ebp, ebp
jne 0x5395cf
inc eax
test al, al
jne 0x5395d8
mov edx, 1
cmp byte [esp + 0x14], 0
jne 0x5397d7
test cl, cl
je 0x5397e0
test dl, dl
je 0x5397e7
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0xc]
push dword [esp + 0x1c]
fstp st(0)
call fcn.0053b600
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x539670
mov dword [esp + ebx*4 + 0x64], ebp
mov eax, dword [esp + 0xcc]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [eax + 4]
push dword [eax]
inc ebx
call fcn.004a58e0
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [ebp + 0x374]
fld dword [esp + 0x48]
add esp, 0x10
fstp dword [ebp + 0x378]
mov dword [ebp + 0x18c], 0
mov eax, dword [ebp + 0x4c]
push 0
push eax
call fcn.00581500
pop ecx
pop ecx
jmp 0x539684
push ebp
call fcn.004db310
test ebp, ebp
pop ecx
je 0x539684
mov ecx, ebp
mov edi, dword [ecx]
push 1
call dword [edi + 8]
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x20]
jl 0x5391f8
cmp ebx, 3
jge 0x5396d0
xor edi, edi
test ebx, ebx
jle 0x5396be
mov ebp, dword [esp + edi*4 + 0x64]
push ebp
call fcn.004db310
test ebp, ebp
pop ecx
je 0x5396b9
mov ecx, ebp
mov esi, dword [ecx]
push 1
call dword [esi + 8]
inc edi
cmp edi, ebx
jl 0x5396a1
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
xor edi, edi
cmp ebx, 0x80000000
mov dword [esp + 8], ebx
sbb dword [esp + 8], 0xffffffff
sar dword [esp + 8], 1
jmp 0x53970f
mov eax, ebx
mov esi, dword [esp + edi*4 + 0x64]
dec eax
mov ecx, esi
sub eax, edi
mov ebp, dword [esp + eax*4 + 0x64]
push 0x186a0
push ebp
call fcn.004f6220
mov ecx, ebp
push 0x186a0
push esi
call fcn.004f6220
inc edi
cmp edi, dword [esp + 8]
jl 0x5396e7
mov eax, ebx
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x53977a
mov eax, ebx
mov edx, dword [esp + 0x64]
dec eax
cmp eax, 0x80000000
sbb eax, 0xffffffff
add edx, 0x34
sar eax, 1
mov esi, dword [esp + eax*4 + 0x64]
lea eax, [esi + 0x34]
push dword [edx + 4]
push dword [edx]
push dword [eax + 4]
push dword [eax]
call fcn.004a58e0
add esp, 0x10
fstp dword [esp + 0x3c]
lea ecx, [esi + 4]
push dword [esp + 0x3c]
call fcn.004bba80
cmp dword [esi + 0x244], 0xb
jne 0x539770
mov ecx, esi
call fcn.004f7920
mov dword [esi + 0x244], 0x25
cmp ebx, 1
jle 0x5397b3
mov ecx, dword [esp + 0x64]
mov ebp, 1
mov al, byte [ecx + 0x151]
and al, 0xfd
or al, 2
cmp ebx, 1
mov byte [ecx + 0x151], al
jle 0x5397b3
lea eax, [eax]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + ebp*4 + 0x64]
push eax
call fcn.004f07d0
inc ebp
cmp ebp, ebx
jl 0x5397a0
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x53918a
fcompp
jmp 0x5391b0
fcompp
jmp 0x53941a
fstp st(0)
jmp 0x539684
fstp st(0)
jmp 0x539684
fstp st(0)
jmp 0x539684