Function at 0x44c280
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d7317
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
mov eax, dword [0x52cc80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [edi + 0x40], 0
je 0x44c2c3
call fcn.0044c500
test al, al
je 0x44c4d5
mov eax, dword [edi + 0x60]
cmp eax, dword [edi + 0x64]
jne 0x44c34f
lea eax, [edi + 0x70]
mov dword [ebp - 0x1d4], eax
lea esi, [eax + 4]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 0
cmp dword [edi + 0x9c], 0
jne 0x44c305
mov dword [ebp - 4], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44c4d5
lea eax, [ebp - 0x1e4]
push eax
lea ecx, [edi + 0x8c]
call fcn.0042b450
mov edx, eax
mov eax, dword [edx]
test eax, eax
je 0x44c321
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [edx + 8]
mov eax, dword [eax + ecx*4]
add eax, 4
push eax
lea ecx, [edi + 0x60]
call fcn.004274a0
mov dword [edi + 0x6c], 0
mov dword [ebp - 4], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [edi + 0x64]
sub ecx, dword [edi + 0x60]
lea eax, [edi + 0x44]
push eax
lea eax, [ebp - 0x1d8]
push eax
mov eax, dword [edi + 0x6c]
add eax, dword [edi + 0x60]
push ecx
push eax
push dword [edi + 0x5c]
mov dword [ebp - 0x1d8], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x44c3de
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x44c462
cmp eax, 0x3e5
je 0x44c3da
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x1d4], str.Channel_write_failure
call fcn.004acc08
mov dword [ebp - 4], 3
mov dword [ebp - 0x1e4], 0x513be8
mov dword [ebp - 4], 0xffffffff
push 0x516ca4
lea eax, [ebp - 0x1e4]
push eax
call fcn.004b183b
mov byte [edi + 0x40], 1
cmp byte [edi + 0x40], 0
jne 0x44c4a7
mov eax, dword [ebp - 0x1d8]
add dword [edi + 0x6c], eax
mov eax, dword [edi + 0x64]
sub eax, dword [edi + 0x60]
mov byte [ebp - 0x1cd], 1
cmp dword [edi + 0x6c], eax
jne 0x44c451
lea eax, [edi + 0x70]
mov dword [ebp - 0x1d4], eax
lea esi, [eax + 4]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 4
lea ecx, [edi + 0x8c]
call fcn.0044c820
mov eax, dword [edi + 0x60]
mov dword [edi + 0x64], eax
cmp dword [edi + 0x9c], 0
mov dword [edi + 0x6c], 0
setne byte [ebp - 0x1cd]
mov dword [ebp - 4], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [edi + 0x58]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov al, byte [ebp - 0x1cd]
jmp 0x44c4d7
lea ecx, [ebp - 0x1f0]
call fcn.004acc6b
mov dword [ebp - 4], 1
mov dword [ebp - 0x1f0], 0x513be8
mov dword [ebp - 4], 2
mov dword [ebp - 0x1f0], 0x5142c8
mov dword [ebp - 4], 0xffffffff
push 0x516c78
lea eax, [ebp - 0x1f0]
push eax
call fcn.004b183b
mov ebx, dword [0x531d90]
mov eax, ebx
imul eax, ebx
imul eax, ebx
cdq
mov ecx, 0xe
idiv ecx
cmp edx, 0xc
jne 0x44c4d5
xor esi, esi
mov edi, ebx
mov eax, edi
lea ecx, [ebx + esi]
cdq
inc esi
idiv ecx
dec edi
cmp esi, 0x6f
jb 0x44c4c6
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a992a
mov esp, ebp
pop ebp
ret