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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x48be9b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1005c
call fcn.00488480
mov eax, dword [0x4a09d8]
push ebx
push esi
push edi
push 1
xor edi, edi
push edi
push 0xffffffffffffffff
mov esi, ecx
mov ecx, dword [0x4a13a4]
push 0x4916f4
mov dword [esp + 0x2c], eax
call fcn.004668b0
mov eax, esi
call fcn.0040c270
test al, al
je 0x439884
push 0x10
push edi
push esi
call fcn.00478a38
add esp, 0xc
jmp 0x43988d
push esi
call fcn.004781a1
add esp, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
cmp edx, edi
jg 0x4398c9
jl 0x4398a0
cmp eax, 1
jae 0x4398c9
mov ecx, dword [0x49d3c8]
mov dword [ecx + 0x30], 0x57
mov eax, 1
mov ecx, dword [esp + 0x1006c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea esi, [esp + 0x20]
call fcn.004135d0
mov dword [esp + 0x20], vtable.TextFile.0
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [esp + 0x10074], edi
mov edx, dword [0x49d3c8]
mov esi, dword [edx + 0xd0]
push 0x30c
push eax
lea ecx, [esp + 0x28]
and esi, 0x7fffffff
mov dword [esp + 0x30], edi
call dword [0x494000]
test al, al
je 0x43992a
mov eax, esi
mov ebx, 0x30c
lea ecx, [esp + 0x20]
call fcn.00461f30
test al, al
jne 0x43995e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x49d3c8]
mov dword [ecx + 0x30], eax
lea ecx, [esp + 0x20]
call fcn.00413810
mov eax, 1
mov ecx, dword [esp + 0x1006c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor ebx, ebx
xor edi, edi
cmp dword [esp + 0x14], ebx
jl 0x4399e4
jg 0x439970
cmp dword [esp + 0x10], ebx
jbe 0x4399e4
mov eax, 0xffff
lea ecx, [esp + 0x68]
lea esi, [esp + 0x20]
call fcn.00413650
test eax, eax
je 0x439a5a
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x4a3104]
mov edx, dword [0x49d3c8]
cmp eax, dword [edx + 0xb0]
jbe 0x4399d0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4399c9
push 1
push 0xffffffffffffffff
call fcn.00401340
add esp, 8
call esi
mov dword [0x4a3104], eax
add edi, 1
adc ebx, 0
cmp ebx, dword [esp + 0x14]
jl 0x439970
jg 0x4399e4
cmp edi, dword [esp + 0x10]
jb 0x439970
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x20]
call eax
lea eax, [esp + 0x68]
mov byte [esp + 0x38], 1
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x439a00
sub eax, edx
je 0x439a1f
cmp byte [esp + eax + 0x67], 0xa
jne 0x439a17
dec eax
mov byte [esp + eax + 0x68], cl
test eax, eax
jne 0x439af3
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, dword [esp + 0x2c]
call fcn.004668b0
test eax, eax
jne 0x439b02
lea ecx, [esp + 0x20]
call fcn.00413810
xor eax, eax
mov ecx, dword [esp + 0x1006c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x49d3c8]
mov dword [ecx + 0x30], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x20]
call eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x38], 1
mov dword [esp + 0x20], vtable.TextFile.0
cmp eax, 0xffffffff
je 0x439aad
mov ecx, dword [esp + 0x24]
and ecx, 0x10000003
cmp ecx, 0x10000000
je 0x439aa5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], vtable.TextStream.0
test eax, eax
je 0x439ac6
push eax
call fcn.004785bf
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x439ad7
push eax
call fcn.00478e74
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x1006c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 1
push 0
push eax
lea ecx, [esp + 0x74]
push ecx
jmp 0x439a27
mov edx, dword [0x49d3c8]
mov ecx, dword [0x4a13a4]
push 1
push 0
push 0xffffffffffffffff
push 0x4900b0
mov dword [edx + 0x30], 0
call fcn.004668b0
mov esi, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], vtable.TextFile.0
cmp eax, 0xffffffff
je 0x439b59
mov ecx, dword [esp + 0x24]
and ecx, 0x10000003
cmp ecx, 0x10000000
je 0x439b51
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], vtable.TextStream.0
test eax, eax
je 0x439b72
push eax
call fcn.004785bf
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x439b83
push eax
call fcn.00478e74
add esp, 4
mov ecx, dword [esp + 0x1006c]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4