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

Disassembly:
mov eax, 0x47d240
call fcn.0044d428
sub esp, 0xcd0
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x24], edi
call fcn.00466fe3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x3c], 0x800
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x60], edi
mov byte [ebp - 0x1d], 1
call fcn.00476bf9
cmp dword [ebp + 0xc], 0xce
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x1c]
mov ecx, dword [esi + 0x44]
lea eax, [ebp - 0x30]
push edi
mov dword [ebp - 0x64], ebx
push eax
jne 0x40608a
push 0x35
call fcn.00475947
push dword [ebp - 0x30]
lea ecx, [ebp - 0xcc]
call fcn.00402bb5
push eax
lea eax, [ebp - 0x9c]
push eax
mov byte [ebp - 4], 1
call fcn.004046ef
pop ecx
pop ecx
push edi
push 1
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0
call fcn.0040287e
cmp dword [ebp - 0x84], 0x10
mov eax, dword [ebp - 0x98]
jae 0x406060
lea eax, [ebp - 0x98]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x50]
push ecx
push 0x484a38
push eax
call fcn.0044e898
add esp, 0x14
push edi
push 1
lea ecx, [ebp - 0x9c]
call fcn.0040155a
jmp 0x4060af
push 5
call fcn.00475947
push dword [ebp - 0x30]
call fcn.0044e7f1
pop ecx
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
mov eax, dword [ecx]
call dword [eax + 0x30]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov ecx, ebx
call fcn.004101e9
cmp byte [ebp + 0x14], 0
je 0x406108
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
sub esi, eax
mov eax, dword [ebx + 0x124]
mov dword [ebp + 0x14], eax
mov eax, dword [eax]
mov ecx, ebx
sbb edi, edx
mov dword [ebp - 0x44], eax
call fcn.00410154
mov ecx, dword [ebp + 0x14]
test al, al
setne al
push eax
mov eax, dword [ebp - 0x44]
push edi
push esi
call dword [eax + 0x2c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x64]
push eax
mov dword [ebp - 0x2c], ecx
push ecx
mov ecx, ebx
mov dword [ebp - 0x28], eax
call fcn.00410230
xor edi, edi
jmp 0x40610e
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov esi, dword [ebp + 0x1c]
mov ecx, dword [esi]
cmp ecx, dword [ebp - 0x2c]
mov eax, dword [esi + 4]
jne 0x406126
cmp eax, dword [ebp - 0x28]
jne 0x406126
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
cmp eax, edi
ja 0x40612e
cmp ecx, edi
jbe 0x406139
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x1c]
jne 0x406149
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x28], eax
je 0x4061a2
push edi
push edi
push 9
mov ecx, ebx
call fcn.00412770
cmp eax, 1
jne 0x406174
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.0040571a
mov esi, eax
jmp 0x406767
cmp eax, 2
je 0x406180
cmp eax, 0x3fb
jne 0x4061a2
push edi
push edi
push 3
mov ecx, ebx
call fcn.00412770
cmp eax, 0x3fb
mov ecx, dword [ebp - 0x14]
jne 0x40615c
call fcn.00404d53
push 5
pop esi
jmp 0x406767
push dword [ebp + 0x10]
lea eax, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x2d4]
push eax
call fcn.0041bf3c
add esp, 0xc
cmp dword [ebx + 0x120], edi
jne 0x4061de
mov ecx, dword [ebx + 0x124]
mov eax, dword [ecx]
push 0x67
lea edx, [ebp - 0x1d0]
push edx
lea edx, [ebp - 0x2d4]
push edx
call dword [eax + 0x1c]
lea ecx, [ebp - 0xb0]
call fcn.00463780
mov eax, dword [ebp - 0x1c]
push dword [esi + 4]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x18]
push dword [esi]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x50]
sub dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 3
sbb dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx]
call dword [eax + 0x60]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
mov esi, 0x481b08
push esi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], edi
call fcn.00403846
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x48], esp
push 0x484a28
mov byte [ebp - 4], 4
call fcn.00403846
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x78], esp
push esi
mov byte [ebp - 4], 5
call fcn.00403846
push 5
push 1
mov ecx, 0x4a1950
mov byte [ebp - 4], 3
call fcn.0040b8ff
mov dword [ebp + 0x14], edi
cmp dword [ebp - 0x18], edi
mov ecx, dword [ebp - 0x1c]
ja 0x406299
cmp ecx, edi
jbe 0x4065b4
cmp byte [0x4a19e6], 0
jne 0x40657e
xor eax, eax
cmp eax, dword [ebp - 0x18]
jb 0x4062b7
ja 0x4062b4
cmp dword [ebp - 0x3c], ecx
jbe 0x4062b7
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x38]
mov ecx, eax
or ecx, dword [ebp - 0x34]
je 0x4062de
xor ecx, ecx
xor edx, edx
and eax, 0x1fffffff
cmp ecx, edx
jb 0x4062de
ja 0x4062d5
cmp eax, dword [ebp - 0x3c]
jb 0x4062de
cmp dword [ebp + 0x14], edi
je 0x4063a4
mov eax, dword [ebp + 0x1c]
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esi, dword [ebp - 0x38]
lea eax, [ebp - 0x1c]
adc edi, dword [ebp - 0x34]
push eax
push 0x484858
call fcn.00404f71
mov ebx, dword [eax]
mov eax, dword [eax + 4]
add ebx, esi
adc eax, edi
add ebx, 0xffffffff
adc eax, 0xffffffff
pop ecx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x14]
pop ecx
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x406322
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
push dword [eax + 0x48]
push 0x481984
push 0
push 1
push 0
push ecx
mov ecx, dword [eax + 0x3c]
push 1
call fcn.00475db8
push dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x14]
push ebx
push edi
push esi
push dword [ecx + 0x4c]
mov dword [ecx + 0x44], eax
lea eax, [ebp - 0x4dc]
push 0x4848d0
push eax
call fcn.0044e5c4
add esp, 0x1c
push 0xffffffffffffffff
push 0x10000000
lea eax, [ebp - 0x4dc]
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x44]
call fcn.00474ed1
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + 0x44]
xor eax, eax
push eax
push eax
push eax
push eax
call fcn.00475807
mov ecx, dword [esi + 0x44]
lea eax, [ebp + 0xc]
push eax
call fcn.00474f04
mov ebx, dword [ebp - 0x64]
xor edi, edi
mov ecx, ebx
call fcn.0040ffc5
test al, al
je 0x406414
cmp byte [ebp - 0x1d], 0
jne 0x406401
cmp byte [0x4a19e6], 0
jne 0x406401
push edi
push 1
call fcn.00401838
cmp dword [ebx + 0x120], edi
pop ecx
pop ecx
jne 0x406401
mov ecx, ebx
call fcn.0040ffc5
test al, al
je 0x406401
lea esi, [ebx + 0xd8]
mov ecx, esi
call fcn.0040d50c
push 1
push edi
push edi
mov ecx, esi
call fcn.0040d534
mov byte [ebp - 0x1d], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x54], eax
jmp 0x4063af
cmp byte [ebx + 0x12c], 0
je 0x406414
push edi
push 1
call fcn.00401838
pop ecx
pop ecx
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x3c]
mov ecx, dword [eax + 0x44]
mov eax, dword [ecx]
lea edx, [ebp - 0xcdc]
push edx
call dword [eax + 0x34]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0x120]
cmp eax, edi
jne 0x40658c
cmp dword [ebp - 0x48], edi
jne 0x406451
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 2
jle 0x406451
or dword [ebp - 0x24], 0xffffffff
jmp 0x4065b4
mov eax, dword [ebp - 0x48]
cdq
mov esi, eax
add dword [ebp - 0x2c], esi
mov ecx, ebx
mov dword [ebp - 0x68], edx
adc dword [ebp - 0x28], edx
add dword [ebp - 0x38], esi
adc dword [ebp - 0x34], edx
call fcn.0040ffc5
test al, al
je 0x4064be
cmp byte [0x4a19e6], 0
jne 0x4064be
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x54]
cmp eax, 0x3e8
jbe 0x4064d1
push edi
push dword [ebp - 0x28]
lea ecx, [ebx + 0xd8]
push dword [ebp - 0x2c]
call fcn.0040d534
test al, al
mov byte [ebp - 0x1d], al
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
jne 0x4064b3
push edi
push 1
call fcn.00401838
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x54], eax
jmp 0x4064d1
cmp byte [ebx + 0x12c], 0
je 0x4064d1
push edi
push 1
call fcn.00401838
pop ecx
pop ecx
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
push 0x14
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x406516
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [ebp - 0x44]
jbe 0x406516
fild dword [ebp - 0x40]
sub eax, dword [ebp - 0x44]
test eax, eax
fmul qword [0x484a20]
mov dword [ebp - 0x78], eax
fld st(0)
fild dword [ebp - 0x78]
jge 0x40650a
fadd dword [0x484a18]
fdivp st(1)
fstp st(1)
call fcn.0044d558
mov dword [ebp - 0x60], eax
cmp dword [ebx + 0x120], edi
jne 0x406530
push dword [ebp - 0x60]
mov ecx, dword [ebx + 0x124]
push dword [ebp - 0x68]
mov eax, dword [ecx]
push esi
call dword [eax + 0x40]
mov eax, dword [ebx + 0x120]
cmp eax, edi
jne 0x40658c
sub dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x68]
sbb dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x40]
cmp ecx, edi
je 0x40657e
push dword [ebp - 0x48]
mov eax, dword [ecx]
lea edx, [ebp - 0xcdc]
push edx
call dword [eax + 0x38]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx]
call dword [eax + 0x48]
add dword [ebp - 0x5c], esi
mov eax, dword [ebp - 0x58]
mov ecx, ebx
adc eax, dword [ebp - 0x68]
push eax
push dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
call fcn.0041027a
mov eax, dword [ebx + 0x120]
cmp eax, edi
je 0x406289
cmp eax, 1
jne 0x40659a
mov dword [ebp - 0x24], 5
jmp 0x4065b4
cmp eax, 2
jne 0x4065a8
mov dword [ebp - 0x24], 3
jmp 0x4065b4
cmp eax, 3
jne 0x4065b4
mov dword [ebp - 0x24], 7
cmp dword [ebx + 0x120], edi
jne 0x406747
cmp dword [ebp - 0x24], 0xffffffff
je 0x406747
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
mov esi, 0x481b08
push esi
call fcn.00403846
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x1c], esp
push 0x484a00
mov byte [ebp - 4], 6
call fcn.00403846
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x20], esp
push esi
mov byte [ebp - 4], 7
call fcn.00403846
push 5
push 1
mov ecx, 0x4a1950
mov byte [ebp - 4], 3
call fcn.0040b8ff
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx]
call dword [eax + 0x30]
cmp dword [ebp - 0x74], eax
jne 0x406630
cmp dword [ebp - 0x70], edx
je 0x406747
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x1c]
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.0040571a
mov esi, eax
mov byte [ebp - 4], 0
call fcn.00463796
jmp 0x406767
and dword [ebp - 4], 0
call fcn.00463796
mov esi, dword [ebp - 0x24]
cmp esi, 0xffffffff
mov ecx, dword [ebp - 0x14]
je 0x406762
call fcn.00404d53
jmp 0x406767
call fcn.00404d12
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00401148
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x1c