Function at 0x10002f20
Capabilities:
Print debug messages
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10024cec
mov eax, dword fs:[0]
push eax
mov eax, 0x2024
call fcn.10010e40
mov eax, dword [0x10033024]
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 ebx, dword [ebp + 8]
mov dword [ebp - 0x2030], ebx
mov dword [ebp - 4], 1
call fcn.1000f150
mov ecx, eax
test ecx, ecx
je 0x10003702
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2014], eax
mov byte [ebp - 4], 2
lea eax, [ebp - 0x2014]
push dword [ebp + 0xc]
mov dword [ebp - 0x2024], 0
push str..pipe_s
push eax
call fcn.1000e180
mov esi, dword [ebp - 0x2014]
add esp, 0xc
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x202c], edi
cmp edi, 0xffffffff
jne 0x1000302c
nop dword [eax]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x202c], eax
cmp eax, 0xe7
jne 0x100031a0
mov eax, dword [ebp - 0x2024]
cmp eax, 0x7d0
jge 0x100030aa
add eax, 0x14
push 0x14
mov dword [ebp - 0x2024], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x202c], eax
cmp edi, 0xffffffff
je 0x10002fd0
push edi
push str.hPipeClient_:__d_r_n
push 0x10034540
call fcn.1000e180
add esp, 0xc
push dword [0x10034540]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x2024], eax
test eax, eax
je 0x100033bd
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2024]
cmp eax, 0xe7
jne 0x100032aa
push 0x3e8
push esi
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
je 0x100033bd
push ecx
mov ecx, esp
push str.Could_not_open_pipe:3_second_wait_timed_out.
call fcn.1000f800
call fcn.10002910
add esp, 4
push str.Error_:_Cant_connect_to_server__Timeout_.
jmp 0x10003680
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov edi, esp
mov dword [ebp - 0x2028], edi
call fcn.1000f150
mov ecx, eax
test ecx, ecx
je 0x1000370c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
push str.Could_not_open_pipe_:_wait_timed_out.
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.1000f3d0
test al, al
jne 0x100030f5
push 0x25
push str.Could_not_open_pipe_:_wait_timed_out.
mov ecx, edi
call fcn.1000f710
mov byte [ebp - 4], 2
call fcn.10002910
add esp, 4
call fcn.1000f150
mov ecx, eax
test ecx, ecx
je 0x10003716
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
push str.Error_:_Cant_connect_to_server__Timeout_.
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.1000f3d0
test al, al
jne 0x1000313c
push 0x2a
push str.Error_:_Cant_connect_to_server__Timeout_.
mov ecx, ebx
call fcn.1000f710
lea edx, [esi - 0x10]
mov byte [ebp - 4], 1
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000315a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10003178
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x100036e2
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x100036e2
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x202c]
push str.Could_not_open_pipe._ErrorCode___d
push 0x10034540
call fcn.1000e180
mov edi, dword [0x10034540]
add esp, 8
add edi, 0xfffffff0
mov dword [ebp - 0x202c], esp
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x100031e9
cmp ecx, dword [edi]
jne 0x100031e9
lock inc dword [eax]
jmp 0x10003225
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x2024], ecx
test ecx, ecx
je 0x10003720
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x2024]
add esp, 8
mov ecx, dword [ebp - 0x202c]
lea eax, [edi + 0x10]
mov dword [ecx], eax
call fcn.10002910
mov edi, dword [0x10034540]
add esp, 4
add edi, 0xfffffff0
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x10003264
cmp ecx, dword [edi]
jne 0x10003264
lock inc dword [eax]
lea eax, [edi + 0x10]
mov dword [ebx], eax
jmp 0x10003687
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x2024], ecx
test ecx, ecx
je 0x10003725
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x2024]
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebx], eax
jmp 0x10003687
push eax
push str.Could_not_open_pipe._ErrorCode___d
push 0x10034540
call fcn.1000e180
add esp, 8
mov dword [ebp - 0x2028], esp
mov edi, dword [0x10034540]
add edi, 0xfffffff0
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x100032e7
cmp ecx, dword [edi]
jne 0x100032e7
lock inc dword [eax]
jmp 0x10003323
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x202c], ecx
test ecx, ecx
je 0x1000372a
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x202c]
add esp, 8
mov ecx, dword [ebp - 0x2028]
lea eax, [edi + 0x10]
mov dword [ecx], eax
call fcn.10002910
push dword [ebp - 0x2024]
push str.ErrorCode_:__d
push 0x10034540
call fcn.1000e180
mov edi, dword [0x10034540]
add esp, 0x10
add edi, 0xfffffff0
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x10003377
cmp ecx, dword [edi]
jne 0x10003377
lock inc dword [eax]
lea eax, [edi + 0x10]
mov dword [ebx], eax
jmp 0x10003687
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x2028], ecx
test ecx, ecx
je 0x1000372f
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x2028]
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebx], eax
jmp 0x10003687
push 0
push 0
lea eax, [ebp - 0x2018]
mov dword [ebp - 0x2018], 2
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
jne 0x100034bf
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetNamedPipeHandleState_failed._ErrorCode___d
push 0x10034540
call fcn.1000e180
mov edi, dword [0x10034540]
add esp, 8
add edi, 0xfffffff0
mov dword [ebp - 0x2024], esp
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x1000342c
cmp ecx, dword [edi]
jne 0x1000342c
lock inc dword [eax]
jmp 0x10003468
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x2028], ecx
test ecx, ecx
je 0x10003734
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x2028]
add esp, 8
mov ecx, dword [ebp - 0x2024]
lea eax, [edi + 0x10]
mov dword [ecx], eax
call fcn.10002910
add esp, 4
call fcn.1000f150
mov ecx, eax
test ecx, ecx
je 0x10003739
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
push str.Error_:_Cant_connect_to_server__HandleState_.
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.1000f3d0
test al, al
jne 0x10003687
push 0x2e
push str.Error_:_Cant_connect_to_server__HandleState_.
mov ecx, ebx
call fcn.1000f710
jmp 0x10003687
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0x201c]
push 0
push edx
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1000358c
push edi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.WriteFile_to_pipe_failed._ErrorCode___d.
push 0x10034540
call fcn.1000e180
mov edi, dword [0x10034540]
add esp, 8
add edi, 0xfffffff0
mov dword [ebp - 0x2024], esp
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x10003533
cmp ecx, dword [edi]
jne 0x10003533
lock inc dword [eax]
jmp 0x1000356f
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x2028], ecx
test ecx, ecx
je 0x10003743
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x2028]
add esp, 8
mov ecx, dword [ebp - 0x2024]
lea eax, [edi + 0x10]
mov dword [ecx], eax
call fcn.10002910
add esp, 4
push str.Error_:_Send_data_to_server_fail.
jmp 0x10003680
push 0x1000
lea eax, [ebp - 0x2010]
push 0
push eax
call fcn.10011cc0
add esp, 0xc
lea eax, [ebp - 0x2020]
push 0
push eax
push 0x2000
lea eax, [ebp - 0x2010]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x202c]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push dword [ebp - 0x202c]
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
test edi, edi
je 0x100035e9
lea eax, [ebp - 0x2010]
push eax
jmp 0x10003680
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ReadFile_from_pipe_failed._ErrorCode___d.
push 0x10034540
call fcn.1000e180
mov edi, dword [0x10034540]
add esp, 8
add edi, 0xfffffff0
mov dword [ebp - 0x2024], esp
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x1000362c
cmp ecx, dword [edi]
jne 0x1000362c
lock inc dword [eax]
jmp 0x10003668
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x2028], ecx
test ecx, ecx
je 0x10003748
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
add ecx, 0x10
mov eax, dword [edi + 4]
inc eax
lea edx, [eax + eax]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.1000f640
mov edi, dword [ebp - 0x2028]
add esp, 8
mov ecx, dword [ebp - 0x2024]
lea eax, [edi + 0x10]
mov dword [ecx], eax
call fcn.10002910
add esp, 4
push str.Error_:_Recvive_data_to_server_fail.
mov ecx, ebx
call fcn.1000f800
lea edx, [esi - 0x10]
mov byte [ebp - 4], 1
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100036a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100036c3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x100036e2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
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.1000fe6a
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.1000f6f0
push 0x80004005
call fcn.1000f6f0
push 0x80004005
call fcn.1000f6f0
call fcn.1000e170
call fcn.1000e170
call fcn.1000e170
call fcn.1000e170
call fcn.1000e170
push 0x80004005
call fcn.1000f6f0
call fcn.1000e170
call fcn.1000e170
int3