Function at 0x4c7720
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb4
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x40]
mov edx, dword [0x45464c]
call fcn.00404490
xor eax, eax
push ebp
push 0x4c861a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4c7784
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x4c7767
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
mov bx, 0xfffc
call fcn.004030dc
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
mov bx, 0xffff
call fcn.004030dc
test al, al
jne 0x4c7758
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c7798
xor eax, eax
push ebp
push 0x4c7a20
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2b8], 0
je 0x4c77da
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a8]
mov edx, dword [ebp - 4]
mov word [edx + 0x1a4], ax
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1aa]
mov edx, dword [ebp - 4]
mov word [edx + 0x1a6], ax
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3d0]
mov ecx, 0x14
xor edx, edx
div ecx
mov dword [ebp - 0xc], eax
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x3d0], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
add dword [eax + 0x370], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
add dword [eax + 0x374], edx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x304], 0
jne 0x4c79f9
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a4]
mov edx, dword [ebp - 4]
cmp ax, word [edx + 0x1a8]
jae 0x4c78af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
cmp eax, dword [0x4e9e9c]
jl 0x4c78af
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x1a8]
mov ecx, 0x4b
xor edx, edx
div ecx
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x1a4]
add eax, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
movzx edx, word [edx + 0x1a8]
cmp eax, edx
jge 0x4c7893
mov eax, dword [ebp - 4]
mov dx, word [ebp - 0x18]
add word [eax + 0x1a4], dx
jmp 0x4c78a7
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a8]
mov edx, dword [ebp - 4]
mov word [edx + 0x1a4], ax
mov eax, dword [ebp - 4]
call fcn.004c4a24
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a6]
mov edx, dword [ebp - 4]
cmp ax, word [edx + 0x1aa]
jae 0x4c7934
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x374]
cmp eax, dword [0x4e9ea0]
jl 0x4c7934
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x1aa]
mov ecx, 0x12
xor edx, edx
div ecx
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x1a6]
add eax, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
movzx edx, word [edx + 0x1aa]
cmp eax, edx
jge 0x4c7918
mov eax, dword [ebp - 4]
mov dx, word [ebp - 0x18]
add word [eax + 0x1a6], dx
jmp 0x4c792c
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1aa]
mov edx, dword [ebp - 4]
mov word [edx + 0x1a6], ax
mov eax, dword [ebp - 4]
call fcn.004c4a24
mov eax, dword [ebp - 4]
cmp word [eax + 0x1a4], 0
jne 0x4c79bf
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34d], 0
je 0x4c79a6
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x350]
cmp eax, 0xea60
jbe 0x4c79a6
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x350], eax
mov eax, dword [ebp - 4]
call fcn.004c022c
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a8]
mov edx, dword [ebp - 4]
mov word [edx + 0x1a4], ax
mov eax, dword [ebp - 4]
call fcn.004c4a24
mov ecx, 1
mov edx, 0x4c8654
mov eax, dword [ebp - 4]
call fcn.004bb124
mov eax, dword [ebp - 4]
cmp word [eax + 0x1a4], 0
jne 0x4c79bf
mov eax, dword [ebp - 4]
mov bx, 0xfff9
call fcn.004030dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
cmp eax, dword [0x4e9e9c]
jl 0x4c79db
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x370], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x374]
cmp eax, dword [0x4e9ea0]
jl 0x4c7a16
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x374], edx
jmp 0x4c7a16
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x308]
cmp eax, 0x2710
jbe 0x4c7a16
mov eax, dword [ebp - 4]
call fcn.004bb300
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c7a34
xor eax, eax
push ebp
push 0x4c7d45
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x304], 0
jne 0x4c7cea
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb8], 0
jg 0x4c7a7a
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb4], 0
jg 0x4c7a7a
mov eax, dword [ebp - 4]
cmp dword [eax + 0xbc], 0
jle 0x4c7cea
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x34]
mov edx, eax
add edx, edx
lea edx, [edx + edx*4]
mov eax, 0x190
call fcn.0045457c
mov edx, 0x258
sub edx, eax
mov dword [ebp - 0x1c], edx
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x260]
cmp eax, dword [ebp - 0x1c]
jb 0x4c7cf8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x304], 0
jne 0x4c7cf8
call sub.kernel32.dll_GetTickCount
mov edx, eax
mov eax, dword [ebp - 4]
sub edx, dword [eax + 0x260]
sub edx, dword [ebp - 0x1c]
mov eax, 0xc8
call fcn.0045457c
mov dword [ebp - 0xc], eax
call sub.kernel32.dll_GetTickCount
add eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x260], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb4], 0
jg 0x4c7b1c
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb8], 0
jg 0x4c7b1c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x258], 0
jle 0x4c7cf8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x254], 0
jg 0x4c7b35
mov eax, dword [ebp - 4]
mov dword [eax + 0x254], 1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x25c], 0
jg 0x4c7b4e
mov eax, dword [ebp - 4]
mov dword [eax + 0x25c], 1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x258], 0
jg 0x4c7b67
mov eax, dword [ebp - 4]
mov dword [eax + 0x258], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb4]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x254]
jge 0x4c7b94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb4], edx
jmp 0x4c7bb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x254]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x254]
mov edx, dword [ebp - 4]
sub dword [edx + 0xb4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x25c]
jge 0x4c7bdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb8], edx
jmp 0x4c7bfd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x25c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x25c]
mov edx, dword [ebp - 4]
sub dword [edx + 0xb8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x258]
jge 0x4c7c2a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xbc], edx
jmp 0x4c7c48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x258]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x258]
mov edx, dword [ebp - 4]
sub dword [edx + 0xbc], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x34]
mov ecx, 0xa
xor edx, edx
div ecx
add eax, 5
mov edx, dword [ebp - 4]
mov dword [edx + 0x254], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x34]
mov ecx, 0xa
xor edx, edx
div ecx
add eax, 5
mov edx, dword [ebp - 4]
mov dword [edx + 0x25c], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x258], 5
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004bcaa4
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a4]
mov edx, dword [ebp - 4]
cmp ax, word [edx + 0x1a8]
jne 0x4c7cc7
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb4], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xbc], edx
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x1a6]
mov edx, dword [ebp - 4]
cmp ax, word [edx + 0x1aa]
jne 0x4c7cf8
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb8], edx
jmp 0x4c7cf8
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x260], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [0x4e9e9c]
neg edx
cmp eax, edx
jge 0x4c7d3b
mov eax, dword [ebp - 4]
cmp word [eax + 0x1a4], 1
jbe 0x4c7d3b
mov eax, dword [ebp - 4]
dec word [eax + 0x1a4]
mov eax, dword [ebp - 4]
mov edx, dword [0x4e9e9c]
add dword [eax + 0x370], edx
mov eax, dword [ebp - 4]
call fcn.004c4a24
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c7d59
xor eax, eax
push ebp
push 0x4c801b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x378], 0
je 0x4c7def
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x37c]
cmp eax, 0x7530
ja 0x4c7de4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
cmp byte [eax + 0x304], 0
jne 0x4c7de4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
cmp byte [eax + 0x2fc], 0
jne 0x4c7de4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xf
jg 0x4c7de4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x28]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xf
jle 0x4c7def
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x378], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x380], 0
je 0x4c7e3f
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x384]
cmp eax, 0x7530
ja 0x4c7e34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x380]
cmp byte [eax + 0x304], 0
jne 0x4c7e34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x380]
cmp byte [eax + 0x2fc], 0
je 0x4c7e3f
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x380], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x388], 0
je 0x4c7e8f
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x38c]
cmp eax, 0x1770
ja 0x4c7e84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x388]
cmp byte [eax + 0x304], 0
jne 0x4c7e84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x388]
cmp byte [eax + 0x2fc], 0
je 0x4c7e8f
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x388], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x288], 0
je 0x4c7f0b
mov eax, dword [ebp - 4]
mov byte [eax + 0x2bc], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x288]
cmp byte [eax + 0x304], 0
je 0x4c7ed2
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x288]
sub eax, dword [edx + 0x308]
cmp eax, 0x3e8
ja 0x4c7eff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x288]
cmp byte [eax + 0x2fc], 0
je 0x4c7f0b
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x288]
sub eax, dword [edx + 0x300]
cmp eax, 0x3e8
jbe 0x4c7f0b
mov eax, dword [ebp - 4]
mov word [eax + 0x1a4], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov eax, dword [eax + 8]
dec eax
cmp eax, 0
jl 0x4c7f8a
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov edx, dword [ebp - 8]
call fcn.00411704
cmp byte [eax + 0x304], 0
jne 0x4c7f70
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov edx, dword [ebp - 8]
call fcn.00411704
cmp byte [eax + 0x2fc], 0
jne 0x4c7f70
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov edx, dword [ebp - 8]
call fcn.00411704
mov eax, dword [eax + 0x288]
cmp eax, dword [ebp - 4]
je 0x4c7f81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov edx, dword [ebp - 8]
call fcn.004115a4
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x4c7f20
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2cc], 0
je 0x4c7fb7
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x2d0]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x2d4]
jbe 0x4c7fb7
mov eax, dword [ebp - 4]
call fcn.004bdbf8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2d8], 0
je 0x4c7fe4
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x2dc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x2e0]
jbe 0x4c7fe4
mov eax, dword [ebp - 4]
call fcn.004bdc54
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2e4], 0
je 0x4c8011
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x2e8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x2ec]
jbe 0x4c8011
mov eax, dword [ebp - 4]
call fcn.004bdcd0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c802f
xor eax, eax
push ebp
push 0x4c82ff
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3bc]
cmp eax, 0xea60
jbe 0x4c8079
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x3bc], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0xac], 0
jle 0x4c8079
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004bf520
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3c0]
cmp eax, 0x1f4
jbe 0x4c80b7
mov eax, dword [ebp - 4]
add dword [eax + 0x3c0], 0x1f4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x23a], 0
jne 0x4c80b7
mov eax, dword [ebp - 4]
call fcn.004c759c
mov eax, dword [ebp - 4]
call fcn.004bc83c
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3cc]
cmp eax, 0x1388
jbe 0x4c80da
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x3cc], eax
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3c8]
cmp eax, 0x2710
jbe 0x4c81db
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x3c8], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x288], 0
je 0x4c81db
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28c]
jbe 0x4c81ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x288]
mov eax, dword [eax + 0x29c]
mov eax, dword [eax + 8]
dec eax
cmp eax, 0
jl 0x4c817e
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x288]
mov eax, dword [eax + 0x29c]
mov edx, dword [ebp - 8]
call fcn.00411704
cmp eax, dword [ebp - 4]
jne 0x4c8175
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x288]
mov eax, dword [eax + 0x29c]
mov edx, dword [ebp - 8]
call fcn.004115a4
jmp 0x4c817e
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x4c8140
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x288], edx
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x1a4]
mov ecx, 0xa
xor edx, edx
div ecx
mov edx, dword [ebp - 4]
mov word [edx + 0x1a4], ax
mov eax, dword [ebp - 4]
call fcn.004bf0c4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x290], 0
je 0x4c81db
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x290]
cmp eax, 0x2932e00
jbe 0x4c81db
mov eax, dword [ebp - 4]
mov word [eax + 0x1a4], 0
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3c4]
cmp eax, 0x7530
jbe 0x4c82f5
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x3c4], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x274], 0
je 0x4c823d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
cmp byte [eax + 0x304], 0
jne 0x4c8232
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
cmp byte [eax + 0x2fc], 0
je 0x4c823d
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x274], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
cmp eax, dword [ebp - 4]
jne 0x4c82ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x278]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
cmp eax, 0
jl 0x4c82ae
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x274]
mov eax, dword [eax + 0x278]
mov edx, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x304], 0
jne 0x4c8294
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x2fc], 0
je 0x4c82a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x278]
mov edx, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x44]
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x4c8262
mov eax, dword [ebp - 4]
cmp dword [eax + 0x31c], 0
je 0x4c82d7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31c]
cmp byte [eax + 0x2fc], 0
je 0x4c82d7
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x31c], edx
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
call fcn.004b6980
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c8313
xor eax, eax
push ebp
push 0x4c8546
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x22], 0
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp word [eax + edx*2 + 0x60], 0
jbe 0x4c83f7
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp word [eax + edx*2 + 0x60], 0xea60
jae 0x4c83f7
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sub eax, dword [edx + ecx*4 + 0x1e8]
cmp eax, 0x3e8
jbe 0x4c83f7
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
dec word [eax + edx*2 + 0x60]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
add dword [eax + edx*4 + 0x1e8], 0x3e8
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp word [eax + edx*2 + 0x60], 0
jne 0x4c83f7
mov byte [ebp - 0x21], 1
mov eax, dword [ebp - 8]
sub eax, 8
je 0x4c83e1
dec eax
je 0x4c83b1
dec eax
je 0x4c83c9
dec eax
je 0x4c83ed
jmp 0x4c83f7
mov byte [ebp - 0x22], 1
mov ecx, 1
mov edx, 0x4c8704
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp 0x4c83f7
mov byte [ebp - 0x22], 1
mov ecx, 1
mov edx, 0x4c871c
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp 0x4c83f7
mov eax, dword [ebp - 4]
mov byte [eax + 0x344], 0
jmp 0x4c83f7
mov eax, dword [ebp - 4]
mov byte [eax + 0x35c], 0
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xc
jne 0x4c832e
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp byte [eax + edx + 0x218], 0
jbe case.default.0x4c8453
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp eax, dword [edx + ecx*4 + 0x220]
jbe case.default.0x4c8453
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov byte [eax + edx + 0x218], 0
mov byte [ebp - 0x22], 1
mov eax, dword [ebp - 8]
cmp eax, 5
ja case.default.0x4c8453
jmp dword [eax*4 + 0x4c845a]
mov ecx, 1
mov edx, 0x4c8738
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp case.default.0x4c8453
mov ecx, 1
mov edx, 0x4c8750
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp case.default.0x4c8453
mov ecx, 1
mov edx, 0x4c8768
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp case.default.0x4c8453
mov ecx, 1
mov edx, 0x4c8780
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp case.default.0x4c8453
mov ecx, 1
mov edx, 0x4c879c
mov eax, dword [ebp - 4]
call fcn.004bb124
jmp case.default.0x4c8453
mov ecx, 1
mov edx, 0x4c87b4
mov eax, dword [ebp - 4]
call fcn.004bb124
inc dword [ebp - 8]
cmp dword [ebp - 8], 6
jne 0x4c8409
cmp byte [ebp - 0x21], 0
je 0x4c8511
mov eax, dword [ebp - 4]
call fcn.004ba43c
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 4]
call fcn.004ba5b4
cmp byte [ebp - 0x22], 0
je 0x4c853c
mov eax, dword [ebp - 4]
mov bx, 0xfff7
call fcn.004030dc
push 0
push 0
push 0
push 0
push 0
mov cx, 0x2743
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
call fcn.004b865c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c855a
xor eax, eax
push ebp
push 0x4c85ea
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x3b8]
cmp eax, 0x9c4
jbe 0x4c85e0
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x3b8], eax
mov eax, dword [ebp - 4]
cmp word [eax + 0x60], 0
jbe 0x4c85e0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2bb], 0
je 0x4c85ae
mov eax, dword [ebp - 4]
sub dword [eax + 0x2c4], 0x3e8
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [eax + 0x264]
inc edx
mov eax, dword [ebp - 4]
call fcn.004be3fc
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x370], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x374], edx
mov eax, dword [ebp - 4]
call fcn.004c4a24
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c85fe
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c8621
lea eax, [ebp - 0x40]
mov edx, dword [0x45464c]
call fcn.0040455c
ret