Function at 0x403010
Capabilities:
Read and send data from client to server
Read file on windows
Send data
Send data on socket

Disassembly:
mov eax, 0x213c
call fcn.00404b30
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2154]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x44]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], 0xffffffff
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x44]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
push ecx
push edx
push eax
call fcn.00402bb0
mov edx, dword [esp + 0x2164]
add esp, 0xc
xor ecx, ecx
mov ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebp
test edx, edx
sete cl
test ecx, eax
je 0x40310e
lea edx, [esp + 0x44]
lea eax, [esp + 0x149]
push edx
push 0x40f1f4
push eax
mov byte [esp + 0x154], 1
call fcn.00404e06
lea edi, [esp + 0x155]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x2150]
push 0
not ecx
push ecx
lea ecx, [esp + 0x150]
push ecx
push edx
call sub.WSOCK32.dll_send
cmp eax, 1
jge 0x4030e3
push 0
push 0x40f1d4
call fcn.004012c0
add esp, 8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
test ebp, ebp
je 0x403772
mov eax, dword [esp + 0x10]
push eax
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
lea ecx, [esp + 0x44]
push 2
push ecx
call fcn.00405c9d
add esp, 8
test eax, eax
je 0x4031b3
mov eax, dword [0x4102c8]
mov byte [esp + 0x148], 1
cmp eax, 2
jne 0x40314b
lea edx, [esp + 0x44]
lea eax, [esp + 0x149]
push edx
push 0x40f1b0
push eax
jmp 0x40315d
lea ecx, [esp + 0x44]
lea edx, [esp + 0x149]
push ecx
push 0x40f194
push edx
call fcn.00404e06
lea edi, [esp + 0x155]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
push 0
push ecx
mov ecx, dword [esp + 0x2158]
lea eax, [esp + 0x150]
push eax
push ecx
call sub.WSOCK32.dll_send
cmp eax, 1
jge 0x4031a1
push 0
push 0x40f174
call fcn.004012c0
add esp, 8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
test ebp, ebp
jmp 0x403709
mov ebx, dword [esp + 0x2150]
lea eax, [esp + 0x148]
push 0x2000
push eax
push ebx
call fcn.00402af0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x403204
push 0
push 0x40e9b4
call fcn.004012c0
add esp, 8
test ebp, ebp
je 0x403772
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
mov al, byte [esp + 0x148]
test al, al
je 0x403225
push 0
push 0x40f15c
call fcn.004012c0
add esp, 8
test ebp, ebp
jmp 0x403709
lea eax, [esp + 0x44]
lea esi, [esp + 0x44]
test eax, eax
je 0x40348f
mov eax, dword [esp + 0x18]
push 0x5c
test eax, eax
push esi
je 0x4032bd
call fcn.00405520
add esp, 8
test eax, eax
jne 0x403250
mov eax, esi
jmp 0x403251
inc eax
push eax
lea ecx, [esp + 0x14c]
push 0x40f150
push ecx
call fcn.00404e06
lea edi, [esp + 0x154]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea edx, [esp + 0x14c]
push ecx
push edx
push ebx
call sub.WSOCK32.dll_send
cmp eax, 1
jl 0x4034f8
push esi
call fcn.00405c17
mov eax, dword [esp + 0x215c]
push eax
push 0x40f14c
push ebx
call fcn.00403010
push 0x40efc0
call fcn.00405c17
add esp, 0x14
jmp 0x403466
call fcn.00405520
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4032cf
mov ebp, esi
jmp 0x4032dd
push esi
mov byte [ebp], 0
call fcn.00405c17
add esp, 4
inc ebp
mov eax, dword [0x41007c]
test eax, eax
je 0x4032fa
push esi
push ebp
push 0x40f12c
push 0x40f6c0
call fcn.00404854
add esp, 0x10
push 0x80
push 0x8000
push ebp
call fcn.00405947
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x403527
lea ecx, [esp + 0x20]
push ecx
push esi
call fcn.004056cf
mov eax, dword [esp + 0x3c]
push ebp
push eax
lea edx, [esp + 0x158]
push 0x40f11c
push edx
mov dword [esp + 0x34], eax
call fcn.00404e06
mov eax, dword [0x41007c]
add esp, 0x18
test eax, eax
je 0x403365
lea eax, [esp + 0x148]
push eax
push 0x40f100
push 0x40f6c0
call fcn.00404854
add esp, 0xc
lea edi, [esp + 0x148]
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x150]
push ecx
push ebx
call sub.WSOCK32.dll_send
cmp eax, 1
jl 0x4035a9
lea edx, [esp + 0x148]
push 0x2000
push edx
push ebx
call fcn.00402af0
add esp, 0xc
cmp eax, 0xffffffff
je 0x4035c3
mov al, byte [esp + 0x148]
test al, al
jne 0x4035fc
mov eax, dword [esp + 0x1c]
xor edi, edi
test eax, eax
jle 0x403408
lea eax, [esp + 0x148]
push 0x2000
push eax
push esi
call fcn.004091d4
add esp, 0xc
test eax, eax
jle 0x403616
push 0
lea ecx, [esp + 0x14c]
push eax
push ecx
push ebx
add edi, eax
call sub.WSOCK32.dll_send
cmp eax, 1
jl 0x403677
cmp edi, dword [esp + 0x1c]
jl 0x4033c8
push esi
call fcn.0040561c
add esp, 4
lea edx, [esp + 0x148]
mov byte [esp + 0x148], 0
push 0
push 1
push edx
push ebx
call sub.WSOCK32.dll_send
cmp eax, 1
jl 0x40368e
lea eax, [esp + 0x148]
push 0x2000
push eax
push ebx
call fcn.00402af0
add esp, 0xc
cmp eax, 0xffffffff
je 0x4036c1
mov al, byte [esp + 0x148]
test al, al
jne 0x4036f4
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push edx
call fcn.00402e90
mov esi, eax
add esp, 8
test esi, esi
jne 0x403235
mov eax, dword [esp + 0x10]
push eax
call fcn.00402ff0
add esp, 4
mov eax, dword [esp + 0x2158]
test eax, eax
je 0x403772
lea eax, [esp + 0x148]
push 0x40f0fc
push eax
call fcn.00404e06
lea edi, [esp + 0x150]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
push ecx
lea ecx, [esp + 0x150]
push ecx
push ebx
call sub.WSOCK32.dll_send
cmp eax, 1
jge 0x403723
push 0
push 0x40f0dc
call fcn.004012c0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
push 0
push 0x40f0dc
call fcn.004012c0
add esp, 8
test ebp, ebp
je 0x403772
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
push ebp
lea edx, [esp + 0x14d]
push 0x40f0c0
push edx
mov byte [esp + 0x154], 1
call fcn.00404e06
lea edi, [esp + 0x155]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
push 0
lea eax, [esp + 0x14c]
push ecx
push eax
push ebx
call sub.WSOCK32.dll_send
cmp eax, 1
jge 0x40357a
push 0
push 0x40f0a0
call fcn.004012c0
add esp, 8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x403772
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
push 0
push 0x40f080
call fcn.004012c0
push esi
call fcn.0040561c
add esp, 0xc
jmp 0x403703
push 0
push 0x40e9b4
call fcn.004012c0
push esi
call fcn.0040561c
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x403772
mov eax, dword [esp + 0x10]
push eax
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
push 0
push 0x40f068
call fcn.004012c0
push esi
call fcn.0040561c
add esp, 0xc
jmp 0x403585
push ebp
lea edx, [esp + 0x14d]
push 0x40f048
push edx
mov byte [esp + 0x154], 1
call fcn.00404e06
lea edi, [esp + 0x155]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
push 0
lea eax, [esp + 0x14c]
push ecx
push eax
push ebx
call sub.WSOCK32.dll_send
cmp eax, 1
jge 0x403669
push 0
push 0x40f028
call fcn.004012c0
add esp, 8
push esi
call fcn.0040561c
add esp, 4
jmp 0x40357a
push 0
push 0x40f014
call fcn.004012c0
push esi
call fcn.0040561c
add esp, 0xc
jmp 0x403703
push 0
push 0x40eff4
call fcn.004012c0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x403772
mov eax, dword [esp + 0x10]
push eax
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
push 0
push 0x40e9b4
call fcn.004012c0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x403772
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
push 0
push 0x40f15c
call fcn.004012c0
add esp, 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x403772
mov edx, dword [esp + 0x10]
push edx
call fcn.00402ff0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
lea edx, [esp + 0x148]
push 0x2000
push edx
push ebx
call fcn.00402af0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x403758
push 0
push 0x40e9b4
call fcn.004012c0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret
mov al, byte [esp + 0x148]
test al, al
je 0x403772
push 0
push 0x40f068
call fcn.004012c0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x213c
ret