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

Disassembly:
sub esp, 0x30
push ebx
push esi
push edi
mov edi, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x48]
push edi
push eax
call dword [0x1548634]
fld dword [esp + 0x54]
mov ebx, eax
fmul dword [ebx + 0x5000]
mov eax, dword [0xc94090]
add esp, 8
test eax, eax
fstp dword [esp + 0x18]
mov dword [esp + 0x24], 0x3f800000
mov dword [esp + 0x2c], 0
je 0x4cd5f7
push edi
mov ecx, ebx
call fcn.004d4b00
fstp dword [esp + 0x28]
fild dword [0x11bd678]
add esp, 4
fmul dword [esp + 0x24]
fmul dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul dword [ebx + 0x5004]
fsubp st(1)
fmul dword [0x55a634]
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov eax, edx
shr eax, 0x18
mov dword [esp + 0x30], 0
mov byte [esp + 0x33], al
mov eax, esi
push ebp
mov ebp, esi
mov dword [esp + 0x14], edx
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4cd620
sub eax, ecx
test esi, esi
mov ecx, dword [esp + 0x44]
mov edi, eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
je 0x4cda0a
nop
mov cl, byte [ebp]
test cl, cl
je 0x4cda0a
cmp dword [esp + 0x24], edi
jge 0x4cda0a
mov esi, dword [0xc94090]
test esi, esi
je 0x4cd72f
mov edx, dword [0x14bc5c4]
mov eax, dword [edx + 0x20]
sub eax, 8
je 0x4cd70a
dec eax
je 0x4cd6ce
dec eax
jne 0x4cd72f
cmp cl, 0x81
mov al, byte [ebp + 1]
jb 0x4cd69c
cmp cl, 0x9f
jbe 0x4cd6ae
cmp cl, 0xe0
jb 0x4cd72f
cmp cl, 0xef
ja 0x4cd72f
cmp al, 0x40
jb 0x4cd6b6
cmp al, 0x7e
jbe 0x4cd6be
cmp al, 0x80
jb 0x4cd72f
cmp al, 0xfc
ja 0x4cd72f
movzx edi, cl
movzx eax, al
shl edi, 8
add edi, eax
add ebp, 2
jmp 0x4cd733
movzx eax, byte [ebp + 1]
movzx edx, cl
shl edx, 8
add edx, eax
mov eax, edx
shr eax, 8
cmp al, 0xa1
jb 0x4cd6e7
cmp al, 0xc6
jbe 0x4cd6ef
cmp al, 0xc9
jb 0x4cd72f
cmp al, 0xf9
ja 0x4cd72f
cmp dl, 0x40
jb 0x4cd6f9
cmp dl, 0x7e
jbe 0x4cd703
cmp dl, 0xa1
jb 0x4cd72f
cmp dl, 0xfe
ja 0x4cd72f
mov edi, edx
add ebp, 2
jmp 0x4cd733
cmp cl, 0xb0
mov al, byte [ebp + 1]
jb 0x4cd72f
cmp cl, 0xc8
ja 0x4cd72f
cmp al, 0xa0
jbe 0x4cd72f
cmp al, 0xff
jae 0x4cd72f
movzx edi, cl
movzx ecx, al
shl edi, 8
add edi, ecx
add ebp, 2
jmp 0x4cd733
movzx edi, cl
inc ebp
cmp edi, 0x5e
jne 0x4cd794
test ebp, ebp
je 0x4cd7e0
mov al, byte [ebp]
cmp al, 0x5e
je 0x4cd7e0
cmp al, 0x30
jb 0x4cd7e0
cmp al, 0x37
ja 0x4cd7e0
mov dl, al
and dl, 7
cmp dl, 7
jne 0x4cd775
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
inc ebp
jmp 0x4cd9fe
and eax, 7
mov edx, dword [eax*4 + 0x535558]
mov eax, dword [esp + 0x54]
mov cl, byte [eax + 3]
mov dword [esp + 0x14], edx
mov byte [esp + 0x17], cl
inc ebp
jmp 0x4cd9fe
cmp edi, 0xa
jne 0x4cd7ce
test esi, esi
fld dword [esp + 0x50]
fmul dword [ebx + 0x5004]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x44], edx
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
je 0x4cd9fe
fld dword [esp + 0x48]
fadd dword [0x55a728]
fstp dword [esp + 0x48]
jmp 0x4cd9fe
cmp edi, 0xd
jne 0x4cd7e0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
jmp 0x4cd9fe
push ebx
mov eax, edi
call fcn.004d4860
mov ecx, dword [esp + 0x20]
add esp, 4
cmp edi, 0xff
mov esi, eax
mov dword [esp + 0x10], ecx
jbe 0x4cd809
fld dword [esp + 0x28]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x10]
cmp edi, 0xff
fld dword [esp + 0x10]
fmul dword [esi + 8]
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
fmul dword [esi + 0xc]
fstp dword [esp + 0x18]
jbe 0x4cd833
fld dword [esp + 0x20]
fadd dword [esp + 0x30]
fstp dword [esp + 0x20]
fld dword [esp + 0x60]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4cd85d
fld dword [esp + 0x10]
fmul dword [esi + 0x10]
fsubr dword [esp + 0x60]
fmul dword [0x55a4b8]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x64]
cmp eax, 3
mov edi, dword [esp + 0x10]
je 0x4cd86f
cmp eax, 6
jne 0x4cd8d1
mov ecx, dword [esi + 0x2c]
xor edx, edx
cmp eax, 3
setne dl
lea eax, [esp + 0x34]
push eax
mov eax, dword [esi + 0x24]
push ecx
mov ecx, dword [esi + 0x20]
inc edx
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x28]
fild dword [esp + 0x44]
fild dword [esi + 0x18]
push edx
mov edx, dword [esi + 0x1c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
push edx
push edi
push eax
sub esp, 0x10
fstp dword [esp + 0xc]
fild dword [esi + 0x14]
fstp dword [esp + 8]
fld dword [esp + 0x78]
fsub dword [esp + 0x50]
fadd st(1)
fstp dword [esp + 4]
fadd dword [esp + 0x48]
fadd dword [esp + 0x74]
fstp dword [esp]
call fcn.004cd4d0
add esp, 0x30
mov edx, dword [esi + 0x2c]
fld dword [esp + 0x18]
mov eax, dword [esi + 0x28]
fadd dword [esp + 0x44]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x24]
fstp dword [esp + 0x40]
fild dword [esi + 0x18]
push edx
mov edx, dword [esi + 0x20]
push eax
mov eax, dword [esi + 0x1c]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
push eax
push edi
mov edi, dword [esp + 0x58]
push ecx
sub esp, 0xc
fstp dword [esp + 8]
fild dword [esi + 0x14]
fstp dword [esp + 4]
fld dword [esp + 0x74]
fsub dword [esp + 0x4c]
fstp dword [esp]
push edi
call fcn.004cd4d0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x88]
add esp, 0x30
cmp edx, eax
jne 0x4cd9cb
mov eax, dword [0x13f8d90]
test eax, eax
jne 0x4cd956
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x1533240], eax
mov dword [0x13f8d90], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [0x1533240]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
test al, 1
je 0x4cd9cb
movzx eax, byte [esp + 0x5c]
lea eax, [eax + eax*4]
shl eax, 4
mov edx, dword [eax + ebx + 0x2c]
add eax, ebx
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [eax + 0x28]
fild dword [eax + 0x18]
push edx
mov edx, dword [eax + 0x24]
push ecx
mov ecx, dword [eax + 0x20]
push edx
mov edx, dword [eax + 0x1c]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x64]
push ecx
push edx
sub esp, 0xc
fstp dword [esp + 8]
fild dword [eax + 0x14]
fstp dword [esp + 4]
fld dword [esp + 0x3c]
fmul dword [eax + 8]
fsubr dword [esp + 0x74]
fstp dword [esp]
push edi
call fcn.004cd4d0
add esp, 0x30
fld dword [esp + 0x60]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4cd9e6
fld dword [esp + 0x44]
fadd dword [esp + 0x60]
jmp 0x4cd9f1
fld dword [esp + 0x10]
fmul dword [esi + 0x10]
fadd dword [esp + 0x44]
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x44]
inc eax
mov dword [esp + 0x24], eax
test ebp, ebp
mov edi, dword [esp + 0x38]
jne 0x4cd650
cmp dword [esp + 0x58], edi
pop ebp
jne 0x4cdab3
mov eax, dword [0x13f8d90]
test eax, eax
jne 0x4cda33
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x1533240], eax
mov dword [0x13f8d90], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [0x1533240]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
test al, 1
je 0x4cdab3
movzx eax, byte [esp + 0x58]
lea eax, [eax + eax*4]
shl eax, 4
mov edx, dword [eax + ebx + 0x2c]
add eax, ebx
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [eax + 0x28]
fild dword [eax + 0x18]
push edx
mov edx, dword [eax + 0x24]
push ecx
mov ecx, dword [eax + 0x20]
push edx
mov edx, dword [eax + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x60]
push ecx
push edx
sub esp, 0x10
fstp dword [esp + 0xc]
fild dword [eax + 0x14]
fstp dword [esp + 8]
fld dword [esp + 0x48]
fmul dword [eax + 8]
fsubr dword [esp + 0x74]
fstp dword [esp + 4]
fld dword [esp + 0x44]
fadd dword [esp + 0x70]
fstp dword [esp]
call fcn.004cd4d0
add esp, 0x30
push 0
call fcn.004d3b20
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x30
ret