Function at 0x57e8d4
Capabilities:
Write file on windows

Disassembly:
push ebp
sub esp, 0x40
mov eax, 0x6bafc7
call fcn.00664608
sub esp, 0x260
and dword [ebp + 0x40], 0
push ebx
push esi
mov esi, dword [ebp + 0x4c]
mov ebx, ecx
push edi
xor edi, edi
inc edi
cmp dword [esi + 0x10], 0xfffff
push edi
jbe 0x57e948
lea ecx, [ebp - 0xa4]
call fcn.0043cc35
and dword [ebp - 4], 0
lea eax, [ebp - 0xa4]
push str._bytes
push dword [esi + 0x10]
push str.cant_send_message_with_length
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
push eax
call fcn.00445564
lea ecx, [ebp - 0xa4]
call fcn.0043d111
mov eax, edi
jmp 0x57edf3
lea ecx, [ebp - 0x1d4]
call fcn.0043cc35
push 0x5d
push dword [esi + 0x10]
lea eax, [ebp + 0x34]
mov dword [ebp - 4], edi
push 0x10
push eax
call fcn.006520d7
pop ecx
pop ecx
push eax
push 0x5b
lea eax, [ebp - 0x1d4]
push eax
call fcn.00446121
push eax
call fcn.0056e1ae
mov ecx, eax
call fcn.0043cf21
push eax
call fcn.00446121
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x1d0]
call fcn.00440063
push esi
lea eax, [ebp]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0044d0c7
lea ecx, [ebp]
mov byte [ebp - 4], 4
call fcn.00410858
xor eax, eax
lea ecx, [ebp - 0x26c]
push edi
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x38], eax
call fcn.0043cc35
push str._bytes
push dword [ebp + 0x28]
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 5
push str.attempting_to_send
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
push eax
call fcn.00445564
mov esi, dword [ebp + 0x28]
test esi, esi
je 0x57ed12
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x40], 0
jne 0x57edd2
push edi
lea ecx, [ebp - 0x13c]
sub esi, eax
call fcn.0043cc35
push str._bytes
push esi
push str.attempting_to_write
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 6
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
and dword [ebx + 0x74], 0
lea eax, [ebp + 0x18]
and dword [ebx + 0x78], 0
cmp dword [ebp + 0x2c], 0x10
jb 0x57ea5d
mov eax, dword [ebp + 0x18]
add eax, dword [ebp + 0x4c]
lea ecx, [ebx + 0x6c]
push ecx
lea ecx, [ebp + 0x30]
push ecx
push esi
push eax
push dword [ebx + 0x88]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebx + 0xa0], eax
test esi, esi
je 0x57eb01
push edi
lea ecx, [ebp - 0xa4]
call fcn.0043cc35
push dword [ebp + 0x28]
mov esi, dword [ebp + 0x4c]
lea eax, [ebp - 0xa4]
push str._writing
push dword [ebp + 0x3c]
mov byte [ebp - 4], 7
push str._transferred
push esi
push str.:_offset
push dword [ebp + 0x30]
push str.wrote
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
add esi, dword [ebp + 0x30]
inc dword [ebp + 0x38]
mov dword [ebp + 0x4c], esi
jmp 0x57ece0
cmp eax, 0x3e5
jne 0x57ec82
xor esi, esi
lea eax, [ebx + 0x6c]
cmp dword [eax], 0x103
jne 0x57eb31
push 0x64
call dword [sym.imp.KERNEL32.DLL_Sleep]
add esi, 0x64
cmp esi, 0x2710
jb 0x57eb0e
jmp 0x57ec25
push edi
lea ecx, [ebp + 0x3c]
push ecx
push eax
push dword [ebx + 0x88]
call dword [sym.imp.KERNEL32.DLL_GetOverlappedResult]
lea ecx, [ebp - 0xa4]
push edi
test eax, eax
je 0x57ebbf
call fcn.0043cc35
push dword [ebp + 0x28]
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 8
push str._writing
push dword [ebp + 0x3c]
push str._transferred
push dword [ebp + 0x4c]
push str.:_offset
push dword [ebp + 0x38]
push str.overlapped_write
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
mov eax, dword [ebp + 0x4c]
add eax, dword [ebp + 0x3c]
inc dword [ebp + 0x38]
mov dword [ebp + 0x4c], eax
jmp 0x57ec16
call fcn.0043cc35
push dword [ebp + 0x28]
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 9
push str.overlapped_result_when_sending
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
lea eax, [ebp]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00440063
lea eax, [ebx + 0xa0]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp + 0x40]
mov ecx, ebx
push eax
lea eax, [ebp]
push eax
push 4
call fcn.0057e389
lea ecx, [ebp]
call fcn.00410858
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 6
call fcn.0043d111
cmp esi, 0x2710
jb 0x57eceb
push edi
lea ecx, [ebp - 0xa4]
call fcn.0043cc35
push dword [ebp + 0x28]
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xb
push str.waiting_after_writing
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
lea eax, [ebp]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00440063
lea eax, [ebx + 0xa0]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp]
push eax
push 3
jmp 0x57ecd1
push edi
lea ecx, [ebp - 0xa4]
call fcn.0043cc35
push dword [ebp + 0x28]
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xd
push str.writing
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
lea eax, [ebp]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00440063
lea eax, [ebx + 0xa0]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp]
push eax
push 2
mov ecx, ebx
call fcn.0057e389
lea ecx, [ebp]
call fcn.00410858
lea ecx, [ebp - 0xa4]
call fcn.0043d111
lea ecx, [ebp - 0x13c]
mov byte [ebp - 4], 5
call fcn.0043d111
mov esi, dword [ebp + 0x28]
mov eax, dword [ebp + 0x4c]
cmp eax, esi
jb 0x57ea09
cmp dword [ebp + 0x40], 0
jne 0x57edd2
push dword [ebx + 0x88]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
push edi
test eax, eax
jne 0x57ed88
lea ecx, [ebp - 0xa4]
call fcn.0043cc35
push dword [ebp + 0x28]
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xf
push str.flushing_writing
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
lea eax, [ebp]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00440063
lea eax, [ebx + 0xa0]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp + 0x40]
mov ecx, ebx
push eax
lea eax, [ebp]
push eax
push 5
call fcn.0057e389
lea ecx, [ebp]
call fcn.00410858
lea ecx, [ebp - 0xa4]
jmp 0x57edcd
lea ecx, [ebp - 0x13c]
call fcn.0043cc35
push dword [ebp + 0x28]
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 0x11
push str._times_to_send
push dword [ebp + 0x38]
push str.flushed___wrote
push eax
call fcn.00445564
mov ecx, eax
call fcn.0044578b
push eax
call fcn.00445564
mov ecx, eax
call fcn.0043cf21
lea ecx, [ebp - 0x13c]
call fcn.0043d111
lea ecx, [ebp - 0x26c]
call fcn.0043d111
lea ecx, [ebp + 0x18]
call fcn.00410858
lea ecx, [ebp - 0x1d4]
call fcn.0043d111
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add ebp, 0x44
leave
ret 4