Function at 0x461e64
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4621d6
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x8d0], 0
je 0x46201b
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
mov edx, dword [ebp + 0xc]
test edx, edx
jle 0x461fe2
mov dword [ebp - 0x28], edx
cmp word [eax], 0xa0d
je 0x461fd1
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0xa
jne 0x461fd1
xor edx, edx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x14]
sub edx, ebx
mov dword [ebp - 0x18], edx
cmp word [eax], 0xa0d
je 0x461fc1
mov eax, dword [ebp - 4]
mov al, byte [eax + 0xac4]
sub al, 1
jb 0x461f07
je 0x461f90
dec al
je 0x461f36
dec al
je 0x461f5d
jmp 0x461fc1
push 0
lea eax, [ebp - 0x20]
push eax
push ebx
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x24]
push eax
push 2
push 0x4b2158
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_WriteFile_1
jmp 0x461fc1
mov edx, dword [ebp - 0x18]
mov ecx, ebx
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x20], eax
mov edx, 0x4b2158
mov ecx, 2
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x24], eax
jmp 0x461fc1
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9e8]
mov ecx, ebx
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x20], eax
mov edx, 0x4b2158
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9e8]
mov ecx, 2
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x24], eax
jmp 0x461fc1
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9ec]
mov ecx, ebx
mov ebx, dword [eax]
call dword [ebx + 8]
mov dword [ebp - 0x20], eax
mov edx, 0x4b2158
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9ec]
mov ecx, 2
mov ebx, dword [eax]
call dword [ebx + 8]
mov dword [ebp - 0x24], eax
xor ebx, ebx
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub dword [ebp + 0xc], eax
jmp 0x461fd2
inc ebx
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
dec eax
dec dword [ebp - 0x28]
jne 0x461eb8
mov eax, dword [ebp - 0x14]
sub eax, ebx
mov dword [ebp - 0x18], eax
push 0
lea eax, [ebp - 0x20]
push eax
push ebx
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_WriteFile_1
cmp ebx, dword [ebp - 0x20]
je 0x46200d
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4620fb
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
jmp 0x4620fb
cmp dword [ebp + 0xc], 0
jbe 0x4620fb
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xac4]
cmp eax, 5
ja case.default.0x462038
jmp dword [eax*4 + 0x46203f]
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4620f5
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_WriteFile_1
jmp 0x4620f5
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x10], eax
jmp 0x4620f5
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9e8]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x10], eax
jmp 0x4620f5
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9ec]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [eax]
call dword [ebx + 8]
mov dword [ebp - 0x10], eax
jmp 0x4620f5
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x9f4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
call fcn.004664b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9f4]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x9f4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
jmp 0x4620f5
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x10], eax
call sub.kernel32.dll_GetLastError_1
test eax, eax
jne 0x462113
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
je 0x4621a3
cmp eax, 0x70
jne 0x462146
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xa18], edx
lea edx, [ebp - 0x2c]
mov eax, 0x6248
call fcn.00409410
mov ecx, dword [ebp - 0x2c]
mov dl, 1
mov eax, dword [0x40ff20]
call fcn.0040c9dc
call fcn.00403838
jmp 0x4621bb
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x10]
je 0x462189
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa18], 0
jle 0x462166
mov eax, dword [ebp - 4]
dec dword [eax + 0xa18]
lea edx, [ebp - 0x30]
mov eax, 0x6230
call fcn.00409410
mov ecx, dword [ebp - 0x30]
mov dl, 1
mov eax, dword [0x4658a0]
call fcn.0040c9dc
call fcn.00403838
jmp 0x4621bb
cmp byte [ebp + 8], 1
jne 0x4621bb
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0xc]
mov dl, byte [ebp + 0x10]
mov eax, dword [ebp - 4]
call fcn.00461c64
jmp 0x4621bb
cmp byte [ebp + 8], 1
jne 0x4621bb
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0xc]
mov dl, byte [ebp + 0x10]
mov eax, dword [ebp - 4]
call fcn.00461c64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4621dd
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00403d8c
ret