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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xb8
cmp dword [0x978818], 4
je 0x538ed0
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.00649a40
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 0x538f42
call fcn.00642970
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 0x7e4eb0
push 1
push edx
push eax
call fcn.006471b0
fldz
fldz
fld dword [esp + 0xc0]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [esp + 0x4c]
fcomp dword [0x97853c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x538ff0
xor al, al
jmp 0x5390b2
fld st(1)
fsub dword [esp + 0x4c]
fcomp dword [0xa10680]
fnstsw ax
test ah, 0x45
jne 0x539010
xor al, al
jmp 0x5390b2
fld st(1)
fmul dword [0x7e4f4c]
fld dword [esp + 0xac]
fmul dword [0x7e4f48]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539036
xor al, al
jmp 0x5390b2
fld st(1)
fmul dword [0x7e4f58]
fld dword [esp + 0xac]
fmul dword [0x7e4f54]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539060
xor al, al
jmp 0x5390b2
fld dword [esp + 0xb4]
fst st(1)
fmul dword [0x7e4f68]
fld st(2)
fmul dword [0x7e4f64]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x539088
xor al, al
jmp 0x5390b2
fld st(0)
fmul dword [0x7e4f74]
fld st(2)
fmul dword [0x7e4f70]
faddp st(1)
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x45
jne 0x5390b0
xor al, al
jmp 0x5390b2
mov al, 1
test al, al
je 0x5397e7
fcompp
call fcn.004bc140
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.004bc200
test eax, eax
je 0x5391a0
call fcn.004bc200
fld dword [eax + 0x74]
fstp dword [esp + 0x48]
call fcn.004bc200
fld dword [eax + 0x74]
fmul dword [esp + 0x48]
fstp dword [esp + 0x54]
call fcn.004bc200
fld dword [eax + 0x70]
fstp dword [esp + 0x44]
call fcn.004bc200
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 0x539178
fld dword [0x694dd8]
fstp st(1)
fld dword [0x694dd0]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x539192
fld dword [0x694dd0]
fstp st(1)
fst dword [esp + 0x40]
jmp 0x5397e0
fld dword [0x694dd8]
fstp dword [esp + 0x40]
fld dword [0x694ddc]
fmul dword [esp + 0x40]
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 0x45
jne 0x5391d0
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.0052fbf0
add esp, 0x10
test al, al
jne 0x5391f6
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x18], 0
jle 0x5396b6
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 4
call fcn.00649a40
mov ebp, eax
call fcn.00649a40
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 0x539278
call fcn.00642970
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 0x5392c6
call fcn.00642970
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.004d53c0
fadd dword [0x694dd8]
add esp, 0x10
cmp byte [esp + 0x87], 0
fstp dword [esp + 0x34]
je 0x5396a4
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 0x539360
fld st(1)
jmp 0x539364
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 0x5393c5
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 [0x975348]
fcomp dword [0x694dd4]
fnstsw ax
test ah, 0x45
jne 0x539450
xor ebp, ebp
mov al, 1
mov edi, dword [esp + 0x1c]
jmp 0x5397f0
call fcn.00649a40
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 + 0x7d4128]
push esi
call fcn.0053a710
pop ecx
test al, al
je 0x539443
cmp ebp, 8
jl 0x5393e5
mov dword [esp + 4], esi
jmp 0x5394a6
fcompp
call fcn.00649a40
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 + 0x7d4128]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, dword [eax*4 + 0x92d4d0]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x10], eax
mov edi, dword [ecx]
call dword [edi + 0x14]
test eax, eax
je 0x5396a4
mov dword [esp + 0x94], 0
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 8]
mov eax, dword [eax*4 + 0x92d4d0]
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.0052fbf0
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 0x539570
xor ebp, ebp
xor al, al
test ebx, ebx
jle 0x539565
cmp ecx, dword [esp + ebp*4 + 0x64]
jne 0x539560
mov al, 1
jmp 0x539565
inc ebp
cmp ebp, ebx
jl 0x539553
test al, al
jne 0x539570
mov byte [esp + 0x14], 1
jmp 0x539576
inc edi
cmp edi, 6
jl 0x539540
cmp dword [esp + 0x18], 0
jne 0x539581
mov cl, 1
jmp 0x5395a6
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.004da580
add esp, 0x24
mov cl, al
cmp dword [esp + 0x18], 0
fldz
jne 0x5395b3
mov dl, 1
jmp 0x5395f8
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 0x5395e4
mov ebp, 1
jmp 0x5395e6
xor ebp, ebp
xor eax, eax
xor edx, edx
test ebp, ebp
jne 0x5395ef
inc eax
test al, al
jne 0x5395f8
mov edx, 1
cmp byte [esp + 0x14], 0
jne 0x5397f7
test cl, cl
je 0x539800
test dl, dl
je 0x539807
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0xc]
push dword [esp + 0x1c]
fstp st(0)
call fcn.0053b620
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x539690
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.004a5900
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.00581520
pop ecx
pop ecx
jmp 0x5396a4
push ebp
call fcn.004db330
test ebp, ebp
pop ecx
je 0x5396a4
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 0x539218
cmp ebx, 3
jge 0x5396f0
xor edi, edi
test ebx, ebx
jle 0x5396de
mov ebp, dword [esp + edi*4 + 0x64]
push ebp
call fcn.004db330
test ebp, ebp
pop ecx
je 0x5396d9
mov ecx, ebp
mov esi, dword [ecx]
push 1
call dword [esi + 8]
inc edi
cmp edi, ebx
jl 0x5396c1
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 0x53972f
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.004f6240
mov ecx, ebp
push 0x186a0
push esi
call fcn.004f6240
inc edi
cmp edi, dword [esp + 8]
jl 0x539707
mov eax, ebx
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x53979a
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.004a5900
add esp, 0x10
fstp dword [esp + 0x3c]
lea ecx, [esi + 4]
push dword [esp + 0x3c]
call fcn.004bbaa0
cmp dword [esi + 0x244], 0xb
jne 0x539790
mov ecx, esi
call fcn.004f7940
mov dword [esi + 0x244], 0x25
cmp ebx, 1
jle 0x5397d3
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 0x5397d3
lea eax, [eax]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + ebp*4 + 0x64]
push eax
call fcn.004f07f0
inc ebp
cmp ebp, ebx
jl 0x5397c0
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x5391aa
fcompp
jmp 0x5391d0
fcompp
jmp 0x53943a
fstp st(0)
jmp 0x5396a4
fstp st(0)
jmp 0x5396a4
fstp st(0)
jmp 0x5396a4