Function at 0x415bc0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x40c8
call fcn.0042bc90
mov eax, dword [0x456d10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40c4], eax
mov dword [ebp - 0x4098], edx
mov edx, dword [0x45a95c]
mov eax, edx
mov dword [ebp - 0x409c], ecx
mov ecx, dword [0x45a940]
imul eax, ecx
push ebx
push esi
push edi
push str.Enter_SendCurrentScreen_n
mov dword [ebp - 0x40bc], eax
lea esi, [ebp - 0x4068]
mov eax, ecx
mov dword [ebp - 0x406c], 0x2828
sar eax, 8
mov ebx, 0xfffffffe
mov byte [0x457ea7], al
mov eax, edx
sar eax, 8
push 1
mov dword [ebp - 0x40ac], 0
mov dword [ebp - 0x40b4], 0xffffffff
mov dword [ebp - 0x40a8], 0xffffffff
mov dword [ebp - 0x40a4], ecx
mov dword [ebp - 0x40c8], edx
mov byte [0x457ea8], cl
mov byte [0x457ea9], al
mov byte [0x457eaa], dl
call fcn.0041a380
mov ecx, dword [0x45a96c]
add esp, 8
cmp byte [0x45a54d], 0
mov edi, ecx
mov dword [ebp - 0x4070], 0
jne 0x415d1f
mov eax, dword [0x45a938]
cmp dword [ebp - 0x409c], eax
je 0x415cba
mov eax, dword [ebp - 0x409c]
cmp eax, ecx
je 0x415cbc
cmp eax, dword [0x45aa7c]
je 0x415cbc
test eax, eax
je 0x415cbc
mov ecx, eax
jmp 0x415d10
mov edi, eax
cmp dword [0x45aa80], 0
je 0x415cdd
cmp edi, ecx
jne 0x415cdd
push 9
push 0x457ea4
push 0x45a828
call fcn.0041c5b0
add esp, 0xc
push 0
push dword [0x45af78]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x415d1f
push 0
lea eax, [ebp - 0x4070]
push eax
push 9
push 0x457ea4
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [0x45a958]
test ecx, ecx
je 0x415d1f
push 9
mov edx, 0x457ea4
call fcn.00404560
add esp, 4
push 0x14
lea eax, [ebp - 0x28]
push eax
push dword [0x457dcc]
call fcn.0041cee0
lea ecx, [ebp - 0x28]
add esp, 0xc
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415d40
push 0
sub ecx, edx
lea eax, [ebp - 0x28]
push ecx
push eax
push dword [ebp - 0x409c]
call fcn.004045f0
add esp, 0x10
cmp dword [ebp - 0x40bc], 0
jle 0x416082
xor edi, edi
lea ecx, [ecx]
mov eax, dword [ebp - 0x4098]
movzx eax, word [eax + edi*4 + 2]
push eax
call fcn.0041c6b0
mov dword [ebp - 0x40b8], eax
mov eax, dword [ebp - 0x4098]
movzx eax, word [eax + edi*4 + 2]
push eax
call fcn.0041c680
mov dword [ebp - 0x40b0], eax
add esp, 8
mov eax, dword [ebp - 0x4098]
mov ax, word [eax + edi*4]
mov word [ebp - 0x4078], ax
xor eax, eax
cmp byte [0x45a54e], 0
mov word [ebp - 0x4076], ax
mov eax, dword [0x457dc4]
jne 0x415dcf
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
push 0
push 0
push 4
lea ecx, [ebp - 0x407c]
push ecx
push 1
lea ecx, [ebp - 0x4078]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0x4098]
movzx eax, word [eax + edi*4]
mov dword [ebp - 0x40c0], eax
test ebx, ebx
js 0x415efe
lea eax, [ebx + 8]
cmp edi, eax
jge 0x415efe
mov eax, ebx
cdq
idiv dword [ebp - 0x40a4]
mov eax, edi
mov ecx, edx
cdq
idiv dword [ebp - 0x40a4]
cmp ecx, edx
jge 0x415efe
lea eax, [ebx + 1]
mov dword [ebp - 0x40a0], eax
cmp eax, edi
jge 0x415f4b
mov edi, edi
mov ecx, dword [ebp - 0x4098]
mov ebx, esi
mov ax, word [ecx + eax*4]
mov word [ebp - 0x4074], ax
xor eax, eax
cmp byte [0x45a54e], 0
mov word [ebp - 0x4072], ax
mov eax, dword [0x457dc4]
jne 0x415e70
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
push 0
push 0
push 8
lea ecx, [ebp - 0x14]
push ecx
push 1
lea ecx, [ebp - 0x4074]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jne 0x415e9a
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x415ed7
cmp edi, 1
jle 0x415eb6
test edi, edi
jle 0x415ed7
push edi
lea eax, [ebp - 0x14]
push eax
push esi
call fcn.0042a7d0
add esp, 0xc
lea ebx, [edi + esi]
jmp 0x415ed7
jne 0x415ed7
mov cl, byte [ebp - 0x14]
lea eax, [ecx - 1]
cmp al, 0xfd
ja 0x415ed2
movzx eax, cl
push eax
call fcn.0041caf0
add esp, 4
mov byte [esi], al
jmp 0x415ed4
mov byte [esi], cl
lea ebx, [esi + 1]
mov eax, dword [ebp - 0x40a0]
sub esi, ebx
add dword [ebp - 0x406c], esi
inc eax
mov edi, dword [ebp - 0x40ac]
mov esi, ebx
mov dword [ebp - 0x40a0], eax
cmp eax, edi
jl 0x415e40
jmp 0x415f4b
cmp dword [0x45af94], 0
je 0x415f24
mov eax, edi
cdq
idiv dword [ebp - 0x40a4]
mov ecx, eax
lea eax, [ecx + 1]
cmp eax, dword [ebp - 0x40c8]
jne 0x415f24
lea eax, [edx + 1]
push eax
push ecx
jmp 0x415f33
mov eax, edi
cdq
idiv dword [ebp - 0x40a4]
inc eax
lea ecx, [edx + 1]
push ecx
push eax
lea eax, [ebp - 0x406c]
push eax
push esi
push dword [0x457dcc]
call fcn.0041d120
mov esi, eax
add esp, 0x14
cmp dword [0x45ad44], 0
mov ebx, dword [ebp - 0x40b8]
mov dword [ebp - 0x40a0], edi
mov edi, dword [ebp - 0x40b0]
jne 0x415f9e
mov eax, dword [ebp - 0x40a8]
cmp dword [ebp - 0x40b4], ebx
jne 0x415f78
cmp eax, edi
je 0x415f9e
push 0x47b748
push dword [0x45ac1c]
push eax
push ebx
push edi
lea eax, [ebp - 0x406c]
push eax
push esi
push dword [0x457dcc]
call fcn.0041d250
add esp, 0x20
mov esi, eax
mov eax, dword [ebp - 0x40c0]
mov word [ebp - 0x4070], ax
xor eax, eax
cmp byte [0x45a54e], 0
mov dword [ebp - 0x40b4], ebx
mov ebx, esi
mov word [ebp - 0x406e], ax
mov eax, dword [0x457dc4]
mov dword [ebp - 0x40a8], edi
jne 0x415fd6
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
push 0
push 0
push 8
lea ecx, [ebp - 0xc]
push ecx
push 1
lea ecx, [ebp - 0x4070]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jne 0x416000
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x41603d
cmp edi, 1
jle 0x41601c
test edi, edi
jle 0x41603d
push edi
lea eax, [ebp - 0xc]
push eax
push esi
call fcn.0042a7d0
add esp, 0xc
lea ebx, [edi + esi]
jmp 0x41603d
jne 0x41603d
mov cl, byte [ebp - 0xc]
lea eax, [ecx - 1]
cmp al, 0xfd
ja 0x416038
movzx eax, cl
push eax
call fcn.0041caf0
add esp, 4
mov byte [esi], al
jmp 0x41603a
mov byte [esi], cl
lea ebx, [esi + 1]
sub esi, ebx
add dword [ebp - 0x406c], esi
mov esi, ebx
movzx eax, byte [ebx - 1]
cmp eax, 0xffffffff
jne 0x416063
push eax
lea eax, [ebp - 0x406c]
push eax
push ebx
call fcn.0041bad0
add esp, 0xc
mov esi, eax
mov edi, dword [ebp - 0x40ac]
mov ebx, dword [ebp - 0x40a0]
inc edi
mov dword [ebp - 0x40ac], edi
cmp edi, dword [ebp - 0x40bc]
jl 0x415d70
lea eax, [ebp - 0x4094]
push eax
push dword [ebp - 0x40c4]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx eax, word [ebp - 0x4090]
inc eax
push eax
movsx eax, word [ebp - 0x408e]
inc eax
push eax
lea eax, [ebp - 0x406c]
push eax
push esi
push dword [0x457dcc]
call fcn.0041d120
mov esi, eax
lea eax, [ebp - 0x4068]
push eax
push 5
sub esi, eax
call fcn.0041a380
push dword [0x45ac08]
mov ecx, dword [ebp - 0x409c]
lea edx, [ebp - 0x4068]
push esi
call fcn.00418e40
mov ecx, dword [ebp - 4]
add esp, 0x24
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004265fb
mov esp, ebp
pop ebp
ret