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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push edi
mov dword [ebp - 0x134], ecx
mov byte [ebp - 0x100], 0xfc
mov byte [ebp - 0xff], 0xcf
mov byte [ebp - 0xfe], 0x55
mov byte [ebp - 0xfd], 0x10
mov byte [ebp - 0xfc], 0
mov byte [ebp - 0xfb], 3
mov byte [ebp - 0xfa], 0xcc
mov byte [ebp - 0xf9], 0xcc
mov byte [ebp - 0xf8], 0xcc
mov byte [ebp - 0xf7], 0xcf
mov byte [ebp - 0xf6], 0xfc
xor eax, eax
mov dword [ebp - 0xf5], eax
mov dword [ebp - 0xf1], eax
mov byte [ebp - 0xed], al
mov byte [ebp - 0xec], 0xb
mov byte [ebp - 0xd0], 0
mov ecx, 0x31
xor eax, eax
lea edi, [ebp - 0xcf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd8], ecx
mov word [ebp - 8], 0
mov byte [ebp - 0xe0], 0
mov dl, byte [ebp + 0xc]
mov byte [ebp - 0xfa], dl
mov al, byte [ebp + 0x10]
mov byte [ebp - 0xf9], al
mov cl, byte [ebp + 0x14]
mov byte [ebp - 0xf8], cl
mov edx, dword [ebp - 0xec]
and edx, 0xff
push edx
lea eax, [ebp - 0x100]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0041e3eb
and eax, 0xff
test eax, eax
jne 0x4222c7
xor ax, ax
jmp 0x422cb8
mov ecx, dword [ebp + 8]
mov byte [ecx], 0
mov word [ebp - 4], 0
mov byte [ebp - 0xd4], 0
mov edx, dword [ebp + 0x10]
and edx, 0xff
and edx, 2
test edx, edx
je 0x4222f3
mov byte [ebp - 0xd4], 5
jmp 0x4222fa
mov byte [ebp - 0xd4], 2
mov byte [ebp - 0xe8], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xdc], eax
mov eax, 1
test eax, eax
je 0x422434
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xe4]
sub ecx, dword [ebp - 0xdc]
cmp ecx, 0x1388
jb 0x42234a
xor ax, ax
jmp 0x422cb8
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x422369
jmp 0x42230d
push 1
lea eax, [ebp - 0xe0]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov ecx, dword [ebp - 0xe8]
and ecx, 0xff
mov dl, byte [ebp - 0xe0]
mov byte [ebp + ecx - 0xd0], dl
mov al, byte [ebp - 0xe8]
add al, 1
mov byte [ebp - 0xe8], al
mov ecx, dword [ebp - 0xe8]
and ecx, 0xff
mov edx, dword [ebp - 0xd4]
and edx, 0xff
cmp ecx, edx
jne 0x42242f
movzx ax, byte [ebp - 0xd4]
mov cx, word [ebp - 8]
add cx, ax
mov word [ebp - 8], cx
mov edx, dword [ebp + 8]
mov al, byte [edx]
add al, 1
mov ecx, dword [ebp + 8]
mov byte [ecx], al
mov edx, dword [ebp + 8]
mov al, byte [ebp - 0xe8]
mov byte [edx + 1], al
mov ecx, dword [ebp - 0xe8]
and ecx, 0xff
push ecx
lea edx, [ebp - 0xd0]
push edx
mov eax, dword [ebp + 8]
add eax, 2
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cx, word [ebp - 4]
add cx, 2
mov word [ebp - 4], cx
movzx dx, byte [ebp - 0xe8]
mov ax, word [ebp - 4]
add ax, dx
mov word [ebp - 4], ax
jmp 0x422434
jmp 0x42230d
mov ecx, dword [ebp + 0x10]
and ecx, 0xff
and ecx, 0x10
test ecx, ecx
je 0x42251f
mov byte [ebp - 0xe8], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xdc], eax
mov edx, 1
test edx, edx
je 0x42251f
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
sub eax, dword [ebp - 0xdc]
cmp eax, 0x3e8
jb 0x422497
xor ax, ax
jmp 0x422cb8
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x4224b6
jmp 0x42245b
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov eax, dword [ebp - 0xe8]
and eax, 0xff
mov cl, byte [ebp - 0xe0]
mov byte [ebp + eax - 0xd0], cl
mov dl, byte [ebp - 0xe8]
add dl, 1
mov byte [ebp - 0xe8], dl
mov ax, word [ebp - 8]
add ax, 1
mov word [ebp - 8], ax
mov ecx, dword [ebp - 0xe0]
and ecx, 0xff
mov edx, dword [ebp + 0xc]
and edx, 0xff
not edx
cmp ecx, edx
jne 0x42251a
jmp 0x42251f
jmp 0x42245b
mov eax, dword [ebp + 0x10]
and eax, 0xff
and eax, 0x20
test eax, eax
je 0x4228de
mov word [ebp - 0x104], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10c], eax
mov ecx, 1
test ecx, ecx
je 0x4225ed
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x110]
sub edx, dword [ebp - 0x10c]
cmp edx, 0x3e8
jb 0x42257c
xor ax, ax
jmp 0x422cb8
push 1
lea eax, [ebp - 0xe0]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x42259b
jmp 0x422547
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov edx, dword [ebp - 0x104]
and edx, 0xffff
shl edx, 8
mov eax, dword [ebp - 0xe0]
and eax, 0xff
or edx, eax
mov word [ebp - 0x104], dx
mov ecx, dword [ebp - 0x104]
and ecx, 0xffff
cmp ecx, 0xfccf
jne 0x4225e8
jmp 0x4225ed
jmp 0x422547
mov word [ebp - 0x118], 0
mov byte [ebp - 0x114], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10c], eax
mov edx, 1
test edx, edx
je 0x4226b9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
sub eax, dword [ebp - 0x10c]
cmp eax, 0x3e8
jbe 0x42263d
xor ax, ax
jmp 0x422cb8
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x42265c
jmp 0x422609
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov eax, dword [ebp - 0x118]
and eax, 0xffff
shl eax, 8
mov ecx, dword [ebp - 0xe0]
and ecx, 0xff
or eax, ecx
mov word [ebp - 0x118], ax
mov dl, byte [ebp - 0x114]
add dl, 1
mov byte [ebp - 0x114], dl
mov eax, dword [ebp - 0x114]
and eax, 0xff
cmp eax, 2
jne 0x4226b4
jmp 0x4226b9
jmp 0x422609
mov ecx, dword [ebp - 0x118]
and ecx, 0xffff
test ecx, ecx
jne 0x4226d1
xor ax, ax
jmp 0x422cb8
mov byte [ebp - 0x114], 0
mov word [ebp - 0x108], 0
jmp 0x4226f5
mov dx, word [ebp - 0x108]
add dx, 1
mov word [ebp - 0x108], dx
mov eax, dword [ebp - 0x108]
and eax, 0xffff
mov ecx, dword [ebp - 0x118]
and ecx, 0xffff
cmp eax, ecx
jge 0x4227b3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10c], eax
mov edx, 1
test edx, edx
je 0x4227ae
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
sub eax, dword [ebp - 0x10c]
cmp eax, 0x3e8
jbe 0x422754
xor ax, ax
jmp 0x422cb8
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x422773
jmp 0x422720
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov eax, dword [ebp - 0x114]
and eax, 0xff
mov cl, byte [ebp - 0xe0]
mov byte [ebp + eax - 0xd0], cl
mov dl, byte [ebp - 0x114]
add dl, 1
mov byte [ebp - 0x114], dl
jmp 0x4226e3
mov eax, dword [ebp + 8]
mov cl, byte [eax]
add cl, 1
mov edx, dword [ebp + 8]
mov byte [edx], cl
mov eax, dword [ebp - 4]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov dl, byte [ebp - 0x118]
mov byte [ecx + eax], dl
mov ax, word [ebp - 4]
add ax, 1
mov word [ebp - 4], ax
mov ecx, dword [ebp - 0x114]
and ecx, 0xff
push ecx
lea edx, [ebp - 0xd0]
push edx
mov eax, dword [ebp - 4]
and eax, 0xffff
mov ecx, dword [ebp + 8]
add ecx, eax
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
movzx dx, byte [ebp - 0x114]
mov ax, word [ebp - 4]
add ax, dx
mov word [ebp - 4], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10c], eax
mov ecx, 1
test ecx, ecx
je 0x4228cf
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x110]
sub edx, dword [ebp - 0x10c]
cmp edx, 0x3e8
jbe 0x42285e
xor ax, ax
jmp 0x422cb8
push 1
lea eax, [ebp - 0xe0]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x42287d
jmp 0x422829
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov edx, dword [ebp - 0x104]
and edx, 0xffff
shl edx, 8
mov eax, dword [ebp - 0xe0]
and eax, 0xff
or edx, eax
mov word [ebp - 0x104], dx
mov ecx, dword [ebp - 0x104]
and ecx, 0xffff
cmp ecx, 0xcffc
jne 0x4228ca
jmp 0x4228cf
jmp 0x422829
mov dx, word [ebp - 8]
add dx, word [ebp - 0x118]
mov word [ebp - 8], dx
mov eax, dword [ebp + 0x10]
and eax, 0xff
and eax, 0x40
test eax, eax
je 0x422cb4
mov ecx, 1
test ecx, ecx
je 0x422cb4
mov word [ebp - 0x11c], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x124], eax
mov edx, 1
test edx, edx
je 0x4229b9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0x124]
cmp eax, 0x3e8
jb 0x422948
mov ax, word [ebp - 4]
jmp 0x422cb8
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x422967
jmp 0x422913
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov eax, dword [ebp - 0x11c]
and eax, 0xffff
shl eax, 8
mov ecx, dword [ebp - 0xe0]
and ecx, 0xff
or eax, ecx
mov word [ebp - 0x11c], ax
mov edx, dword [ebp - 0x11c]
and edx, 0xffff
cmp edx, 0xfccf
jne 0x4229b4
jmp 0x4229b9
jmp 0x422913
mov word [ebp - 0x130], 0
mov byte [ebp - 0x12c], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x124], eax
mov eax, 1
test eax, eax
je 0x422a87
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x128]
sub ecx, dword [ebp - 0x124]
cmp ecx, 0x3e8
jbe 0x422a0a
xor ax, ax
jmp 0x422cb8
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x422a29
jmp 0x4229d5
push 1
lea eax, [ebp - 0xe0]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov ecx, dword [ebp - 0x130]
and ecx, 0xffff
shl ecx, 8
mov edx, dword [ebp - 0xe0]
and edx, 0xff
or ecx, edx
mov word [ebp - 0x130], cx
mov al, byte [ebp - 0x12c]
add al, 1
mov byte [ebp - 0x12c], al
mov ecx, dword [ebp - 0x12c]
and ecx, 0xff
cmp ecx, 2
jne 0x422a82
jmp 0x422a87
jmp 0x4229d5
mov edx, dword [ebp - 0x130]
and edx, 0xffff
test edx, edx
jne 0x422a9f
xor ax, ax
jmp 0x422cb8
mov byte [ebp - 0x12c], 0
mov word [ebp - 0x120], 0
jmp 0x422ac3
mov ax, word [ebp - 0x120]
add ax, 1
mov word [ebp - 0x120], ax
mov ecx, dword [ebp - 0x120]
and ecx, 0xffff
mov edx, dword [ebp - 0x130]
and edx, 0xffff
cmp ecx, edx
jge 0x422b83
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x124], eax
mov eax, 1
test eax, eax
je 0x422b7e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x128]
sub ecx, dword [ebp - 0x124]
cmp ecx, 0x3e8
jbe 0x422b24
xor ax, ax
jmp 0x422cb8
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x422b43
jmp 0x422aef
push 1
lea eax, [ebp - 0xe0]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov ecx, dword [ebp - 0x12c]
and ecx, 0xff
mov dl, byte [ebp - 0xe0]
mov byte [ebp + ecx - 0xd0], dl
mov al, byte [ebp - 0x12c]
add al, 1
mov byte [ebp - 0x12c], al
jmp 0x422ab1
mov ecx, dword [ebp + 8]
mov dl, byte [ecx]
add dl, 1
mov eax, dword [ebp + 8]
mov byte [eax], dl
mov ecx, dword [ebp - 4]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov al, byte [ebp - 0x130]
mov byte [edx + ecx], al
mov cx, word [ebp - 4]
add cx, 1
mov word [ebp - 4], cx
mov edx, dword [ebp - 0x12c]
and edx, 0xff
push edx
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 4]
and ecx, 0xffff
mov edx, dword [ebp + 8]
add edx, ecx
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
movzx ax, byte [ebp - 0x12c]
mov cx, word [ebp - 4]
add cx, ax
mov word [ebp - 4], cx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x124], eax
mov edx, 1
test edx, edx
je 0x422ca0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0x124]
cmp eax, 0x3e8
jbe 0x422c2f
xor ax, ax
jmp 0x422cb8
push 1
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x134]
call fcn.0041e45f
and eax, 0xff
test eax, eax
jne 0x422c4e
jmp 0x422bfb
push 1
lea edx, [ebp - 0xe0]
push edx
mov ecx, dword [ebp - 0x134]
call fcn.0041fe50
mov eax, dword [ebp - 0x11c]
and eax, 0xffff
shl eax, 8
mov ecx, dword [ebp - 0xe0]
and ecx, 0xff
or eax, ecx
mov word [ebp - 0x11c], ax
mov edx, dword [ebp - 0x11c]
and edx, 0xffff
cmp edx, 0xcffc
jne 0x422c9b
jmp 0x422ca0
jmp 0x422bfb
mov ax, word [ebp - 8]
add ax, word [ebp - 0x130]
mov word [ebp - 8], ax
jmp 0x4228f1
mov ax, word [ebp - 4]
pop edi
mov esp, ebp
pop ebp
ret 0x10