Function at 0x4d7d60
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 [0x16d89b4]
fld dword [esp + 0x54]
mov ebx, eax
fmul dword [ebx + 0x5000]
mov eax, dword [0xca26c0]
add esp, 8
test eax, eax
fstp dword [esp + 0x18]
mov dword [esp + 0x24], 0x3f800000
mov dword [esp + 0x2c], 0
je 0x4d7dd7
push edi
mov ecx, ebx
call fcn.004decd0
fstp dword [esp + 0x28]
fild dword [0x11cbca0]
add esp, 4
fmul dword [esp + 0x24]
fmul dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul dword [ebx + 0x5004]
fsubp st(1)
fmul dword [0x568f9c]
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 0x4d7e00
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 0x4d81ea
nop
mov cl, byte [ebp]
test cl, cl
je 0x4d81ea
cmp dword [esp + 0x24], edi
jge 0x4d81ea
mov esi, dword [0xca26c0]
test esi, esi
je 0x4d7f0f
mov edx, dword [0x161734c]
mov eax, dword [edx + 0x20]
sub eax, 8
je 0x4d7eea
dec eax
je 0x4d7eae
dec eax
jne 0x4d7f0f
cmp cl, 0x81
mov al, byte [ebp + 1]
jb 0x4d7e7c
cmp cl, 0x9f
jbe 0x4d7e8e
cmp cl, 0xe0
jb 0x4d7f0f
cmp cl, 0xef
ja 0x4d7f0f
cmp al, 0x40
jb 0x4d7e96
cmp al, 0x7e
jbe 0x4d7e9e
cmp al, 0x80
jb 0x4d7f0f
cmp al, 0xfc
ja 0x4d7f0f
movzx edi, cl
movzx eax, al
shl edi, 8
add edi, eax
add ebp, 2
jmp 0x4d7f13
movzx eax, byte [ebp + 1]
movzx edx, cl
shl edx, 8
add edx, eax
mov eax, edx
shr eax, 8
cmp al, 0xa1
jb 0x4d7ec7
cmp al, 0xc6
jbe 0x4d7ecf
cmp al, 0xc9
jb 0x4d7f0f
cmp al, 0xf9
ja 0x4d7f0f
cmp dl, 0x40
jb 0x4d7ed9
cmp dl, 0x7e
jbe 0x4d7ee3
cmp dl, 0xa1
jb 0x4d7f0f
cmp dl, 0xfe
ja 0x4d7f0f
mov edi, edx
add ebp, 2
jmp 0x4d7f13
cmp cl, 0xb0
mov al, byte [ebp + 1]
jb 0x4d7f0f
cmp cl, 0xc8
ja 0x4d7f0f
cmp al, 0xa0
jbe 0x4d7f0f
cmp al, 0xff
jae 0x4d7f0f
movzx edi, cl
movzx ecx, al
shl edi, 8
add edi, ecx
add ebp, 2
jmp 0x4d7f13
movzx edi, cl
inc ebp
cmp edi, 0x5e
jne 0x4d7f74
test ebp, ebp
je 0x4d7fc0
mov al, byte [ebp]
cmp al, 0x5e
je 0x4d7fc0
cmp al, 0x30
jb 0x4d7fc0
cmp al, 0x37
ja 0x4d7fc0
mov dl, al
and dl, 7
cmp dl, 7
jne 0x4d7f55
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
inc ebp
jmp 0x4d81de
and eax, 7
mov edx, dword [eax*4 + 0x5405d8]
mov eax, dword [esp + 0x54]
mov cl, byte [eax + 3]
mov dword [esp + 0x14], edx
mov byte [esp + 0x17], cl
inc ebp
jmp 0x4d81de
cmp edi, 0xa
jne 0x4d7fae
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 0x4d81de
fld dword [esp + 0x48]
fadd dword [0x569080]
fstp dword [esp + 0x48]
jmp 0x4d81de
cmp edi, 0xd
jne 0x4d7fc0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
jmp 0x4d81de
push ebx
mov eax, edi
call fcn.004dea30
mov ecx, dword [esp + 0x20]
add esp, 4
cmp edi, 0xff
mov esi, eax
mov dword [esp + 0x10], ecx
jbe 0x4d7fe9
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 0x4d8013
fld dword [esp + 0x20]
fadd dword [esp + 0x30]
fstp dword [esp + 0x20]
fld dword [esp + 0x60]
fcomp dword [0x568e64]
fnstsw ax
test ah, 0x44
jnp 0x4d803d
fld dword [esp + 0x10]
fmul dword [esi + 0x10]
fsubr dword [esp + 0x60]
fmul dword [0x568e70]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x64]
cmp eax, 3
mov edi, dword [esp + 0x10]
je 0x4d804f
cmp eax, 6
jne 0x4d80b1
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.004d7cb0
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.004d7cb0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x88]
add esp, 0x30
cmp edx, eax
jne 0x4d81ab
mov eax, dword [0x14073b8]
test eax, eax
jne 0x4d8136
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x16c35c0], eax
mov dword [0x14073b8], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [0x16c35c0]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
test al, 1
je 0x4d81ab
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.004d7cb0
add esp, 0x30
fld dword [esp + 0x60]
fcomp dword [0x568e64]
fnstsw ax
test ah, 0x44
jnp 0x4d81c6
fld dword [esp + 0x44]
fadd dword [esp + 0x60]
jmp 0x4d81d1
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 0x4d7e30
cmp dword [esp + 0x58], edi
pop ebp
jne 0x4d8293
mov eax, dword [0x14073b8]
test eax, eax
jne 0x4d8213
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x16c35c0], eax
mov dword [0x14073b8], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [0x16c35c0]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
test al, 1
je 0x4d8293
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.004d7cb0
add esp, 0x30
push 0
call fcn.004ddcf0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x30
ret