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

Disassembly:
sub esp, 0x134
mov eax, dword [0x4a8228]
xor eax, esp
mov dword [esp + 0x12c], eax
push ebx
push ebp
push esi
mov esi, ecx
cmp dword [esi + 0x1048], 0
push edi
je 0x407cf5
movzx ecx, word [esi + 0x103c]
movzx eax, word [esi + 0x103e]
add ecx, 1
cmp ecx, eax
jle 0x407cd2
mov dword [0], 0x7d0
movzx eax, word [esi + 0x103c]
mov ecx, dword [esi + 0x1034]
movzx edx, ax
mov dl, byte [edx + ecx]
add eax, 1
mov byte [esp + 0x14], dl
mov word [esi + 0x103c], ax
jmp 0x407d01
lea eax, [esp + 0x14]
push eax
mov eax, esi
call fcn.004207d0
cmp dword [esi + 0x1048], 0
je 0x407d48
movzx edx, word [esi + 0x103c]
movzx ecx, word [esi + 0x103e]
add edx, 4
cmp edx, ecx
jle 0x407d29
mov dword [0], 0x7d0
movzx eax, word [esi + 0x103c]
mov edx, dword [esi + 0x1034]
movzx ecx, ax
mov ebp, dword [ecx + edx]
add eax, 4
mov word [esi + 0x103c], ax
jmp 0x407d58
lea eax, [esp + 0x18]
push eax
mov eax, esi
call fcn.00402740
mov ebp, dword [esp + 0x18]
cmp dword [esi + 0x1048], 0
je 0x407d9f
movzx edx, word [esi + 0x103c]
movzx ecx, word [esi + 0x103e]
add edx, 4
cmp edx, ecx
jle 0x407d80
mov dword [0], 0x7d0
movzx eax, word [esi + 0x103c]
mov edx, dword [esi + 0x1034]
movzx ecx, ax
mov ebx, dword [ecx + edx]
add eax, 4
mov word [esi + 0x103c], ax
jmp 0x407daf
lea eax, [esp + 0x18]
push eax
mov eax, esi
call fcn.00402740
mov ebx, dword [esp + 0x18]
cmp dword [esi + 0x1048], 0
je 0x407df6
movzx edx, word [esi + 0x103c]
movzx ecx, word [esi + 0x103e]
add edx, 4
cmp edx, ecx
jle 0x407dd7
mov dword [0], 0x7d0
movzx eax, word [esi + 0x103c]
mov edx, dword [esi + 0x1034]
movzx ecx, ax
mov edi, dword [ecx + edx]
add eax, 4
mov word [esi + 0x103c], ax
jmp 0x407e06
lea eax, [esp + 0x18]
push eax
mov eax, esi
call fcn.00402740
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [0x4ed010]
mov eax, dword [edx + 0x18]
push ecx
mov ecx, 0x4ed010
call eax
test eax, eax
mov dword [esp + 0x18], eax
jne 0x407e36
mov cx, word [esi + 0x103e]
mov word [esi + 0x103c], cx
jmp 0x40808a
cmp ebp, dword [0x4abf80]
mov dword [eax], ebp
jbe 0x407e46
mov dword [0x4abf80], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
lea eax, [esp + 0x1f]
call fcn.0041f0f0
movzx eax, byte [esp + 0x1f]
test eax, eax
jle 0x407fab
mov dword [esp + 0x14], eax
mov ebx, 0xfffe
cmp dword [esi + 0x1048], 0
movzx eax, word [esi + 0x103e]
je 0x407eb3
movzx edx, word [esi + 0x103c]
add edx, 2
cmp edx, eax
jle 0x407e93
mov dword [0], 0x7d0
movzx eax, word [esi + 0x103c]
mov edx, dword [esi + 0x1034]
movzx ecx, ax
movzx edx, word [ecx + edx]
add eax, 2
mov word [esi + 0x103c], ax
jmp 0x407ef7
sub eax, 6
cmp eax, 2
jge 0x407ec5
mov dword [0], 0x7d0
add word [esi + 0x103e], bx
movzx eax, word [esi + 0x103e]
mov edx, dword [esi + 0x1034]
movzx ecx, ax
movzx edx, word [ecx + edx]
mov ecx, dword [esi + 0x1054]
mov di, word [ecx]
add eax, 0xfffffffa
and di, 0x8000
or ax, di
mov word [ecx], ax
cmp dword [esi + 0x1048], 0
je 0x407f3f
movzx eax, word [esi + 0x103c]
movzx ecx, word [esi + 0x103e]
add eax, 2
cmp eax, ecx
jle 0x407f1f
mov dword [0], 0x7d0
movzx eax, word [esi + 0x103c]
mov edi, dword [esi + 0x1034]
movzx ecx, ax
movzx edi, word [ecx + edi]
add eax, 2
mov word [esi + 0x103c], ax
jmp 0x407f8a
movzx eax, word [esi + 0x103e]
sub eax, 6
cmp eax, 2
jge 0x407f58
mov dword [0], 0x7d0
add word [esi + 0x103e], bx
movzx eax, word [esi + 0x103e]
mov edi, dword [esi + 0x1034]
movzx ecx, ax
movzx edi, word [ecx + edi]
mov ecx, dword [esi + 0x1054]
mov bp, word [ecx]
add eax, 0xfffffffa
and bp, 0x8000
or ax, bp
mov word [ecx], ax
push edx
mov edx, dword [0x4ed010]
mov eax, dword [edx + 0x1c]
mov ecx, 0x4ed010
call eax
sub dword [esp + 0x14], 1
movzx ecx, di
mov dword [eax], ecx
jne 0x407e6b
mov edx, dword [0x4ed010]
mov eax, dword [edx + 0x70]
push str.Detail_Statistics
mov ecx, 0x4ed010
call eax
test al, al
je 0x40808a
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x4abf84]
cmp eax, 0xea60
jbe 0x40808a
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [esp + 0x26]
movzx eax, word [esp + 0x22]
movzx ecx, word [esp + 0x20]
push edx
push eax
push ecx
push str.ConcurrentUser___d__d__d_.txt
lea edx, [esp + 0x40]
push 0x104
push edx
call fcn.004627fb
push 0x494fcc
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.00462dea
add esp, 0x24
test eax, eax
jne 0x40808a
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov eax, dword [eax]
push edx
mov edx, dword [0x4abf80]
push ecx
movzx ecx, word [esp + 0x34]
push edx
movzx edx, word [esp + 0x36]
push eax
movzx eax, word [esp + 0x38]
push ecx
movzx ecx, word [esp + 0x3a]
push edx
movzx edx, word [esp + 0x3a]
push eax
movzx eax, word [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
push str._d__d__d_t_02d:_02d:_02d_t_d_t_d_t_d_t_d_n
push ecx
call fcn.00462a58
mov edx, dword [esp + 0x44]
push edx
call fcn.00462c97
add esp, 0x34
call esi
mov dword [0x4abf84], eax
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004626c8
add esp, 0x134
ret