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

Disassembly:
push ebx
push esi
push edi
push ebp
mov eax, dword [0x78170c]
sub esp, 0x120
mov ebp, 0x780c88
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], 0
cmp byte [ebp + 0x24], 0
mov ebx, ebp
fldz
je 0x5c5708
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x5c4c72
cmp dword [0x974b2c], eax
jbe 0x5c5710
mov dword [ebp + 0x2c], 0
fld dword [ebp + 0x30]
fst st(1)
fcomp dword [0x69d004]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5c5714
mov byte [esp + 0x10], 1
mov edi, dword [ebp]
cmp edi, 2
mov bl, 1
mov dl, 1
mov cl, 1
mov al, 1
je 0x5c4c21
cmp edi, 4
je 0x5c4c21
xor dl, dl
test dl, dl
jne 0x5c4c2c
cmp edi, 8
je 0x5c4c2c
xor al, al
test al, al
jne 0x5c4c37
cmp edi, 9
je 0x5c4c37
xor cl, cl
test cl, cl
jne 0x5c4c45
cmp edi, 0xa
je 0x5c4c45
mov byte [esp + 0x10], 0
cmp byte [esp + 0x10], 0
jne 0x5c4c53
cmp edi, 0xb
je 0x5c4c53
xor bl, bl
mov eax, dword [ebp + 0x18]
push ebx
push eax
push eax
fst dword [esp]
lea eax, [ebp + 4]
push dword [ebp + 0x10]
push eax
fstp st(0)
call fcn.004d82d0
add esp, 0x14
jmp 0x5c56cb
fld dword [ebp + 0x14]
fmul dword [0x975424]
fadd dword [ebp + 0x10]
fstp dword [ebp + 0x10]
lea esi, [ebp + 4]
lea edi, [esp + 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [0x974b2c]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
fild qword [esp + 0x30]
fsubr dword [ebp + 0x20]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x30]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [ebp]
cmp eax, 0xb
mov edx, dword [ebp]
ja case.default.0x5c4cd7
jmp dword [eax*4 + 0x69d13c]
cmp dword [esp + 0x14], 0xdac
jge 0x5c4e02
movzx eax, byte [ebp + 0x24]
and eax, 1
je 0x5c5700
cmp dword [ebp + 0x1c], 0
je 0x5c56e8
fstp st(0)
call fcn.006499f0
and eax, 0xffff
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], eax
mov dword [esp + 0xcc], 0
fild dword [esp + 0x30]
push 0
push 0
fmul dword [0x69d008]
push 0
push 0
fmul dword [0x69d00c]
push ecx
push eax
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
fadd dword [0x69d010]
fstp dword [esp]
mov eax, dword [ebp + 0x1c]
lea esi, [esp + 0xe4]
add eax, 0x34
push 0
push esi
push eax
push 0x3a
call fcn.00563cc0
add esp, 0x28
call fcn.006499f0
lea esi, [ebp + 4]
lea edi, [esp + 0x4c]
movsd dword es:[edi], dword [esi]
and eax, 0xffff
push 0
push 0
push 0
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x64]
fadd dword [0x69d014]
lea edi, [esp + 0x4c]
mov dword [esp + 0x40], eax
push edi
push eax
fstp dword [esp + 0x6c]
fild dword [esp + 0x48]
mov dword [esp + 0xf8], 0x3de147ae
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
fmul dword [0x69d008]
fmul dword [0x69d018]
fadd dword [0x69d010]
fstp dword [esp]
lea eax, [esp + 0x64]
lea edx, [esp + 0xf0]
push 0
push edx
push eax
push 0x3a
call fcn.00563cc0
add esp, 0x28
jmp 0x5c56bb
cmp dword [ebp + 0x1c], 0
je 0x5c56f0
fstp st(0)
call fcn.006499f0
movzx eax, ax
and eax, 0xf
jne 0x5c4e66
cmp byte [ebp + 0x26], 0
jne 0x5c4e66
mov edi, dword [ebp + 0x1c]
mov ebx, 0xe
cmp dword [edi + 0x29c], 5
jne 0x5c4e34
mov bl, 3
mov ecx, edi
push ebx
mov esi, dword [ecx]
call dword [esi + 0x50]
test al, al
je 0x5c4e66
mov ecx, edi
lea eax, [esp + 0x58]
mov esi, dword [ecx]
push eax
push ebx
call dword [esi + 0x4c]
lea eax, [esp + 0x58]
push dword [0x69d004]
push dword [0x69d010]
push eax
call fcn.005604f0
add esp, 0xc
mov eax, dword [0x974b2c]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
fild qword [esp + 0x30]
fcomp dword [ebp + 0x28]
fnstsw ax
test ah, 0x45
jne 0x5c4f22
call fcn.006499f0
movzx ecx, ax
mov eax, dword [0x974b2c]
add eax, 0x7d
and ecx, 0x7f
add ecx, eax
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fstp dword [ebp + 0x28]
mov eax, dword [ebp + 0x1c]
lea edi, [esp + 0x64]
add eax, 0x34
lea esi, [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.006499f0
movzx edi, ax
xor esi, esi
and edi, 1
inc edi
test edi, edi
jle 0x5c4f22
lea eax, [eax]
lea eax, [esp + 0x3c]
mov dword [esp + 0xe4], 0
lea edx, [esp + 0xe4]
mov dword [esp + 0xe8], 0
push 0
push 0
push 0
push 0
push eax
lea eax, [esp + 0x78]
push dword [0x69d01c]
push 0
push edx
push eax
push 0x2a
mov dword [esp + 0x114], 0
call fcn.00563cc0
inc esi
add esp, 0x28
cmp esi, edi
jl 0x5c4ed0
mov eax, dword [0xa0d898]
and eax, 1
je 0x5c4fd5
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
push 1
push 0
push dword [0x69d004]
push dword [0x69d004]
push dword [0x69d014]
push dword [0x69d020]
push dword [esp + 0x110]
push dword [esp + 0x110]
push dword [esp + 0x110]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push 0
call fcn.00567700
mov eax, dword [0x695538]
add esp, 0x34
push dword [0x69d018]
push 0
push dword [0x69d004]
push 0
push 0
push 1
push 1
push eax
lea eax, [esp + 0x60]
push dword [0x69d024]
push dword [0x69d028]
push eax
push 0xff
push 0
push 0x64
push 0xc8
jmp 0x5c5010
mov eax, dword [0x695538]
push dword [0x69d018]
push 0
push dword [0x69d004]
push 0
push 0
push 1
push 1
push eax
lea eax, [esp + 0x60]
push dword [0x69d024]
push dword [0x69d02c]
push eax
push 0xff
push 0
push 0
push 0x80
push ebp
call fcn.00542490
add esp, 0x40
mov eax, dword [0x695554]
push dword [0x69d018]
push 0
push dword [0x69d004]
push 0
push 0
push 0
push 0
push eax
lea eax, [esp + 0x60]
push dword [0x69d024]
push dword [ebp + 0x10]
push eax
mov eax, ebp
inc eax
push 0xff
push 0
push 0xf
push 0x1e
push eax
call fcn.00542490
add esp, 0x40
jmp 0x5c56bb
mov eax, dword [0xa0d898]
and eax, 1
je 0x5c5120
mov dword [esp + 0x104], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
push 1
push 0
push dword [0x69d010]
push dword [0x69d014]
push dword [0x69d014]
push dword [0x69d030]
push dword [esp + 0x11c]
push dword [esp + 0x11c]
push dword [esp + 0x11c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push 0
fstp st(0)
call fcn.00567700
mov eax, dword [0x695538]
add esp, 0x34
push dword [0x69d018]
push 0
push dword [0x69d004]
push 0
push 0
push 1
push 1
push eax
lea eax, [esp + 0x60]
push dword [0x69d034]
push dword [0x69d02c]
push eax
push 0xff
push 0xc8
push 0xff
push 0xff
push ebp
jmp 0x5c5161
mov eax, dword [0x695538]
push dword [0x69d018]
push 0
push dword [0x69d004]
push 0
push 0
push 1
push 1
push eax
lea eax, [esp + 0x60]
fstp st(0)
push dword [0x69d034]
push dword [0x69d02c]
push eax
push 0xff
push 0x64
push 0x80
push 0x80
push ebp
call fcn.00542490
add esp, 0x40
mov eax, dword [0x695554]
push dword [0x69d018]
push 0
push dword [0x69d004]
push 0
push 0
push 0
push 0
push eax
lea eax, [esp + 0x60]
push dword [0x69d034]
push dword [ebp + 0x10]
push eax
mov eax, ebp
inc eax
push 0xff
push 0x19
push 0x1e
push 0x1e
push eax
call fcn.00542490
add esp, 0x40
jmp 0x5c56bb
lea esi, [ebp + 4]
lea edi, [esp + 0x70]
movsd dword es:[edi], dword [esi]
fstp st(0)
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
push dword [0x69d028]
push eax
mov eax, dword [esp + 0x80]
push eax
mov dword [esp + 0x3c], eax
push dword [esp + 0x80]
call fcn.004d4f30
mov eax, dword [ebp + 0x18]
add esp, 0x14
push eax
push dword [0x69d028]
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x80]
call fcn.004d4c30
mov al, byte [ebp + 0x24]
add esp, 0x14
cmp al, 0xa
jae 0x5c56bb
cmp al, 1
jne 0x5c5286
lea esi, [ebp + 4]
lea edi, [esp + 0xa8]
movsd dword es:[edi], dword [esi]
push 0
push 0
push 1
push 0
push 0
push 0
movsd dword es:[edi], dword [esi]
push 1
movsd dword es:[edi], dword [esi]
fld dword [esp + 0xcc]
fadd dword [0x69d038]
lea eax, [esp + 0x98]
lea edi, [esp + 0xc0]
push edi
push eax
lea eax, [esp + 0xcc]
fstp dword [esp + 0xd4]
push dword [0x69d03c]
push eax
call fcn.004d8b00
add esp, 0x2c
test al, al
je 0x5c5280
fld dword [esp + 0x84]
jmp 0x5c5283
fld dword [ebp + 0xc]
fstp dword [ebp + 0x34]
mov al, byte [ebp + 0x24]
mov dword [esp], 0
and eax, 0xff
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul dword [0x69d040]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x30]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, eax
mov dword [esp + 4], eax
mov ecx, edx
lea eax, [ecx + edx*4]
test eax, eax
mov dword [esp + 4], eax
jle 0x5c56bb
call fcn.006499f0
movzx eax, ax
fldz
fldz
and eax, 0xff
lea edi, [esp + 0xb4]
mov dword [esp + 0x30], eax
lea esi, [ebx + 4]
fild dword [esp + 0x30]
fmul dword [0x69d044]
movsd dword es:[edi], dword [esi]
fstp st(2)
fld st(1)
fsin
fnstsw ax
movsd dword es:[edi], dword [esi]
test eax, 0x400
movsd dword es:[edi], dword [esi]
je 0x5c5325
call fcn.00642920
fsin
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp st(1)
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esp + 0xb4]
fstp dword [esp + 0xb4]
fld st(1)
fcos
fnstsw ax
test eax, 0x400
je 0x5c5357
call fcn.00642920
fcos
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp st(2)
fld dword [esp + 0x20]
fmul st(2)
fadd dword [esp + 0xb8]
fstp dword [esp + 0xb8]
fld dword [0x69d010]
fadd dword [ebx + 0x34]
fstp dword [esp + 0xbc]
fcompp
call fcn.006499f0
mov esi, eax
call fcn.006499f0
and eax, 0xffff
and esi, 0xffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x108], 0
fild dword [esp + 0x30]
push 0
push 0
fmul dword [0x69d008]
lea edx, [esp + 0x110]
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
fmul dword [0x69d048]
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 + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], esi
fldcw word [esp + 0x24]
fild dword [esp + 0x38]
add eax, 0xffffff4c
push eax
fmul dword [0x69d008]
fmul dword [0x69d028]
fnstcw word [esp + 0x28]
mov eax, dword [esp + 0x28]
or byte [esp + 0x29], 0xc
fldcw word [esp + 0x28]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x48]
fistp dword [esp + 0x3c]
fldcw word [esp + 0x28]
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffffd
push ecx
push eax
lea eax, [esp + 0xc8]
push dword [0x69d004]
push 0
push edx
push eax
push 0x2a
call fcn.00563cc0
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add esp, 0x28
cmp eax, dword [esp + 4]
jl 0x5c52e3
jmp 0x5c56bb
mov al, byte [ebp + 0x24]
cmp al, 5
jae 0x5c5704
and eax, 0xff
xor edi, edi
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul dword [0x69d04c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fnstcw word [esp + 0x1c]
mov eax, dword [esp + 0x1c]
or byte [esp + 0x1d], 0xc
fldcw word [esp + 0x1c]
mov dword [esp + 0x1c], eax
fistp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fldcw word [esp + 0x1c]
mov edx, eax
mov dword [esp + 8], eax
mov ecx, edx
lea eax, [ecx + edx*4]
mov dword [esp + 8], eax
add eax, eax
test eax, eax
mov dword [esp + 8], eax
fstp st(0)
jle 0x5c56bb
lea eax, [eax]
call fcn.006499f0
movzx eax, ax
and eax, 0xff
add eax, 0xffffff80
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esp + 0xc0]
call fcn.006499f0
movzx eax, ax
and eax, 0xff
add eax, 0xffffff80
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esp + 0xc4]
call fcn.006499f0
movzx eax, ax
lea ecx, [esp + 0xc0]
and eax, 0x7f
inc eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esp + 0xc8]
call fcn.004dfea0
movzx eax, byte [ebx + 0x24]
fldz
inc eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul dword [esp + 0x24]
fmul dword [0x69d050]
fstp st(1)
fld dword [esp + 0xc0]
fmul st(1)
fstp dword [esp + 0xc0]
fld dword [esp + 0xc4]
fmul st(1)
fstp dword [esp + 0xc4]
fld dword [esp + 0xc8]
fmul st(1)
fstp dword [esp + 0xc8]
fld dword [esp + 0xc0]
fadd dword [ebx + 4]
fstp dword [esp + 0xc0]
fld dword [esp + 0xc4]
fadd dword [ebx + 8]
fstp dword [esp + 0xc4]
fld dword [esp + 0xc8]
fadd dword [ebx + 0xc]
fstp dword [esp + 0xc8]
fld dword [esp + 0xc8]
fadd dword [0x69d010]
fstp dword [esp + 0xc8]
fstp st(0)
call fcn.006499f0
mov esi, eax
call fcn.006499f0
and eax, 0xffff
and esi, 0xffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x114], 0
fild dword [esp + 0x30]
push 0
push 0
fmul dword [0x69d008]
lea edx, [esp + 0x11c]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
fmul dword [0x69d048]
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 + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], esi
fldcw word [esp + 0x24]
fild dword [esp + 0x38]
add eax, 0xffffff4c
push eax
fmul dword [0x69d008]
fmul dword [0x69d028]
fnstcw word [esp + 0x28]
mov eax, dword [esp + 0x28]
or byte [esp + 0x29], 0xc
fldcw word [esp + 0x28]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x48]
fistp dword [esp + 0x3c]
fldcw word [esp + 0x28]
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffffd
push ecx
push eax
lea eax, [esp + 0xd4]
push dword [0x69d004]
push 0
push edx
push eax
push 0x2b
call fcn.00563cc0
inc edi
add esp, 0x28
cmp edi, dword [esp + 8]
jl 0x5c54e0
cmp dword [esp + 0x14], 0
jle 0x5c56c7
inc byte [ebp + 0x24]
jmp 0x5c56cb
mov byte [ebp + 0x24], 0
inc dword [esp + 0x18]
add ebp, 0x38
cmp dword [esp + 0x18], 0x30
jl 0x5c4bc0
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x5c4d76
fstp st(0)
jmp 0x5c4f22
fstp st(0)
jmp 0x5c56bb
fstp st(0)
jmp 0x5c56bb
fstp st(0)
jmp 0x5c56bb
fstp st(0)
jmp 0x5c56cb
fstp st(0)
jmp 0x5c56cb
fstp st(0)
jmp 0x5c56cb