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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x378
push ebx
push esi
push edi
lea esi, [ebp - 0x324]
call fcn.00403450
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebx]
lea eax, [ebx + 0xc]
push eax
lea eax, [ebx + 0x12]
push eax
mov eax, dword [ebp + 8]
push 1
push dword [eax + 0x2a0]
mov eax, dword [ebp + 0xc]
call fcn.00403af6
test eax, eax
je 0x40430b
mov edi, esi
mov esi, dword [ebp + 8]
call fcn.00403d15
mov esi, eax
test esi, esi
jne 0x404251
mov ecx, dword [ebp - 0x318]
fldz
test ecx, ecx
mov esi, 0x41f3ec
je 0x4040b6
cmp dword [0x41f3ec], eax
je 0x404079
mov byte [ebp - 0x11c], al
fst qword [ebp - 0x14]
mov byte [ebp - 0x119], al
fstp qword [ebp - 0xc]
mov byte [ebp - 0x99], al
mov byte [ebp - 0xd9], al
mov byte [ebp - 0x59], al
lea eax, [ebp - 0x11c]
push eax
call fcn.00402388
push eax
mov eax, esi
call fcn.0040fa52
test eax, eax
je 0x4040b8
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x11c]
call fcn.0040f9d3
jmp 0x4040b8
fstp st(0)
call fcn.00402388
mov ecx, dword [ebp + 8]
lea edx, [ecx + 0x288]
mov ebx, eax
lea ecx, [ebp - 0x374]
mov eax, edx
call fcn.00408bb7
test eax, eax
je 0x4040b1
lea eax, [ebp - 0x369]
push eax
lea eax, [ebp - 0x164]
push eax
call sub.msvcrt.dll_strcpy
pop ecx
pop ecx
mov ebx, dword [ebp + 0x10]
jmp 0x4040b8
fstp st(0)
mov ecx, dword [ebp - 0x314]
test ecx, ecx
je 0x40415c
cmp dword [0x41f3ec], 0
je 0x404123
fldz
lea eax, [ebp - 0x11c]
fst qword [ebp - 0x14]
push eax
fstp qword [ebp - 0xc]
mov byte [ebp - 0x11c], 0
mov byte [ebp - 0x119], 0
mov byte [ebp - 0x99], 0
mov byte [ebp - 0xd9], 0
mov byte [ebp - 0x59], 0
call fcn.00402388
push eax
mov eax, esi
call fcn.0040fa52
test eax, eax
je 0x40415c
lea eax, [ebp - 0x1a4]
push eax
lea eax, [ebp - 0x11c]
call fcn.0040f9d3
jmp 0x40415c
call fcn.00402388
mov ecx, dword [ebp + 8]
lea edx, [ecx + 0x288]
mov ebx, eax
lea ecx, [ebp - 0x374]
mov eax, edx
call fcn.00408bb7
test eax, eax
je 0x404159
lea eax, [ebp - 0x369]
push eax
lea eax, [ebp - 0x1a4]
push eax
call sub.msvcrt.dll_strcpy
pop ecx
pop ecx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x208], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x204], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x200], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2a8]
inc ecx
mov dword [ebp - 0x1f8], ecx
xor ecx, ecx
mov word [ebp - 0x31e], 1
cmp dword [eax + 0x94], ecx
je 0x4041b5
cmp dword [eax + 0x90], ecx
je 0x4041b5
mov byte [ebp - 0x20c], 0xff
movsx edx, word [ebp - 0x20a]
cmp edx, dword [ebp - 0x1d0]
jge 0x40430b
cmp dword [eax + 0x24], ecx
je 0x404225
push dword [ebp - 0x318]
call fcn.00406408
push dword [ebp - 0x314]
mov edi, eax
call fcn.00406408
cmp edi, 0xffffffff
mov esi, eax
je 0x404206
mov eax, edi
call fcn.0040648e
push eax
push 0x7f
pop ebx
lea edi, [ebp - 0x30c]
call fcn.00406981
mov ebx, dword [ebp + 0x10]
pop ecx
cmp esi, 0xffffffff
je 0x404225
mov eax, esi
call fcn.0040648e
push eax
push 0x7f
pop ebx
lea edi, [ebp - 0x28c]
call fcn.00406981
mov ebx, dword [ebp + 0x10]
pop ecx
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1e8], eax
lea eax, [ebp - 0x324]
push eax
call fcn.0040a36b
push dword [ebp + 8]
mov esi, eax
or word [esi + 4], 2
call fcn.00404748
jmp 0x404257
and word [esi + 4], 0xfffd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2a8]
xor edi, edi
cmp dword [eax + 0x94], edi
je 0x404279
cmp dword [eax + 0x90], edi
je 0x404279
mov byte [esi + 0x118], 0xff
inc dword [esi + 0x130]
mov eax, dword [ebp - 0x1d0]
add dword [esi + 0x154], eax
movsx eax, word [ebp - 0x20a]
mov ecx, dword [ebp - 0x1d0]
sub ecx, eax
add dword [esi + 0x15c], ecx
mov eax, dword [ebx + 4]
mov dword [esi + 0x124], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x128], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esi + 0x140], eax
lea eax, [esi + 0x148]
push eax
push dword [esi + 0x15c]
mov eax, esi
call fcn.00401906
mov dword [esi + 0x150], eax
cmp dword [ebp - 0x1ec], edi
je 0x404307
inc dword [esi + 0x134]
mov eax, dword [ebp - 0x1d0]
add dword [esi + 0x158], eax
movsx eax, word [ebp - 0x20a]
mov ecx, dword [ebp - 0x1d0]
sub ecx, eax
add dword [esi + 0x160], ecx
mov eax, esi
jmp 0x40430d
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc