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

Disassembly:
mov al, byte [0x4cdeb0]
sub esp, 0x284
test al, al
je 0x45c0c2
mov al, byte [0x4cde68]
test al, al
je 0x45c0af
mov eax, dword [0x4ce548]
test eax, eax
je 0x45c0a8
push 3
call eax
add esp, 4
mov byte [0x4cde68], 0
mov byte [0x4ce53a], 1
mov eax, 1
add esp, 0x284
ret
mov al, byte [0x4ce53a]
push ebx
push ebp
push esi
test al, al
push edi
mov byte [0x4ce554], 1
je 0x45c164
xor eax, eax
mov bl, byte [0x4ce538]
mov dword [0x4cde80], eax
dec bl
mov dword [0x4cde84], eax
mov al, byte [0x4ce539]
xor esi, esi
mov byte [0x4ce538], bl
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
mov ecx, 0x4c0dc8
shl edx, 5
add edx, eax
lea eax, [eax + edx*4]
mov dl, byte [eax*4 + 0x4c0dc9]
mov eax, 0x4cdebb
mov bl, byte [ecx]
mov byte [eax + 3], 1
test bl, bl
sete bl
mov byte [eax], dl
mov byte [eax + 4], 0x7f
mov byte [esi + 0x4cde80], bl
add ecx, 0x1a14
inc esi
add eax, 0xd0
cmp ecx, 0x4cde68
jl 0x45c11a
mov byte [0x4cde72], 0
mov byte [0x4cde68], 0
call sub.KERNEL32.dll_GetTickCount
mov dword [0x4cde74], eax
mov byte [0x4ce53a], 0
lea ecx, [esp + 0x1c4]
mov byte [0x4cde70], 0
push ecx
call fcn.0045b970
mov edi, 0x4cdeb8
add esp, 4
mov dword [esp + 0x14], edi
mov byte [esp + 0x13], 8
xor ebx, ebx
mov ebp, 0x4c0dc9
mov al, byte [ebx + 0x4cde80]
test al, al
jne 0x45c284
cmp byte [ebp - 1], 1
jne 0x45c217
lea edx, [esp + 0x24]
push ebx
push edx
call fcn.0045c4d0
mov eax, ebx
and eax, 0xff
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x2f]
shl edx, 5
add edx, eax
push ecx
lea eax, [eax + edx*4]
lea eax, [eax*4 + 0x4c0ddc]
push eax
mov dword [esp + 0x30], eax
call fcn.0045bdb0
add esp, 0x10
test eax, eax
jne 0x45c217
mov al, byte [esp + 0x27]
mov ecx, dword [esp + 0x24]
and eax, 0x1f
and ecx, 0xff
lea esi, [esp + 0x24]
lea edx, [eax + eax*2]
lea edi, [eax + edx*4]
mov eax, dword [esp + 0x20]
shl edi, 4
add edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov eax, ebx
and eax, 0xff
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
shl edx, 5
add edx, eax
lea eax, [eax + edx*4]
shl eax, 2
mov cl, byte [eax + 0x4c0dc9]
lea edx, [eax + 0x4c0ddc]
push ecx
push edx
call fcn.0045bdb0
add esp, 8
test eax, eax
je 0x45c263
xor ecx, ecx
mov esi, eax
mov cl, byte [eax]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
jmp 0x45c275
push edi
call fcn.0045b970
add esp, 4
test eax, eax
je 0x45c288
cmp byte [edi + 1], bl
jne 0x45c288
mov cl, byte [ebp]
mov byte [ebx + 0x4cde80], 1
inc cl
mov byte [ebp], cl
dec byte [esp + 0x13]
add ebp, 0x1a14
inc ebx
add edi, 0xd0
cmp ebp, 0x4cde69
mov dword [esp + 0x14], edi
jl 0x45c190
mov al, byte [esp + 0x13]
test al, al
je 0x45c481
mov cl, byte [0x4cde70]
test cl, cl
jne 0x45c164
test al, al
je 0x45c481
push 0x70
call fcn.0048a850
add esp, 4
test ax, ax
je 0x45c2e9
push 0x11
call fcn.0048a850
add esp, 4
test ax, ax
jne 0x45c3dd
call sub.KERNEL32.dll_GetTickCount
mov edx, dword [0x4cde74]
mov ecx, dword [0x4cde78]
sub eax, edx
cmp ecx, eax
jae 0x45c4af
call sub.KERNEL32.dll_GetTickCount
xor bl, bl
mov dword [0x4cde74], eax
mov byte [esp + 0x18], bl
mov edi, 0x4cde80
mov esi, 0x4c0dc8
cmp byte [esi], 2
jne 0x45c34c
cmp byte [edi], 0
jne 0x45c34c
mov al, byte [0x4cde72]
mov byte [esp + 0x1c], bl
cmp al, 3
jb 0x45c33a
mov byte [esp + 0x1c], 8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.0045c580
add esp, 8
inc bl
add esi, 0x1a14
inc edi
cmp bl, 8
mov byte [esp + 0x18], bl
jb 0x45c31e
cmp byte [0x4cde72], 6
jb 0x45c479
mov eax, dword [0x4ce548]
test eax, eax
je 0x45c3c6
mov ecx, dword [0x4cde68]
and ecx, 0xff
push ecx
call eax
mov al, byte [0x4cde68]
add esp, 4
test al, al
jne 0x45c396
mov byte [0x4cde68], 1
push 0x71
call fcn.0048a850
add esp, 4
test ax, ax
je 0x45c164
push 0x12
call fcn.0048a850
add esp, 4
test ax, ax
je 0x45c164
call fcn.0045c7a0
jmp 0x45c164
mov al, byte [0x4ce54d]
test al, al
jne 0x45c164
call fcn.0045c7a0
jmp 0x45c164
mov dl, byte [0x4ce539]
lea eax, [esp + 0xf4]
push edx
push eax
call fcn.0045c4d0
mov bl, byte [0x4cde71]
lea ecx, [esp + 0xfc]
add bl, 3
push ecx
mov byte [0x4cde71], bl
call fcn.0045bef0
mov dl, byte [0x4cde71]
push 0x4cde88
add dl, 0xfe
mov byte [0x4cde71], dl
lea edx, [esp + 0x104]
push edx
call fcn.0045b8a0
mov bl, byte [0x4cde71]
push 0x7d0
dec bl
mov byte [0x4cde71], bl
call fcn.004604f0
mov al, byte [0x4cde68]
add esp, 0x18
test al, al
mov byte [0x4cdeb0], 1
je 0x45c470
mov eax, dword [0x4ce548]
test eax, eax
je 0x45c469
push 3
call eax
add esp, 4
mov byte [0x4cde68], 0
mov byte [0x4ce53a], 1
jmp 0x45c4af
inc byte [0x4cde72]
jmp 0x45c4af
mov ecx, 0x4c0dca
mov al, byte [ecx]
test al, al
je 0x45c490
dec al
mov byte [ecx], al
add ecx, 0x1a14
cmp ecx, 0x4cde6a
jl 0x45c486
call fcn.0045c8b0
call fcn.0045ca00
mov byte [0x4ce53a], 2
pop edi
xor eax, eax
mov al, byte [0x4ce53a]
pop esi
pop ebp
mov byte [0x4ce554], 0
pop ebx
add esp, 0x284
ret