Function at 0x442a50
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x5e6990]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov edi, edx
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x120], ecx
call fcn.0045c778
test eax, eax
jne 0x442a89
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10c], eax
call fcn.0045c778
test eax, eax
jne 0x442aae
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x114], eax
call fcn.0045c778
test eax, eax
jne 0x442ad3
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x110], eax
call fcn.0045c778
test eax, eax
jne 0x442af8
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
push 0xf
lea esi, [eax + 0x10]
push ebx
mov dword [ebp - 0x11c], esi
call dword [sym.imp.KERNEL32.dll_PurgeComm]
mov edx, dword [ebp + 8]
push 0
lea ecx, [ebp - 0x108]
push ecx
push edx
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x108], 0
jne 0x442b4f
add esi, 0xfffffff0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x442d92
mov ecx, dword [esi]
push esi
jmp 0x442d8b
mov ecx, dword [ebp - 0x118]
push 0x100
push 0
push ecx
call fcn.0055e260
push 0x100
lea edx, [ebp - 0x104]
push 0
push edx
call fcn.0055e260
add esp, 0x18
cmp byte [edi], 0x7f
je 0x442d25
cmp dword [ebp + 8], 1
je 0x442d25
lea eax, [ebp - 0x104]
push eax
mov ecx, ebx
lea edi, [ebp - 0x108]
mov dword [ebp - 0x108], 2
call fcn.00442e10
test eax, eax
je 0x442d76
mov cx, word [ebp - 0x104]
mov edx, dword [ebp - 0x118]
lea eax, [ebp - 0x104]
mov word [edx], cx
push eax
mov ecx, ebx
mov dword [ebp - 0x108], 4
call fcn.00442e10
test eax, eax
je 0x442ce5
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x118]
movzx eax, byte [ebp - 0x101]
mov dword [edx + 2], ecx
movzx ecx, byte [ebp - 0x102]
shl eax, 8
lea edx, [eax + ecx + 3]
lea eax, [ebp - 0x104]
push eax
mov ecx, ebx
mov dword [ebp - 0x108], edx
call fcn.00442e10
test eax, eax
je 0x442ce5
mov edi, dword [ebp - 0x108]
mov edx, dword [ebp - 0x118]
push edi
lea ecx, [ebp - 0x104]
push ecx
add edx, 6
push edx
call fcn.00560e30
mov eax, dword [ebp - 0x120]
add esp, 0xc
add edi, 6
mov dword [eax], edi
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442c68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x110]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442c8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x114]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442cac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442cce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055a74e
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x11c]
call fcn.00402f30
lea ecx, [ebp - 0x110]
call fcn.00402f30
lea ecx, [ebp - 0x114]
call fcn.00402f30
lea ecx, [ebp - 0x10c]
call fcn.00402f30
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055a74e
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x118]
push ecx
mov ecx, ebx
lea edi, [ebp - 0x108]
mov dword [ebp - 0x108], 1
call fcn.00442e10
test eax, eax
je 0x442d76
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x118]
mov dword [eax], edx
cmp byte [ecx], 0x7f
je 0x442c4c
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x442d86
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442d92
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x110]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442db4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x114]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442dd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442df8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.0055a74e
mov esp, ebp
pop ebp
ret 8