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

Disassembly:
mov eax, dword [0x5a9420]
sub esp, 0x14
test eax, eax
push ebx
push ebp
push esi
push edi
jne 0x404c6e
mov ebp, dword [esp + 0x28]
mov dword [0x5a9420], 1
mov eax, dword [ebp + 0x14]
test eax, eax
jl 0x404a53
cmp eax, dword [0x5adc10]
jge 0x404a53
mov edx, dword [0x5adc0c]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea eax, [edx + ecx*8]
jmp 0x404a55
xor eax, eax
mov bx, word [eax + 8]
sub bx, 0x91
neg bx
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 4
lea esi, [ebx*4]
push esi
call fcn.004c62f5
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [esp + 0x14], edi
push esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
call fcn.004c62f5
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [esp + 0x1c], edi
push 0
rep stosd dword es:[edi], eax
push 0
mov ecx, edx
push 0
push 0
and ecx, 3
push 1
push 6
push ebp
rep stosb byte es:[edi], al
call fcn.00403a60
add esp, 0x24
cmp eax, 1
jne 0x404c2c
jmp 0x404ad0
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
push ebx
push esi
push ebp
call fcn.004046e0
mov edi, eax
add esp, 0xc
cmp edi, 3
je 0x404c7b
push ebx
push esi
push ebp
call fcn.004043a0
add esp, 0xc
test eax, eax
je 0x404c93
mov eax, dword [0x5adba8]
mov dword [esp + 0x18], eax
jmp 0x404b0c
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x404c23
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0xffffffffffffffff
push 0
push 0
push 6
push ebp
mov dword [esp + 0x34], eax
call fcn.00403ad0
add esp, 0x14
cmp eax, 3
je 0x404c9d
push 0xffffffffffffffff
push 1
push 0
push 6
push ebp
call fcn.00403ad0
add esp, 0x14
cmp eax, 3
je 0x404c9d
push 0
push 0x64
push 0
push 0
push 1
push 6
push ebp
call fcn.00403a60
mov edi, eax
add esp, 0x1c
cmp edi, 3
je 0x404c9d
cmp edi, 1
jne 0x404c1b
mov esi, dword [esp + 0x10]
test ebx, ebx
jle 0x404b9c
mov ecx, dword [esp + 0x14]
mov eax, esi
sub ecx, esi
mov edx, ebx
mov edi, dword [ecx + eax]
mov dword [eax], edi
add eax, 4
dec edx
jne 0x404b91
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push ebp
call fcn.004046e0
mov edi, eax
add esp, 0xc
cmp edi, 3
je 0x404ca7
xor ebp, ebp
test ebx, ebx
jle 0x404b08
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub ecx, esi
mov dword [esp + 0x1c], ecx
jmp 0x404bd4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi]
test eax, eax
je 0x404acc
cmp eax, 0x2b
je 0x404acc
cmp eax, dword [ecx + esi]
jne 0x404acc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x20]
sub edx, eax
mov eax, dword [esp + 0x18]
add eax, edx
test eax, eax
mov dword [esp + 0x18], eax
jle 0x404cdc
inc ebp
add esi, 4
cmp ebp, ebx
jl 0x404bd0
jmp 0x404b08
test edi, edi
jne 0x404b0c
cmp edi, 1
je 0x404ad0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404c3d
push eax
call fcn.004c631e
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x404c4e
push eax
call fcn.004c631e
add esp, 4
push 0xffffffffffffffff
push 0
push 0
push 6
push ebp
mov dword [0x5a9420], 0
call fcn.00403ad0
add esp, 0x14
cmp eax, 3
jne 0x404c73
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404c8c
push eax
call fcn.004c631e
add esp, 4
test esi, esi
je 0x404d0d
push esi
jmp 0x404d05
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404c8c
jmp 0x404c83
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404cfc
jmp 0x404cf3
test esi, esi
je 0x404cb4
push esi
call fcn.004c631e
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x404d0d
push eax
call fcn.004c631e
add esp, 4
mov dword [0x5a9420], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [0x5ad53c]
push 0
push 0
push eax
call fcn.004d47fc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404cfc
push eax
call fcn.004c631e
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x404d0d
push eax
call fcn.004c631e
add esp, 4
pop edi
pop esi
pop ebp
mov dword [0x5a9420], 0
mov eax, 3
pop ebx
add esp, 0x14
ret