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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov ecx, dword [0x4287d8]
test ecx, ecx
je 0x40faf0
mov edx, dword [0x428b00]
test edx, edx
je 0x40faf0
lea esi, [eax + eax*4]
mov ebx, dword [0x4280c8]
add esi, esi
cmp esi, ebx
jg 0x40fa77
jmp 0x40faca
add ebx, 1
cmp esi, ebx
jle 0x40fac4
call fcn.0041afd0
test eax, eax
je 0x40fa70
cmp esi, ebx
jle 0x40fac4
mov ebp, dword [0x4287d0]
test ebp, ebp
jne 0x40fac4
cmp dword [0x41f00c], 0xf423f
je 0x40fd70
cmp dword [0x426044], 2
jle 0x40fd65
mov eax, fcn.00414a80
call fcn.0040ebb0
test eax, eax
jne 0x40fd55
add dword [0x426044], 1
mov ebx, dword [0x4280c8]
test ebx, ebx
jle 0x40fafa
sub ebx, esi
mov eax, 0
cmovns eax, ebx
mov dword [0x4280c8], eax
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [0x4287d0]
test edi, edi
je 0x40fb02
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00414b90
test eax, eax
je 0x40fafa
mov esi, dword [0x4287d8]
test esi, esi
je 0x40fd36
mov ecx, dword [0x426048]
test ecx, ecx
jne 0x40fb34
mov eax, dword [0x4260a4]
cmp eax, dword [0x41f008]
jl 0x40fce1
mov edx, dword [0x428a70]
test edx, edx
je 0x40fb5f
mov eax, dword [0x428aa4]
mov dword [esp], str._Full_mark_for_collection__lu_after__lu_allocd_bytes_n
mov dword [esp + 8], eax
mov eax, dword [0x428a14]
add eax, 1
mov dword [esp + 4], eax
call fcn.004101f0
call fcn.004157d0
cmp dword [0x428a70], 2
mov dword [esp + 0x2c], 0
jne 0x40fb7f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0x41f020
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
test eax, eax
je 0x40fc04
lea ebp, [eax + 4]
add eax, 0x404
mov dword [esp + 0x24], eax
mov eax, dword [0x428a14]
mov dword [esp + 0x20], eax
mov esi, esi
lea edi, [edi]
mov esi, dword [esp + 0x20]
mov eax, dword [ebp]
lea edi, [esi - 1]
test eax, eax
mov dword [esp + 0x1c], edi
je 0x40fbfb
mov ebx, eax
mov edx, eax
shr ebx, 0x16
shr edx, 0xc
add ebx, 0x6e7c
and edx, 0x3ff
mov ecx, dword [ebx*4 + 0x428a84]
mov ecx, dword [ecx + edx*4]
movzx edi, word [ecx + 0xe]
mov esi, dword [ecx]
cmp edi, dword [esp + 0x1c]
mov dword [ebp], esi
je 0x40fc90
mov eax, esi
test eax, eax
jne 0x40fbc2
add ebp, 4
cmp dword [esp + 0x24], ebp
jne 0x40fbb0
add dword [esp + 0x28], 0x14
mov esi, 0x41f05c
mov eax, dword [esp + 0x28]
cmp esi, eax
jne 0x40fb8b
cmp dword [0x428a70], 2
jne 0x40fc45
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x2c]
mov dword [esp + 8], 0
mov dword [esp], 0x423154
mov dword [esp + 4], eax
call fcn.004101f0
mov dword [esp + 4], 0
mov dword [esp], 0x40cc80
call fcn.0041ab70
mov dword [0x428adc], 0
mov dword [0x428b00], 5
mov dword [0x428af8], 0
mov dword [0x4260a4], 0
mov dword [0x4281c0], 1
jmp 0x40fce9
mov ebx, dword [ebx*4 + 0x428a84]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebx + edx*4]
mov edi, ecx
shr edi, 3
movzx ebx, byte [edx + 0xc]
lea esi, [ebx + ebx*4]
mov ebx, dword [esi*4 + 0x41f020]
mov esi, dword [esi*4 + 0x41f030]
lea ebx, [ebx + edi*4]
movzx edi, word [esp + 0x20]
mov word [edx + 0xe], di
mov edi, dword [ebx]
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00419f70
mov dword [ebx], eax
mov eax, dword [0x428a14]
mov dword [esp + 0x20], eax
jmp 0x40fbb0
add eax, 1
mov dword [0x4260a4], eax
cmp dword [0x41f00c], 0xf423f
je 0x40fd00
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4260a0], eax
mov eax, 0x414a90
call fcn.0040ebb0
test eax, eax
jne 0x40fd2a
mov eax, dword [0x4281c0]
test eax, eax
jne 0x40fafa
add dword [0x426044], 1
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00405e80
mov ebx, dword [0x4287d0]
test ebx, ebx
jne 0x40fafa
add esp, 0x3c
mov eax, fcn.00414a80
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00410e30
call fcn.00405e80
mov ebx, dword [0x4280c8]
jmp 0x40faca
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4260a0], eax
cmp dword [0x426044], 2
mov eax, 0x414a90
jle 0x40fab0
jmp 0x40faab