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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff510
mov eax, 0x52d4c0
push ebx
push esi
mov ebx, dword [ebp + 0x80]
call fcn.0049b3b8
cmp ebx, 1
jne 0x41683f
mov esi, 0x1770
jmp 0x416850
cmp ebx, 3
jne 0x41684b
mov esi, 0x1770
jmp 0x416850
mov esi, 0x3a98
mov dword [ebp - 0x58], 3
push 0x800
push 0
lea eax, [ebp - 0x858]
push eax
call fcn.0049af44
add esp, 0xc
xor eax, eax
lea edx, [ebp - 0x864]
xor ecx, ecx
inc eax
mov dword [edx], ecx
add edx, 4
cmp eax, 3
jl 0x416875
cmp dword [ebp + 0x88], 0
jne 0x416b68
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x41], 0
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x42], 0
xor ebx, ebx
push 0
push 0
push 0
lea edx, [ebp + 0x1c]
mov al, byte [edx + 0x62]
shl eax, 0x10
mov ax, word [edx + 0x60]
push eax
mov eax, 0x17
push dword [edx + eax*4]
dec eax
jns 0x4168b8
push 0x14
push 1
mov ecx, dword [ebp + 0x18]
push ecx
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00415ff8
add esp, 0x84
test eax, eax
je 0x4168e8
cmp eax, 0x64
je 0x416ecf
jmp 0x416929
mov ecx, dword [ebp + 0xc]
cmp byte [ecx + 0x42], 0
je 0x4168f5
mov bl, 1
jmp 0x416929
call fcn.004a2ec0
mov dword [ebp - 0x54], eax
push 1
call sub.KERNEL32.DLL_Sleep
call fcn.00403fd0
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x42], 0
je 0x416916
mov bl, 1
jmp 0x416929
call fcn.004a2ec0
sub eax, dword [ebp - 0x54]
cmp esi, eax
jge 0x4168fd
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x42], 0
test bl, bl
je 0x416b5e
mov ebx, dword [ebp + 0xc]
add ebx, 0x2c4
push ebx
call fcn.0049b078
pop ecx
test eax, eax
jbe 0x4169eb
mov word [ebp - 0x2c], 8
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 4]
add edx, 0x3f0
call fcn.004a6cf4
inc dword [ebp - 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [ebp - 8], edx
lea edx, [ebp - 8]
inc dword [ebp - 0x20]
call fcn.00484fec
cmp dword [ebp - 8], 0
je 0x416980
mov eax, dword [ebp - 8]
jmp 0x416985
mov eax, 0x52bc49
push eax
push ebx
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
lea edx, [ebp - 0xad8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*8]
mov eax, dword [ecx*8 + 0x4a9b58]
push eax
push 0x52bc3e
push edx
call fcn.0049ddd8
add esp, 0x14
dec dword [ebp - 0x20]
lea eax, [ebp - 8]
mov edx, 2
call fcn.004a6e54
dec dword [ebp - 0x20]
lea eax, [ebp - 4]
mov edx, 2
call fcn.004a6e54
push 0
lea edx, [ebp - 0xad8]
mov ecx, 0x8000
mov eax, dword [ebp + 0x10]
call fcn.004075c4
jmp 0x416b57
mov ebx, dword [ebp + 0xc]
add ebx, 0x198
push ebx
call fcn.0049b078
pop ecx
test eax, eax
jbe 0x416aa5
mov word [ebp - 0x2c], 0x14
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0xc]
add edx, 0x3f0
call fcn.004a6cf4
inc dword [ebp - 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [ebp - 0x10], edx
lea edx, [ebp - 0x10]
inc dword [ebp - 0x20]
call fcn.00484fec
cmp dword [ebp - 0x10], 0
je 0x416a3a
mov eax, dword [ebp - 0x10]
jmp 0x416a3f
mov eax, 0x52bc55
push eax
push ebx
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
lea edx, [ebp - 0xad8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*8]
mov eax, dword [ecx*8 + 0x4a9b58]
push eax
push 0x52bc4a
push edx
call fcn.0049ddd8
add esp, 0x14
dec dword [ebp - 0x20]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004a6e54
dec dword [ebp - 0x20]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004a6e54
push 0
lea edx, [ebp - 0xad8]
mov ecx, 0x8000
mov eax, dword [ebp + 0x10]
call fcn.004075c4
jmp 0x416b57
mov ebx, dword [ebp + 0xc]
add ebx, 0x6c
push ebx
call fcn.0049b078
pop ecx
test eax, eax
jbe 0x416b57
mov word [ebp - 0x2c], 0x20
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x14]
add edx, 0x3f0
call fcn.004a6cf4
inc dword [ebp - 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [ebp - 0x18], edx
lea edx, [ebp - 0x18]
inc dword [ebp - 0x20]
call fcn.00484fec
cmp dword [ebp - 0x18], 0
je 0x416af1
mov eax, dword [ebp - 0x18]
jmp 0x416af6
mov eax, 0x52bc61
push eax
push ebx
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
lea edx, [ebp - 0xad8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*8]
mov eax, dword [ecx*8 + 0x4a9b58]
push eax
push str._s_s____s_
push edx
call fcn.0049ddd8
add esp, 0x14
dec dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004a6e54
dec dword [ebp - 0x20]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004a6e54
push 0
lea edx, [ebp - 0xad8]
mov ecx, 0x8000
mov eax, dword [ebp + 0x10]
call fcn.004075c4
xor eax, eax
jmp 0x416eb5
mov eax, 1
jmp 0x416eb5
xor ebx, ebx
push 0
push 0
push 1
lea edx, [ebp + 0x1c]
mov al, byte [edx + 0x62]
shl eax, 0x10
mov ax, word [edx + 0x60]
push eax
mov eax, 0x17
push dword [edx + eax*4]
dec eax
jns 0x416b83
push 0x14
push 1
mov ecx, dword [ebp + 0x18]
push ecx
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00415ff8
add esp, 0x84
test eax, eax
je 0x416bb6
cmp eax, 0x64
je 0x416ecf
jmp 0x416cc7
call fcn.004a2ec0
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x4d], 0
push 1
call sub.KERNEL32.DLL_Sleep
mov ecx, dword [ebp + 0xc]
cmp byte [ecx + 0x39], 0
jne 0x416ecf
mov eax, dword [0x539ee4]
mov eax, dword [eax]
call fcn.0044f854
push 4
push 0
lea edx, [ebp - 0x48]
push edx
call fcn.0049af44
mov byte [ebp - 0x48], 0xcc
add esp, 0xc
lea ecx, [ebp - 0xaf0]
mov byte [ebp - 0x47], 0x14
push 0x15
push 0
push ecx
call fcn.0049af44
add esp, 0xc
lea eax, [ebp - 0xaf0]
lea edx, [ebp - 0x48]
push 0
push 0
push 1
push 0x7d0
push 0x12
push eax
push 0
push 0
push edx
mov ecx, dword [ebp + 0x18]
push ecx
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00408160
add esp, 0x30
test eax, eax
je 0x416c70
cmp eax, 0x64
je 0x416ecf
push 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x4c]
add eax, eax
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
mov edx, dword [eax*8 + 0x4a9a48]
mov ecx, 0xff
mov eax, dword [ebp + 0x10]
call fcn.004075c4
jmp 0x416cc7
xor eax, eax
mov edx, dword [ebp + 0x84]
lea ecx, [edx + 2]
lea edx, [ebp - 0xaf0]
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x416c8f
inc eax
inc ecx
inc edx
cmp eax, 0x12
jl 0x416c81
cmp eax, 0x12
je 0x416c98
xor ebx, ebx
jmp 0x416c9e
mov byte [ebp - 0x4d], 1
mov bl, 1
cmp byte [ebp - 0x4d], 0
je 0x416ca8
test bl, bl
je 0x416cc7
call fcn.004a2ec0
sub eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
shl edx, 3
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
cmp eax, edx
jle 0x416bc2
test bl, bl
je 0x416eb0
push 0x12c
push 0
lea eax, [ebp - 0xad8]
push eax
call fcn.0049af44
add esp, 0xc
mov ecx, dword [ebp + 0x84]
mov al, byte [ecx + 0xa]
cmp al, 0x71
jne 0x416d57
mov edx, dword [ebp + 0x84]
cmp byte [edx + 0xb], 4
jne 0x416d57
mov ecx, dword [ebp + 0x84]
xor edx, edx
and eax, 0xff
mov dl, byte [ecx + 0xc]
push edx
xor edx, edx
mov ecx, dword [ebp + 0x84]
mov dl, byte [ecx + 0xd]
push edx
push eax
mov ecx, dword [ebp + 0x84]
xor eax, eax
mov al, byte [ecx + 0xb]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
lea edx, [ebp - 0xad8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*8]
mov eax, dword [ecx*8 + 0x4a9a4c]
push eax
push 0x52bc62
push edx
call fcn.0049ddd8
add esp, 0x1c
jmp 0x416e97
mov ecx, dword [ebp + 0x84]
mov al, byte [ecx + 0xa]
cmp al, 0x82
jne 0x416dc9
mov edx, dword [ebp + 0x84]
cmp byte [edx + 0xb], 0x17
jne 0x416dc9
mov ecx, dword [ebp + 0x84]
xor edx, edx
and eax, 0xff
mov dl, byte [ecx + 0xc]
push edx
xor edx, edx
mov ecx, dword [ebp + 0x84]
mov dl, byte [ecx + 0xd]
push edx
push eax
mov ecx, dword [ebp + 0x84]
xor eax, eax
mov al, byte [ecx + 0xb]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
lea edx, [ebp - 0xad8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*8]
mov eax, dword [ecx*8 + 0x4a9a50]
push eax
push 0x52bc8b
push edx
call fcn.0049ddd8
add esp, 0x1c
jmp 0x416e97
mov ecx, dword [ebp + 0x84]
cmp byte [ecx + 0xa], 0x20
jne 0x416e3d
mov eax, dword [ebp + 0x84]
cmp byte [eax + 0xb], 0x1b
jne 0x416e3d
mov edx, dword [ebp + 0x84]
xor ecx, ecx
mov cl, byte [edx + 0xc]
push ecx
mov eax, dword [ebp + 0x84]
xor edx, edx
mov dl, byte [eax + 0xd]
push edx
mov ecx, dword [ebp + 0x84]
xor eax, eax
mov al, byte [ecx + 0xa]
push eax
mov edx, dword [ebp + 0x84]
xor ecx, ecx
mov cl, byte [edx + 0xb]
push ecx
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x4c], 0
jne 0x416e21
mov edx, 0x52bcea
jmp 0x416e26
mov edx, 0x52bd03
push edx
push 0x52bcb8
lea eax, [ebp - 0xad8]
push eax
call fcn.0049ddd8
add esp, 0x1c
jmp 0x416e97
mov ecx, dword [ebp + 0x84]
xor eax, eax
mov al, byte [ecx + 0xc]
xor ecx, ecx
push eax
mov edx, dword [ebp + 0x84]
mov cl, byte [edx + 0xd]
xor edx, edx
push ecx
mov eax, dword [ebp + 0x84]
mov dl, byte [eax + 0xa]
xor eax, eax
push edx
mov ecx, dword [ebp + 0x84]
mov al, byte [ecx + 0xb]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x4c]
lea edx, [ebp - 0xad8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*8]
mov eax, dword [ecx*8 + 0x4a9a54]
push eax
push 0x52bd17
push edx
call fcn.0049ddd8
add esp, 0x1c
push 0
lea edx, [ebp - 0xad8]
mov ecx, 0x8000
mov eax, dword [ebp + 0x10]
call fcn.004075c4
xor eax, eax
jmp 0x416eb5
mov eax, 1
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x41], 0
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x42], 0
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x416eec
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x41], 0
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x42], 0
mov eax, 0x64
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret