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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [ebp + 8]
mov eax, dword [0x40f1bd]
mov dword [ebp - 0x48], eax
mov eax, dword [0x40f1c1]
mov dword [ebp - 0x44], eax
mov eax, dword [0x40f1c5]
mov dword [ebp - 0x40], eax
mov eax, dword [0x40f1c9]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x40f1cd]
mov dword [ebp - 0x38], eax
mov eax, dword [0x40f1d1]
mov dword [ebp - 0x34], eax
movzx eax, word [0x40f1d5]
mov word [ebp - 0x30], ax
movzx eax, byte [0x40f1d7]
mov byte [ebp - 0x2e], al
lea eax, [ebp - 0x28]
mov dword [esp], eax
call sub.KERNEL32.DLL_GetLocalTime
sub esp, 4
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
movzx esi, word [ebp - 0x1a]
call sub.msvcrt.dll_rand
add esi, eax
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
cmp word [ebp - 0x1a], 0x31
ja 0x405019
call sub.msvcrt.dll_rand
lea esi, [esi + eax + 0x2430]
movzx eax, word [ebp - 0x1a]
sub eax, 0x33
cmp ax, 0x94
ja 0x40503f
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
call sub.msvcrt.dll_rand
lea esi, [esi + eax + 0x2818]
movzx eax, word [ebp - 0x1a]
sub eax, 0xc9
cmp ax, 0xc6
ja 0x405067
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
call sub.msvcrt.dll_rand
lea esi, [esi + eax + 0x2ffc]
movzx eax, word [ebp - 0x1a]
sub eax, 0x191
cmp ax, 0xc6
ja 0x40508f
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
call sub.msvcrt.dll_rand
lea esi, [esi + eax + 0x39ac]
movzx eax, word [ebp - 0x1a]
sub eax, 0x259
cmp ax, 0xc6
ja 0x4050b7
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
call sub.msvcrt.dll_rand
lea esi, [esi + eax + 0x3781]
movzx eax, word [ebp - 0x1a]
sub eax, 0x321
cmp ax, 0xc5
ja 0x4050df
call sub.KERNEL32.DLL_GetTickCount
mov dword [esp], eax
call sub.msvcrt.dll_srand
call sub.msvcrt.dll_rand
lea esi, [esi + eax + 0x2d45]
lea eax, [ebp - 0x28]
mov dword [esp], eax
call sub.KERNEL32.DLL_GetLocalTime
sub esp, 4
movzx eax, word [ebp - 0x1a]
add esi, eax
mov dword [esp + 8], 0xa
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll__itoa
call sub.msvcrt.dll_rand
mov esi, eax
mov ebx, 0x4ec4ec4f
imul ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x4c]
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
lea eax, [edx + eax*4]
add eax, eax
sub esi, eax
movzx eax, byte [esi + ebp - 0x48]
mov byte [edi + 4], al
call sub.msvcrt.dll_rand
mov esi, eax
imul ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x4c]
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
lea eax, [edx + eax*4]
add eax, eax
sub esi, eax
movzx eax, byte [esi + ebp - 0x48]
mov byte [edi + 5], al
call sub.msvcrt.dll_rand
mov esi, eax
imul ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x4c]
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
lea eax, [edx + eax*4]
add eax, eax
sub esi, eax
movzx eax, byte [esi + ebp - 0x48]
mov byte [edi + 6], al
call sub.msvcrt.dll_rand
mov esi, eax
imul ebx
sar edx, 3
mov eax, esi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
lea eax, [edx + eax*4]
add eax, eax
sub esi, eax
movzx eax, byte [esi + ebp - 0x48]
mov byte [edi + 7], al
mov esi, 0
call sub.msvcrt.dll_rand
mov dword [ebp - 0x50], eax
mov ecx, 0x4ec4ec4f
imul ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x54]
sar ecx, 3
mov eax, dword [ebp - 0x50]
cdq
mov ebx, ecx
sub ebx, edx
lea edx, [ebx + ebx*2]
lea edx, [ebx + edx*4]
add edx, edx
mov ebx, eax
sub ebx, edx
call sub.msvcrt.dll_rand
mov dword [ebp - 0x50], eax
mov ecx, 0x92492493
imul ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0x50]
add edx, dword [ebp - 0x54]
sar edx, 2
mov ecx, dword [ebp - 0x50]
sar ecx, 0x1f
sub edx, ecx
mov ecx, edx
lea edx, [edx*8]
sub edx, ecx
mov ecx, dword [ebp - 0x50]
sub ecx, edx
cmp ebx, 0xb
jg 0x405232
movzx eax, byte [ebx + ebp - 0x48]
mov byte [ecx + edi], al
cmp ebx, 0x14
jle 0x40523f
movzx eax, byte [ebx + ebp - 0x48]
mov byte [ecx + edi], al
inc esi
cmp esi, 2
jle 0x4051c0
mov byte [edi + 8], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret