Function at 0x4615e0
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 0x4ccf1d
push eax
mov eax, 0x20088
mov dword fs:[0], esp
call fcn.004cc6a0
mov eax, dword [0x4fc2a8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x78], ebx
call fcn.004051f0
mov ecx, edx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
test ecx, ecx
jg 0x46168b
jl 0x46162b
cmp eax, 1
jae 0x46168b
mov eax, dword [0x4f8174]
test byte [eax + 0x100], 1
mov dword [eax + 0x30], 0x57
jne 0x461667
mov ecx, dword [0x4faa64]
push 1
push 0
push 0xffffffffffffffff
push 0x4e513c
call fcn.004b4bf0
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
push 0x4cec30
push 0
push 0x4e513c
mov ecx, ebx
call fcn.0044d640
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.004052e0
mov dword [ebp - 0x4c], vtable.TextFile.0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4c]
mov eax, dword [0x4f8174]
mov eax, dword [eax + 0xfc]
and eax, 0x7fffffff
push eax
push 0x30c
push dword [ebp + 8]
call fcn.004ad860
test al, al
jne 0x46171d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4f8174]
test byte [ecx + 0x100], 1
mov dword [ecx + 0x30], eax
jne 0x461703
mov ecx, dword [0x4faa64]
push 1
push 0
push 0xffffffffffffffff
push 0x4e513c
call fcn.004b4bf0
mov esi, eax
jmp 0x461bfb
push 0x4cec30
push 0
push 0x4e513c
mov ecx, ebx
call fcn.0044d640
mov esi, eax
jmp 0x461bfb
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 0x46176a
test ebx, ebx
jne 0x46176a
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 0x46178f
push ecx
jmp 0x4617b0
mov edx, dword [ebp - 0x1c]
mov eax, edx
sub eax, edi
add eax, ecx
cmp ebx, eax
jbe 0x4617d2
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.004ad7c0
mov ecx, dword [ebp - 0x44]
cmp ecx, edi
mov ebx, dword [ebp - 0x1c]
setae al
mov dword [ebp - 0x20], ebx
test al, al
jne 0x4617d2
test ecx, ecx
je 0x461a46
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 0x461801
mov eax, edx
sub eax, ebx
test al, 1
je 0x4617fe
dec edx
mov dword [ebp - 0x10], edx
cmp edx, ebx
je 0x461a2a
mov eax, dword [ebp - 0x14]
cmp ebx, edx
jae 0x4619eb
nop dword [eax]
cmp esi, 0xffff
jae 0x461a22
cmp eax, 0x4b0
jne 0x46186b
movzx eax, word [ebx]
mov edi, 2
mov dword [ebp + 0xc], edi
cmp eax, 0xd
jne 0x461862
lea ecx, [ebx + 4]
cmp ecx, edx
ja 0x461858
cmp word [ebx + 2], 0xa
jne 0x461862
test byte [ebp - 0x48], 4
jne 0x4619c0
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x4619bf
cmp dword [ebp - 0x40], 0
jne 0x4619cf
mov word [ebp + 8], ax
jmp 0x461948
mov cl, byte [ebx]
mov edi, 1
mov dword [ebp + 0xc], edi
cmp cl, 0x80
jae 0x4618be
cmp cl, 0xd
jne 0x4618b1
lea eax, [ebx + 1]
cmp eax, edx
jae 0x4618a7
cmp byte [eax], 0xa
jne 0x4618b1
test byte [ebp - 0x48], 4
jne 0x4619c0
mov eax, 0xd
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x4619bf
cmp dword [ebp - 0x40], 0
jne 0x4619d9
movsx ax, cl
mov word [ebp + 8], ax
jmp 0x461948
cmp eax, 0xfde9
jne 0x461904
mov al, cl
and al, 0xe0
cmp al, 0xc0
jne 0x4618d4
mov edi, 2
jmp 0x46191a
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x4618e3
mov edi, 3
jmp 0x46191a
and cl, 0xf8
cmp cl, 0xf0
jne 0x4618f2
mov edi, 4
jmp 0x46191a
mov eax, 0xfffd
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x4619bf
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004ad820
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 0x461a05
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 0x461981
mov ax, word [ebp + 8]
mov edx, dword [ebp - 0x10]
cmp ax, 0xd
jne 0x461962
test byte [ebp - 0x48], 8
je 0x461977
mov ecx, 0xa
mov ax, cx
mov word [ebp + 8], ax
jmp 0x46196d
cmp ax, 0xa
jne 0x461977
mov ecx, 0xa
sub dword [ebp - 0x54], 1
je 0x461a5a
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x4619bf
lea ecx, [ebp - 0x20094]
lea ecx, [ecx + esi*2]
test eax, eax
je 0x4619b4
lea edi, [eax + esi]
cmp edi, 0xffff
ja 0x461a6a
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 0x4619c0
mov edx, dword [ebp - 0x10]
mov eax, 0xfffd
mov word [ecx], ax
inc esi
add ebx, dword [ebp + 0xc]
cmp ebx, edx
jae 0x4619e3
mov eax, dword [ebp - 0x14]
jmp 0x461810
mov edi, 4
mov ecx, dword [ebp - 0x44]
jmp 0x4619e9
mov ecx, dword [ebp - 0x44]
mov edi, 2
jmp 0x4619e9
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x50]
cmp ebx, edx
jne 0x4619f4
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x20], ebx
cmp esi, 0xffff
jb 0x461788
jmp 0x461a72
cmp dword [ebp - 0x40], 0
jne 0x4619d4
xor ecx, ecx
mov eax, 0xfffd
xor ebx, ebx
mov word [ebp + esi*2 - 0x20094], ax
mov dword [ebp - 0x44], ecx
inc esi
jmp 0x4619e6
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x50]
jmp 0x4619f4
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 0x461a72
xor eax, eax
mov word [ebp + esi*2 - 0x20094], ax
jmp 0x461a72
lea eax, [edi + ebx]
mov word [ebp + esi*2 - 0x20094], cx
mov dword [ebp - 0x20], eax
jmp 0x461a45
xor eax, eax
mov dword [ebp - 0x20], ebx
mov word [ecx], ax
test esi, esi
je 0x461b7f
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov ecx, dword [0x4f8174]
sub eax, dword [0x4fd72c]
cmp eax, dword [ecx + 0xd8]
jbe 0x461ace
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 0x461ac7
mov eax, dword [ebp - 0x6c]
cmp dword [0x4fcbf0], eax
jne 0x461ac7
mov edx, 1
or ecx, 0xffffffff
call fcn.004018d0
call ebx
mov dword [0x4fd72c], 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 0x461740
jg 0x461af4
cmp eax, dword [ebp - 0x74]
jb 0x461740
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x461b15
cmp dword [ebp - 0x20], 0
jne 0x461b15
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 0x461b3c
add esi, 0xffffffff
jne 0x461b3c
push 1
push esi
push 0xffffffffffffffff
push esi
jmp 0x461b48
push 1
push 0
push esi
lea eax, [ebp - 0x20094]
push eax
mov ecx, dword [ebp - 0x60]
call fcn.004b4bf0
test eax, eax
jne 0x461b5b
xor esi, esi
jmp 0x461bfa
mov eax, dword [0x4f8174]
mov ecx, dword [0x4faa64]
push 1
push 0
push 0xffffffffffffffff
push 0x4cecf8
mov dword [eax + 0x30], 0
call fcn.004b4bf0
jmp 0x461bf8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4f8174]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x461baf
cmp dword [ebp - 0x20], 0
jne 0x461baf
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 [0x4f8174]
test byte [eax + 0x100], 1
jne 0x461be4
mov ecx, dword [0x4faa64]
push 1
push 0
push 0xffffffffffffffff
push 0x4e513c
call fcn.004b4bf0
jmp 0x461bf8
mov ecx, dword [ebp - 0x78]
push 0x4cec30
push 0
push 0x4e513c
call fcn.0044d640
mov esi, eax
pop edi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x4c], vtable.TextFile.0
test eax, eax
je 0x461c30
cmp dword [ebp - 0x20], 0
jne 0x461c30
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 0x461c5b
mov eax, dword [ebp - 0x48]
and eax, 0x10000003
cmp eax, 0x10000000
je 0x461c54
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 0x461c82
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