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

Disassembly:
push 0xffffffffffffffff
push 0x4a2feb
mov eax, dword fs:[0]
push eax
mov eax, 0x10070
mov dword fs:[0], esp
call fcn.0049fa60
mov eax, dword [0x4bb6f8]
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x14], eax
push edi
mov eax, esi
call fcn.0040dbe0
test al, al
je 0x44590f
push 0x10
xor edi, edi
push edi
push esi
call fcn.004936cb
mov esi, eax
add esp, 0xc
mov dword [esp + 0x54], esi
jmp 0x445920
push esi
call fcn.00493091
add esp, 4
mov dword [esp + 0x54], eax
xor edi, edi
mov esi, eax
mov ebx, edx
cmp ebx, edi
jg 0x445979
jl 0x44592d
cmp esi, 1
jae 0x445979
mov eax, dword [0x4b7468]
cmp byte [eax + 0xe4], 0
mov dword [eax + 0x30], 0x57
jne 0x44595d
mov ecx, dword [0x4bbf74]
push 1
push edi
push 0xffffffffffffffff
push 0x4a7fd8
push ecx
call fcn.00481890
jmp 0x445c47
mov ecx, dword [esp + 0x10090]
push 0x4a6869
push edi
push 0x4a7fd8
call fcn.00432b40
jmp 0x445c47
mov eax, dword [0x4bdf10]
or ebp, 0xffffffff
mov dword [esp + 0x1c], vtable.TextStream.0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
cmp eax, ebp
je 0x4459bd
lea edx, [esp + 0x30]
push edx
push eax
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
test eax, eax
jne 0x4459bd
mov byte [esp + 0x36], al
mov dword [esp + 0x1c], vtable.TextFile.0
mov dword [esp + 0x50], ebp
mov edx, dword [esp + 0x10094]
mov dword [esp + 0x10088], edi
mov eax, dword [0x4b7468]
mov eax, dword [eax + 0xd8]
and eax, 0x7fffffff
push 0x30c
lea ecx, [esp + 0x20]
call fcn.0047b8d0
test al, al
jne 0x445a42
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4b7468]
cmp byte [ecx + 0xe4], 0
mov dword [ecx + 0x30], eax
jne 0x445a26
mov ecx, dword [0x4bbf74]
push 1
push edi
push ebp
push 0x4a7fd8
push ecx
jmp 0x445c2a
mov ecx, dword [esp + 0x10090]
push 0x4a6869
push edi
push 0x4a7fd8
call fcn.00432b40
jmp 0x445c2f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor ebp, ebp
mov dword [esp + 0x14], eax
test ebx, ebx
jl 0x445b7e
jg 0x445a60
test esi, esi
je 0x445b7e
push 1
push 0xffff
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x28]
call fcn.0047ba30
mov esi, eax
test esi, esi
je 0x445af1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x4bddf4]
mov ecx, dword [0x4b7468]
cmp eax, dword [ecx + 0xb4]
jbe 0x445ad2
push 0
push 0
push 0
push 0
lea edx, [esp + 0x70]
push edx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x445ac7
mov eax, dword [esp + 0x14]
cmp dword [0x4bd780], eax
jne 0x445ac7
push 1
push 0xffffffffffffffff
call fcn.00401280
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4bddf4], eax
add ebp, 1
adc edi, 0
cmp edi, ebx
jl 0x445a60
jg 0x445b82
cmp ebp, dword [esp + 0x54]
jb 0x445a60
jmp 0x445b82
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4b7468]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x445b2a
cmp dword [esp + 0x48], 0
jne 0x445b2a
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x24]
call edx
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 8]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44], 0
call edx
mov eax, dword [0x4b7468]
cmp byte [eax + 0xe4], 0
jne 0x445b61
mov ecx, dword [0x4bbf74]
push 1
push 0
push 0xffffffffffffffff
push 0x4a7fd8
push ecx
jmp 0x445c2a
mov ecx, dword [esp + 0x10090]
push 0x4a6869
push 0
push 0x4a7fd8
call fcn.00432b40
jmp 0x445c2f
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x445bac
cmp dword [esp + 0x48], 0
jne 0x445bac
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x24]
call edx
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 8]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44], 0
call edx
test esi, esi
je 0x445bce
cmp byte [esp + esi + 0x7b], 0xa
jne 0x445bca
dec esi
test esi, esi
jne 0x445bf3
mov ecx, dword [esp + 0x18]
call fcn.00417010
test eax, eax
jne 0x445c0c
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10088], 0xffffffff
call fcn.00418a20
xor eax, eax
jmp 0x445c47
mov ecx, dword [esp + 0x18]
push 1
push 0
push esi
lea eax, [esp + 0x88]
push eax
push ecx
call fcn.00481890
jmp 0x445bd7
mov edx, dword [0x4b7468]
mov eax, dword [0x4bbf74]
push 1
push 0
push 0xffffffffffffffff
push 0x4a6904
mov dword [edx + 0x30], 0
push eax
call fcn.00481890
lea ecx, [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x10088], 0xffffffff
call fcn.00418a20
mov eax, esi
mov ecx, dword [esp + 0x10080]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1007c
ret 8