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

Disassembly:
push 0xffffffffffffffff
push 0x460868
mov eax, dword fs:[0]
push eax
sub esp, 0xeb8
mov eax, dword [0x498f90]
xor eax, esp
mov dword [esp + 0xeb4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x498f90]
xor eax, esp
push eax
lea eax, [esp + 0xecc]
mov dword fs:[0], eax
mov eax, dword [esp + 0xedc]
mov ecx, dword [esp + 0xf04]
mov edx, dword [esp + 0xf08]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [eax]
xor ebx, ebx
mov dword [ecx], ebx
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0xee4]
mov dword [esp + 0xed8], ebx
mov byte [esp + 0x1f], 1
mov dword [esp + 0x28], eax
call fcn.0041c6d0
mov edi, 0x10
cmp dword [eax + 0x18], edi
jb 0x421de2
mov eax, dword [eax + 4]
jmp 0x421de5
add eax, 4
lea edx, [esp + 0xea8]
push edx
push eax
call fcn.00422e80
add esp, 8
cmp dword [esp + 0x44], edi
jb 0x421e09
mov eax, dword [esp + 0x30]
push eax
call fcn.0042f7d6
add esp, 4
lea ecx, [esp + 0xe88]
push ecx
lea edx, [esp + 0xeac]
push edx
mov eax, edx
push eax
call fcn.004236b0
push ebx
lea ecx, [esp + 0xe98]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.00423b20
add esp, 0x18
cmp eax, 0xffff0030
je 0x421f10
cmp eax, 0xffff0033
je 0x421f02
cmp eax, ebx
je 0x421e5f
mov eax, 0xffffff0a
mov dword [esp + 0x14], eax
jmp 0x422105
cmp dword [esp + 0x4b8], ebx
jne 0x421e76
mov eax, 0xffffff01
mov dword [esp + 0x14], eax
jmp 0x422105
cmp dword [esp + 0x48], ebx
je 0x421ee8
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x82]
push edx
call fcn.004236b0
push ebx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x608]
push ecx
call fcn.00423770
add esp, 0x18
test eax, eax
jne 0x421ee8
cmp dword [esp + 0xa10], ebx
jne 0x421ec7
mov eax, 0xffffff02
mov dword [esp + 0x14], eax
jmp 0x422105
mov edx, dword [esp + 0x4c]
push edx
call fcn.00422e30
xor eax, dword [esp + 0x610]
add esp, 4
xor eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
jmp 0x422105
mov eax, dword [esp + 0x4c]
push eax
call fcn.00422e30
add esp, 4
xor eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
jmp 0x422105
mov eax, 0xffffff09
mov dword [esp + 0x14], eax
jmp 0x422105
test byte [esp + 0xf00], 4
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
je 0x421f2a
mov dword [esp + 0x4c], 4
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebp
xor eax, 0x132aa2e
push eax
call fcn.00441e73
add esp, 4
call fcn.00441e80
mov esi, eax
shl esi, 0xf
call fcn.00441e80
and eax, 0x7fff
lea ecx, [esp + 0x2c]
xor eax, esi
push ecx
lea ecx, [esp + 0xee4]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0xffff
mov dword [esp + 0x5c], ebx
call fcn.0041c6d0
cmp dword [esp + 0x44], edi
mov edx, dword [esp + 0x30]
jae 0x421f85
lea edx, [esp + 0x30]
mov al, byte [edx]
cmp al, bl
lea ecx, [esp + 0x5c]
je 0x421f9e
nop
add edx, 1
mov byte [ecx], al
mov al, byte [edx]
add ecx, 1
cmp al, bl
jne 0x421f90
lea edx, [esp + 0xb6]
mov byte [ecx], bl
push edx
mov byte [esp + 0x7e], bl
mov byte [esp + 0x9c], bl
call fcn.004225c0
mov ecx, dword [esp + 0x54]
add esp, 4
xor edi, edi
cmp byte [esp + 0xb6], bl
je 0x422065
push ecx
lea eax, [esp + 0xba]
push eax
call fcn.004229a0
add esp, 8
cmp eax, 1
jne 0x422028
call ebp
mov esi, eax
call fcn.00441e80
xor esi, eax
push esi
call fcn.00441e73
add esp, 4
call fcn.00441e80
mov esi, eax
shl esi, 0xf
call fcn.00441e80
mov ecx, eax
and ecx, 0x7fff
xor ecx, esi
add edi, 1
cmp edi, 0x32
mov eax, 0xffffff03
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], eax
jl 0x421fc1
jmp 0x422050
cmp eax, 2
jne 0x422038
mov eax, 0xffffff04
mov dword [esp + 0x14], eax
jmp 0x422050
cmp eax, 4
jne 0x422048
mov eax, 0xffffff0b
mov dword [esp + 0x14], eax
jmp 0x422050
cmp eax, ebx
je 0x422065
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x44], 0x10
jb 0x422105
mov ecx, dword [esp + 0x30]
push ecx
jmp 0x4220f9
push 1
lea edx, [esp + 0xe8c]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.00423fa0
add esp, 0xc
cmp eax, ebx
je 0x422094
xor ecx, ecx
cmp eax, 0xffff0032
setne cl
add ecx, 0xffffff05
mov eax, ecx
jmp 0x4220e9
push ebx
lea eax, [esp + 0xe8c]
push eax
lea ecx, [esp + 0xa1c]
push ecx
call fcn.00423b20
add esp, 0xc
test eax, eax
je 0x4220b8
mov eax, 0xffffff07
jmp 0x4220e9
cmp dword [esp + 0xe84], ebx
jne 0x4220d8
cmp dword [esp + 0x44], 0x10
mov eax, 0xffffff08
mov dword [esp + 0x14], eax
jb 0x422105
mov eax, dword [esp + 0x30]
push eax
jmp 0x4220f9
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.00422e30
add esp, 4
xor eax, dword [esp + 0x50]
cmp dword [esp + 0x44], 0x10
mov dword [esp + 0x14], eax
jb 0x422105
mov edx, dword [esp + 0x30]
push edx
call fcn.0042f7d6
mov eax, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x20]
mov edx, eax
and edx, 0xffffff00
cmp edx, 0xffffff00
mov dword [ecx], eax
jne 0x422193
cmp eax, 0xffffff0b
je 0x4221c9
mov edi, dword [esp + 0x1c]
push ebx
push 0x462f68
lea ecx, [edi + 4]
mov dword [edi], 0xffff0097
call fcn.00402040
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x30]
push str.0x_lX
push ecx
call fcn.0043f254
sub esp, 0x10
mov ecx, esp
lea eax, [esp + 0x48]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
mov dword [esp + 0x38], esp
mov byte [ecx + 4], bl
lea esi, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
cmp dl, bl
jne 0x422170
sub eax, esi
push eax
lea edx, [esp + 0x4c]
push edx
call fcn.00402040
mov ecx, edi
call fcn.00420bc0
mov eax, dword [esp + 0x14]
jmp 0x4221cd
lea eax, [esp + 0x4bc]
push eax
call fcn.00425734
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x4c4]
push 0x100
push eax
mov dword [esp + 0x5dc], ecx
call fcn.00425766
mov eax, dword [esp + 0x24]
add esp, 0x10
mov bl, byte [esp + 0x1b]
mov ecx, eax
mov eax, dword [esp + 0x24]
shr ecx, 0x10
mov byte [eax], cl
mov edx, dword [esp + 0x14]
add eax, 1
shr edx, 8
mov byte [eax], dl
mov cl, byte [esp + 0x14]
mov edx, dword [esp + 0x28]
add eax, 1
mov byte [eax], cl
add eax, 1
cmp dword [esp + 0xef8], 0x10
mov dword [edx], eax
jb 0x422210
mov eax, dword [esp + 0xee4]
push eax
call fcn.0042f7d6
add esp, 4
mov al, bl
mov ecx, dword [esp + 0xecc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xeb4]
xor ecx, esp
call fcn.0043ec69
add esp, 0xec4
ret