Function at 0x5c4bc0
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 0x5c5728
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x5c4c92
cmp dword [0x974b34], eax
jbe 0x5c5730
mov dword [ebp + 0x2c], 0
fld dword [ebp + 0x30]
fst st(1)
fcomp dword [0x69d004]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5c5734
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 0x5c4c41
cmp edi, 4
je 0x5c4c41
xor dl, dl
test dl, dl
jne 0x5c4c4c
cmp edi, 8
je 0x5c4c4c
xor al, al
test al, al
jne 0x5c4c57
cmp edi, 9
je 0x5c4c57
xor cl, cl
test cl, cl
jne 0x5c4c65
cmp edi, 0xa
je 0x5c4c65
mov byte [esp + 0x10], 0
cmp byte [esp + 0x10], 0
jne 0x5c4c73
cmp edi, 0xb
je 0x5c4c73
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.004d82f0
add esp, 0x14
jmp 0x5c56eb
fld dword [ebp + 0x14]
fmul dword [0x97542c]
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 [0x974b34]
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.0x5c4cf7
jmp dword [eax*4 + 0x69d13c]
cmp dword [esp + 0x14], 0xdac
jge 0x5c4e22
movzx eax, byte [ebp + 0x24]
and eax, 1
je 0x5c5720
cmp dword [ebp + 0x1c], 0
je 0x5c5708
fstp st(0)
call fcn.00649a40
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.00563ce0
add esp, 0x28
call fcn.00649a40
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.00563ce0
add esp, 0x28
jmp 0x5c56db
cmp dword [ebp + 0x1c], 0
je 0x5c5710
fstp st(0)
call fcn.00649a40
movzx eax, ax
and eax, 0xf
jne 0x5c4e86
cmp byte [ebp + 0x26], 0
jne 0x5c4e86
mov edi, dword [ebp + 0x1c]
mov ebx, 0xe
cmp dword [edi + 0x29c], 5
jne 0x5c4e54
mov bl, 3
mov ecx, edi
push ebx
mov esi, dword [ecx]
call dword [esi + 0x50]
test al, al
je 0x5c4e86
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.00560510
add esp, 0xc
mov eax, dword [0x974b34]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
fild qword [esp + 0x30]
fcomp dword [ebp + 0x28]
fnstsw ax
test ah, 0x45
jne 0x5c4f42
call fcn.00649a40
movzx ecx, ax
mov eax, dword [0x974b34]
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.00649a40
movzx edi, ax
xor esi, esi
and edi, 1
inc edi
test edi, edi
jle 0x5c4f42
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.00563ce0
inc esi
add esp, 0x28
cmp esi, edi
jl 0x5c4ef0
mov eax, dword [0xa0d8a0]
and eax, 1
je 0x5c4ff5
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.00567720
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 0x5c5030
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.005424b0
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.005424b0
add esp, 0x40
jmp 0x5c56db
mov eax, dword [0xa0d8a0]
and eax, 1
je 0x5c5140
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.00567720
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 0x5c5181
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.005424b0
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.005424b0
add esp, 0x40
jmp 0x5c56db
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.004d4f50
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.004d4c50
mov al, byte [ebp + 0x24]
add esp, 0x14
cmp al, 0xa
jae 0x5c56db
cmp al, 1
jne 0x5c52a6
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.004d8b20
add esp, 0x2c
test al, al
je 0x5c52a0
fld dword [esp + 0x84]
jmp 0x5c52a3
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 0x5c56db
call fcn.00649a40
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 0x5c5345
call fcn.00642970
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 0x5c5377
call fcn.00642970
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.00649a40
mov esi, eax
call fcn.00649a40
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.00563ce0
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add esp, 0x28
cmp eax, dword [esp + 4]
jl 0x5c5303
jmp 0x5c56db
mov al, byte [ebp + 0x24]
cmp al, 5
jae 0x5c5724
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 0x5c56db
lea eax, [eax]
call fcn.00649a40
movzx eax, ax
and eax, 0xff
add eax, 0xffffff80
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esp + 0xc0]
call fcn.00649a40
movzx eax, ax
and eax, 0xff
add eax, 0xffffff80
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fstp dword [esp + 0xc4]
call fcn.00649a40
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.004dfec0
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.00649a40
mov esi, eax
call fcn.00649a40
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.00563ce0
inc edi
add esp, 0x28
cmp edi, dword [esp + 8]
jl 0x5c5500
cmp dword [esp + 0x14], 0
jle 0x5c56e7
inc byte [ebp + 0x24]
jmp 0x5c56eb
mov byte [ebp + 0x24], 0
inc dword [esp + 0x18]
add ebp, 0x38
cmp dword [esp + 0x18], 0x30
jl 0x5c4be0
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
fstp st(0)
jmp 0x5c4d96
fstp st(0)
jmp 0x5c4f42
fstp st(0)
jmp 0x5c56db
fstp st(0)
jmp 0x5c56db
fstp st(0)
jmp 0x5c56db
fstp st(0)
jmp 0x5c56eb
fstp st(0)
jmp 0x5c56eb
fstp st(0)
jmp 0x5c56eb