Function at 0x4627c0
Capabilities:
Check for time delay via gettickcount
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4ce34d
push eax
mov eax, 0x20088
mov dword fs:[0], esp
call fcn.004cdac0
mov eax, dword [0x4fd218]
push ebx
mov ebx, ecx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x78], ebx
call fcn.00405520
mov ecx, edx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
test ecx, ecx
jg 0x46286b
jl 0x46280b
cmp eax, 1
jae 0x46286b
mov eax, dword [0x4f90f4]
test byte [eax + 0x100], 1
mov dword [eax + 0x30], 0x57
jne 0x462847
mov ecx, dword [0x4fb9cc]
push 1
push 0
push 0xffffffffffffffff
push 0x4e613c
call fcn.004b5b70
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
push 0x4cfc40
push 0
push 0x4e613c
mov ecx, ebx
call fcn.0044e3e0
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
push esi
lea ecx, [ebp - 0x4c]
call fcn.00405610
mov dword [ebp - 0x4c], vtable.TextFile.0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4c]
mov eax, dword [0x4f90f4]
mov eax, dword [eax + 0xfc]
and eax, 0x7fffffff
push eax
push 0x30c
push dword [ebp + 8]
call fcn.004ae700
test al, al
jne 0x4628fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4f90f4]
test byte [ecx + 0x100], 1
mov dword [ecx + 0x30], eax
jne 0x4628e3
mov ecx, dword [0x4fb9cc]
push 1
push 0
push 0xffffffffffffffff
push 0x4e613c
call fcn.004b5b70
mov esi, eax
jmp 0x462ddb
push 0x4cfc40
push 0
push 0x4e613c
mov ecx, ebx
call fcn.0044e3e0
mov esi, eax
jmp 0x462ddb
mov eax, dword fs:[0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x68], xmm0
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x58], eax
push edi
nop dword [eax + eax]
mov ecx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x54], 1
test ecx, ecx
je 0x46294a
test ebx, ebx
jne 0x46294a
mov eax, dword [ebp - 0x4c]
push ecx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x4c]
call dword [eax + 0x10]
mov ebx, dword [ebp - 0x20]
xor ecx, ecx
mov dword [ebp - 0x44], ecx
xor eax, eax
xor edx, edx
mov word [ebp - 0x24], ax
xor esi, esi
mov eax, dword [ebp - 0x3c]
cmp eax, 0x4b0
mov dword [ebp - 0x14], eax
sete dl
inc edx
mov dword [ebp - 0x64], edx
mov edi, edx
test ebx, ebx
jne 0x46296f
push ecx
jmp 0x462990
mov edx, dword [ebp - 0x1c]
mov eax, edx
sub eax, edi
add eax, ecx
cmp ebx, eax
jbe 0x4629b2
mov eax, edx
sub eax, ebx
add ecx, eax
push ecx
push ebx
push edx
mov dword [ebp - 0x44], ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
lea ecx, [ebp - 0x4c]
call fcn.004ae660
mov ecx, dword [ebp - 0x44]
cmp ecx, edi
mov ebx, dword [ebp - 0x1c]
setae al
mov dword [ebp - 0x20], ebx
test al, al
jne 0x4629b2
test ecx, ecx
je 0x462c26
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
add edx, ecx
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x10], edx
cmp eax, 0x4b0
jne 0x4629e1
mov eax, edx
sub eax, ebx
test al, 1
je 0x4629de
dec edx
mov dword [ebp - 0x10], edx
cmp edx, ebx
je 0x462c0a
mov eax, dword [ebp - 0x14]
cmp ebx, edx
jae 0x462bcb
nop dword [eax]
cmp esi, 0xffff
jae 0x462c02
cmp eax, 0x4b0
jne 0x462a4b
movzx eax, word [ebx]
mov edi, 2
mov dword [ebp + 0xc], edi
cmp eax, 0xd
jne 0x462a42
lea ecx, [ebx + 4]
cmp ecx, edx
ja 0x462a38
cmp word [ebx + 2], 0xa
jne 0x462a42
test byte [ebp - 0x48], 4
jne 0x462ba0
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x462b9f
cmp dword [ebp - 0x40], 0
jne 0x462baf
mov word [ebp + 8], ax
jmp 0x462b28
mov cl, byte [ebx]
mov edi, 1
mov dword [ebp + 0xc], edi
cmp cl, 0x80
jae 0x462a9e
cmp cl, 0xd
jne 0x462a91
lea eax, [ebx + 1]
cmp eax, edx
jae 0x462a87
cmp byte [eax], 0xa
jne 0x462a91
test byte [ebp - 0x48], 4
jne 0x462ba0
mov eax, 0xd
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x462b9f
cmp dword [ebp - 0x40], 0
jne 0x462bb9
movsx ax, cl
mov word [ebp + 8], ax
jmp 0x462b28
cmp eax, 0xfde9
jne 0x462ae4
mov al, cl
and al, 0xe0
cmp al, 0xc0
jne 0x462ab4
mov edi, 2
jmp 0x462afa
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x462ac3
mov edi, 3
jmp 0x462afa
and cl, 0xf8
cmp cl, 0xf0
jne 0x462ad2
mov edi, 4
jmp 0x462afa
mov eax, 0xfffd
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x462b9f
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004ae6c0
mov edx, dword [ebp - 0x10]
test al, al
mov eax, 2
cmovne edi, eax
lea eax, [edi + ebx]
mov dword [ebp + 0xc], edi
cmp eax, edx
ja 0x462be5
push 2
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp - 0x14]
push edi
push ebx
push 8
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, 1
jne 0x462b61
mov ax, word [ebp + 8]
mov edx, dword [ebp - 0x10]
cmp ax, 0xd
jne 0x462b42
test byte [ebp - 0x48], 8
je 0x462b57
mov ecx, 0xa
mov ax, cx
mov word [ebp + 8], ax
jmp 0x462b4d
cmp ax, 0xa
jne 0x462b57
mov ecx, 0xa
sub dword [ebp - 0x54], 1
je 0x462c3a
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x462b9f
lea ecx, [ebp - 0x20094]
lea ecx, [ecx + esi*2]
test eax, eax
je 0x462b94
lea edi, [eax + esi]
cmp edi, 0xffff
ja 0x462c4a
add eax, eax
push eax
lea eax, [ebp + 8]
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp - 0x10]
add esp, 0xc
mov esi, edi
jmp 0x462ba0
mov edx, dword [ebp - 0x10]
mov eax, 0xfffd
mov word [ecx], ax
inc esi
add ebx, dword [ebp + 0xc]
cmp ebx, edx
jae 0x462bc3
mov eax, dword [ebp - 0x14]
jmp 0x4629f0
mov edi, 4
mov ecx, dword [ebp - 0x44]
jmp 0x462bc9
mov ecx, dword [ebp - 0x44]
mov edi, 2
jmp 0x462bc9
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x50]
cmp ebx, edx
jne 0x462bd4
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x20], ebx
cmp esi, 0xffff
jb 0x462968
jmp 0x462c52
cmp dword [ebp - 0x40], 0
jne 0x462bb4
xor ecx, ecx
mov eax, 0xfffd
xor ebx, ebx
mov word [ebp + esi*2 - 0x20094], ax
mov dword [ebp - 0x44], ecx
inc esi
jmp 0x462bc6
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x50]
jmp 0x462bd4
mov eax, 0xfffd
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x44], 0
mov word [ebp + esi*2 - 0x20094], ax
inc esi
cmp esi, 0xffff
jae 0x462c52
xor eax, eax
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x462c52
lea eax, [edi + ebx]
mov word [ebp + esi*2 - 0x20094], cx
mov dword [ebp - 0x20], eax
jmp 0x462c25
xor eax, eax
mov dword [ebp - 0x20], ebx
mov word [ecx], ax
test esi, esi
je 0x462d5f
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov ecx, dword [0x4f90f4]
sub eax, dword [0x4fe694]
cmp eax, dword [ecx + 0xd8]
jbe 0x462cae
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x94]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x462ca7
mov eax, dword [ebp - 0x6c]
cmp dword [0x4fd2ec], eax
jne 0x462ca7
mov edx, 1
or ecx, 0xffffffff
call fcn.004018f0
call ebx
mov dword [0x4fe694], eax
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
add eax, 1
mov dword [ebp - 0x58], eax
adc edx, 0
mov dword [ebp - 0x5c], edx
cmp edx, dword [ebp - 0x70]
jl 0x462920
jg 0x462cd4
cmp eax, dword [ebp - 0x74]
jb 0x462920
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x462cf5
cmp dword [ebp - 0x20], 0
jne 0x462cf5
push eax
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x1c]
call dword [eax + 0x10]
mov dword [ebp - 0x44], 0
xor eax, eax
lea ecx, [ebp - 0x4c]
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x4c]
call dword [eax + 8]
cmp word [ebp + esi*2 - 0x20096], 0xa
jne 0x462d1c
add esi, 0xffffffff
jne 0x462d1c
push 1
push esi
push 0xffffffffffffffff
push esi
jmp 0x462d28
push 1
push 0
push esi
lea eax, [ebp - 0x20094]
push eax
mov ecx, dword [ebp - 0x60]
call fcn.004b5b70
test eax, eax
jne 0x462d3b
xor esi, esi
jmp 0x462dda
mov eax, dword [0x4f90f4]
mov ecx, dword [0x4fb9cc]
push 1
push 0
push 0xffffffffffffffff
push 0x4cfd08
mov dword [eax + 0x30], 0
call fcn.004b5b70
jmp 0x462dd8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4f90f4]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x462d8f
cmp dword [ebp - 0x20], 0
jne 0x462d8f
push eax
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x1c]
call dword [eax + 0x10]
mov dword [ebp - 0x44], 0
xor eax, eax
lea ecx, [ebp - 0x4c]
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x4c]
call dword [eax + 8]
mov eax, dword [0x4f90f4]
test byte [eax + 0x100], 1
jne 0x462dc4
mov ecx, dword [0x4fb9cc]
push 1
push 0
push 0xffffffffffffffff
push 0x4e613c
call fcn.004b5b70
jmp 0x462dd8
mov ecx, dword [ebp - 0x78]
push 0x4cfc40
push 0
push 0x4e613c
call fcn.0044e3e0
mov esi, eax
pop edi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x4c], vtable.TextFile.0
test eax, eax
je 0x462e10
cmp dword [ebp - 0x20], 0
jne 0x462e10
push 0
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], 0
push ecx
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x44], 0
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov word [ebp - 0x24], ax
cmp ecx, 0xffffffff
je 0x462e3b
mov eax, dword [ebp - 0x48]
and eax, 0x10000003
cmp eax, 0x10000000
je 0x462e34
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x18], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], vtable.TextStream.0
test eax, eax
je 0x462e62
push 0x2000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push dword [ebp - 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8