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

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x11
add esp, 0xfffff004
push eax
dec eax
jne 0x40bcd9
add esp, 0xfffffbc4
mov eax, dword [ebp - 4]
mov eax, 0x52d090
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x14]
call fcn.0049b3b8
mov word [ebp - 0x24], 8
xor edx, edx
lea edi, [ebp - 0x11400]
mov dword [ebp - 4], edx
mov esi, 0x5028a6
inc dword [ebp - 0x18]
mov ecx, 0x10
mov word [ebp - 0x24], 0x14
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x11440]
mov ecx, 0x10
mov esi, 0x5028e6
lea edx, [ebp - 8]
rep movsd dword es:[edi], dword [esi]
mov word [ebp - 0x24], 0x20
mov word [ebp - 0x24], 0x2c
xor eax, eax
mov dword [ebp - 8], eax
mov eax, ebx
inc dword [ebp - 0x18]
call fcn.00485424
lea edx, [ebp - 8]
push edx
mov edx, str._E_8_1
lea eax, [ebp - 0xc]
call fcn.004a6cf4
inc dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x10], eax
lea edx, [ebp - 0xc]
inc dword [ebp - 0x18]
lea ecx, [ebp - 0x10]
pop eax
call fcn.004a6eac
lea edx, [ebp - 0x10]
lea eax, [ebp - 4]
call fcn.004a6e84
dec dword [ebp - 0x18]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004a6e54
dec dword [ebp - 0x18]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004a6e54
dec dword [ebp - 0x18]
lea eax, [ebp - 8]
mov edx, 2
call fcn.004a6e54
cmp dword [ebp - 4], 0
je 0x40bdc0
mov ecx, dword [ebp - 4]
jmp 0x40bdc5
mov ecx, 0x52b551
push ecx
mov eax, dword [ebp + 0x10]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00403510
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.004036e0
pop ecx
mov byte [ebp - 0x35], 0
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x113c0]
mov byte [edx + 0x39], 0
push 0x10000
push 0
push ecx
call fcn.0049af44
add esp, 0xc
cmp ebx, 0x9600
jne 0x40befe
call fcn.004a2ec0
mov esi, eax
xor ebx, ebx
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x39], 0
jne 0x40be74
cmp ebx, 0xe000
jle 0x40be29
xor ebx, ebx
push 0x64
push ebx
lea eax, [ebp - 0x113c0]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00403618
add esp, 0x10
mov ebx, eax
test ebx, ebx
jle 0x40be60
xor eax, eax
lea edx, [ebp - 0x113c0]
cmp ebx, eax
jle 0x40be5c
cmp byte [edx], 0xbe
je 0x40be5c
inc eax
inc edx
cmp ebx, eax
jg 0x40be51
cmp ebx, eax
jne 0x40be74
call fcn.004a2ec0
sub eax, esi
cmp eax, 0x320
jg 0x40c065
jmp 0x40be16
push 9
lea ecx, [ebp - 0x11400]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004035d4
add esp, 0xc
call fcn.004a2ec0
mov esi, eax
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x39], 0
jne 0x40c065
cmp ebx, 0xe000
jle 0x40bea7
xor ebx, ebx
push 0x64
push ebx
lea eax, [ebp - 0x113c0]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00403618
add esp, 0x10
mov ebx, eax
cmp ebx, 1
jl 0x40beea
xor eax, eax
lea edx, [ebp - 0x113c0]
cmp ebx, eax
jle 0x40bedb
cmp byte [edx], 0x44
je 0x40bedb
inc eax
inc edx
cmp ebx, eax
jg 0x40bed0
cmp ebx, eax
je 0x40bee8
mov byte [ebp - 0x35], 1
jmp 0x40c065
xor ebx, ebx
call fcn.004a2ec0
sub eax, esi
cmp eax, 0x258
jg 0x40c065
jmp 0x40be90
call fcn.004a2ec0
mov esi, eax
xor ebx, ebx
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x39], 0
jne 0x40bf65
cmp ebx, 0xe000
jle 0x40bf1a
xor ebx, ebx
push 0x64
push ebx
lea eax, [ebp - 0x113c0]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00403618
add esp, 0x10
mov ebx, eax
test ebx, ebx
jle 0x40bf51
xor eax, eax
lea edx, [ebp - 0x113c0]
cmp ebx, eax
jle 0x40bf4d
cmp byte [edx], 0x81
je 0x40bf4d
inc eax
inc edx
cmp ebx, eax
jg 0x40bf42
cmp ebx, eax
jne 0x40bf65
call fcn.004a2ec0
sub eax, esi
cmp eax, 0x258
jg 0x40c065
jmp 0x40bf07
push 1
lea ecx, [ebp - 0x11400]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004035d4
add esp, 0xc
xor ebx, ebx
call fcn.004a2ec0
mov esi, eax
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x39], 0
jne 0x40bfe4
cmp ebx, 0xe000
jle 0x40bf96
xor ebx, ebx
push 0x64
push ebx
lea eax, [ebp - 0x113c0]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00403618
add esp, 0x10
mov ebx, eax
cmp ebx, 1
jl 0x40bfd0
xor eax, eax
lea edx, [ebp - 0x113c0]
cmp ebx, eax
jle 0x40bfca
cmp byte [edx], 0x44
je 0x40bfca
inc eax
inc edx
cmp ebx, eax
jg 0x40bfbf
cmp ebx, eax
jne 0x40bfe4
xor ebx, ebx
call fcn.004a2ec0
sub eax, esi
cmp eax, 0x320
jg 0x40c065
jmp 0x40bf83
push 2
lea eax, [ebp - 0x11440]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004035d4
add esp, 0xc
xor ebx, ebx
call fcn.004a2ec0
mov esi, eax
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x39], 0
jne 0x40c065
cmp ebx, 0xe000
jle 0x40c015
xor ebx, ebx
push 0x64
push ebx
lea eax, [ebp - 0x113c0]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00403618
add esp, 0x10
mov ebx, eax
cmp ebx, 1
jl 0x40c055
xor eax, eax
lea edx, [ebp - 0x113c0]
cmp ebx, eax
jle 0x40c049
cmp byte [edx], 0x4f
je 0x40c049
inc eax
inc edx
cmp ebx, eax
jg 0x40c03e
cmp ebx, eax
je 0x40c053
mov byte [ebp - 0x35], 1
jmp 0x40c065
xor ebx, ebx
call fcn.004a2ec0
sub eax, esi
cmp eax, 0x258
jg 0x40c065
jmp 0x40c002
cmp byte [ebp - 0x35], 0
je 0x40c06f
xor ebx, ebx
jmp 0x40c084
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x39], 0
je 0x40c07f
mov ebx, 0xc8
jmp 0x40c084
mov ebx, 0x64
mov eax, ebx
mov edx, 2
push eax
lea eax, [ebp - 4]
dec dword [ebp - 0x18]
call fcn.004a6e54
pop eax
mov edx, dword [ebp - 0x34]
mov dword fs:[0], edx
jmp 0x40c0d2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret