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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x4a8420
push 0x47eeb0
mov eax, dword fs:[0]
push eax
sub esp, 0x2bc
mov eax, dword [0x4aab30]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x294], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2a4], eax
mov edi, edx
mov dword [ebp - 0x2b4], edi
xor ebx, ebx
mov dword [ebp - 0x2c0], ebx
mov dword [ebp - 0x2bc], ebx
mov dword [ebp - 0x278], ebx
mov dword [ebp - 0x2a8], ebx
mov dword [ebp - 0x274], ebx
push 0x24c
push ebx
lea ecx, [ebp - 0x270]
push ecx
call fcn.0047d730
add esp, 0xc
mov dword [ebp - 0x28c], ebx
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x284], ebx
xor eax, eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x290], 0xffffffff
mov dword [ebp - 0x29c], eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x2b8], eax
mov byte [ebp - 0x2ac], al
push edi
call fcn.0041ba80
add esp, 4
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 4], ebx
test eax, eax
jne 0x41bbdb
mov dword [ebp - 0x278], 8
jmp 0x41bed9
push 0xfffc
call fcn.0047a780
add esp, 4
mov dword [ebp - 0x298], eax
test eax, eax
je 0x41bbcc
mov edx, edi
mov ecx, esi
call fcn.0041b950
mov edi, eax
mov esi, edx
xor eax, eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], eax
lea edx, [ebp - 0x274]
push edx
mov eax, dword [ebp - 0x2a4]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x41becd
mov ecx, dword [ebp - 0x258]
mov dword [ebp - 0x288], ecx
mov edx, dword [ebp - 0x254]
mov dword [ebp - 0x28c], edx
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0x28c]
mov edx, ecx
mov eax, dword [ebp - 0x288]
or edx, eax
je 0x41bca1
cmp edi, ecx
jne 0x41bc7d
cmp esi, eax
jne 0x41bc7f
mov ebx, edi
mov dword [ebp - 0x284], ebx
mov dword [ebp - 0x280], esi
mov byte [ebp - 0x2ac], 1
jmp 0x41bed9
cmp esi, eax
ja 0x41bc97
jb 0x41bc87
cmp edi, ecx
jae 0x41bc97
mov ebx, edi
mov dword [ebp - 0x284], ebx
mov dword [ebp - 0x280], esi
jmp 0x41bcaf
cmp esi, eax
jb 0x41bcaf
ja 0x41bca1
cmp edi, ecx
jbe 0x41bcaf
xor ebx, ebx
mov dword [ebp - 0x284], ebx
mov dword [ebp - 0x280], ebx
push 0
push 0x80
push 3
push 0
push 7
push SysReAllocString
mov eax, dword [ebp - 0x2a4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x290], eax
cmp eax, 0xffffffff
je 0x41becd
mov eax, dword [ebp - 0x2b4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41bce6
sub eax, edx
lea esi, [eax + 0x100]
push esi
call fcn.0047a780
add esp, 4
mov edi, eax
mov dword [ebp - 0x2b8], edi
test edi, edi
je 0x41bbcc
mov ecx, ebx
or ecx, dword [ebp - 0x280]
jne 0x41bd26
mov edx, dword [ebp - 0x2b0]
push edx
push str.STOR__s
jmp 0x41bd32
mov eax, dword [ebp - 0x2b0]
push eax
push str.APPE__s
push esi
push edi
call fcn.0047b592
add esp, 0x10
lea ecx, [ebp - 0x2a8]
push ecx
push 0
push edi
push 2
push 1
mov edx, dword [ebp - 0x294]
push edx
call dword [sym.imp.WININET.dll_FtpCommandA]
test eax, eax
je 0x41becd
push 0
push 0
mov esi, dword [ebp - 0x280]
push esi
push ebx
mov eax, dword [ebp - 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x41becd
mov byte [ebp - 0x279], 1
jmp 0x41bd90
cmp byte [ebp - 0x279], 0
je 0x41bed9
mov eax, dword [ebp - 0x288]
cmp esi, eax
jg 0x41bed9
mov edi, dword [ebp - 0x28c]
jl 0x41bdbb
cmp ebx, edi
jae 0x41bed9
mov ecx, edi
sub ecx, ebx
sbb eax, esi
xor edx, edx
cmp eax, edx
jl 0x41bdd9
jg 0x41bdd2
mov eax, 0xfffc
cmp ecx, eax
jb 0x41bdd9
mov eax, 0xfffc
jmp 0x41bddd
mov eax, edi
sub eax, ebx
mov dword [ebp - 0x29c], eax
push 0
lea ecx, [ebp - 0x29c]
push ecx
push eax
mov edx, dword [ebp - 0x298]
push edx
mov eax, dword [ebp - 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x41becd
xor edi, edi
mov dword [ebp - 0x2cc], edi
mov esi, dword [ebp - 0x29c]
mov dword [ebp - 0x2c8], esi
lea ecx, [ecx]
lea ecx, [ebp - 0x2c4]
push ecx
push esi
mov edx, dword [ebp - 0x298]
lea eax, [edi + edx]
push eax
mov ecx, dword [ebp - 0x2a8]
push ecx
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x41becd
mov eax, dword [ebp - 0x2c4]
sub esi, eax
mov dword [ebp - 0x2c8], esi
add edi, eax
mov dword [ebp - 0x2cc], edi
test esi, esi
jne 0x41be20
add ebx, dword [ebp - 0x29c]
mov dword [ebp - 0x284], ebx
adc dword [ebp - 0x280], esi
mov eax, dword [ebp - 0x2c0]
test eax, eax
je 0x41bec2
push esi
mov edx, dword [ebp - 0x278]
push edx
mov ecx, dword [ebp - 0x2ac]
push ecx
mov edx, dword [ebp - 0x288]
push edx
mov ecx, dword [ebp - 0x28c]
push ecx
mov edx, dword [ebp - 0x280]
push edx
push ebx
mov ecx, dword [ebp - 0x2b4]
push ecx
mov edx, dword [ebp - 0x2a4]
push edx
mov ecx, dword [ebp - 0x2bc]
push ecx
call eax
add esp, 0x28
mov byte [ebp - 0x279], al
mov esi, dword [ebp - 0x280]
jmp 0x41bd90
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x278], eax
mov dword [ebp - 4], 0xfffffffe
call fcn.0041bf0d
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.0047a722
mov esp, ebp
pop ebp
ret