Function at 0x100018d0
Capabilities:
Encode data using xor
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x80010
call fcn.1001a280
mov eax, dword [0x10026018]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, edx
push edi
lea eax, [esi + 0x10001c]
push eax
mov edi, ecx
mov dword [ebp - 0x80010], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0xffffffff
je 0x10001ac7
cmp byte [esi + 0x100038], 0
je 0x10001ac7
push edi
lea ecx, [ebp - 0x8000c]
push ebx
push ecx
call sub.MSVCR100.dll_memcpy
mov al, byte [ebp - 0x8000c]
add esp, 0xc
cmp al, 0xc1
jne 0x1000196a
mov dl, byte [ebp - 0x8000a]
lea ecx, [edi - 3]
xor eax, eax
test ecx, ecx
jle 0x100019c1
jmp 0x10001950
mov bl, byte [ebp + eax - 0x80009]
xor bl, 0xa0
sub bl, dl
mov byte [ebp + eax - 0x80009], bl
inc eax
cmp eax, ecx
jl 0x10001950
jmp 0x100019c1
cmp al, 0xc3
jne 0x1000199a
mov dl, byte [ebp - 0x80007]
lea ecx, [edi - 6]
xor eax, eax
test ecx, ecx
jle 0x100019c1
lea ecx, [ecx]
mov bl, byte [ebp + eax - 0x80006]
xor bl, 0xa0
sub bl, dl
mov byte [ebp + eax - 0x80006], bl
inc eax
cmp eax, ecx
jl 0x10001980
jmp 0x100019c1
mov dl, byte [ebp - 0x80009]
lea ecx, [edi - 4]
xor eax, eax
test ecx, ecx
jle 0x100019c1
mov bl, byte [ebp + eax - 0x80008]
xor bl, 0xa0
sub bl, dl
mov byte [ebp + eax - 0x80008], bl
inc eax
cmp eax, ecx
jl 0x100019a9
mov eax, dword [esi + 0x100010]
test eax, eax
jle 0x10001a3f
lea ecx, [eax + edi]
cmp ecx, 0x80000
jle 0x10001a18
push ecx
mov eax, 7
call fcn.10016220
push eax
push 0
mov ecx, 0x10126568
call fcn.1000b840
add esp, 0xc
call fcn.10001670
mov edx, dword [ebp - 0x80010]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10019876
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x8000c]
push edi
push ecx
lea edx, [eax + esi + 0x80010]
push edx
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 0x80010]
add esp, 0xc
add dword [esi + 0x100010], edi
push eax
jmp 0x10001a6e
xor ebx, ebx
test edi, edi
jle 0x10001a67
mov edx, dword [esi + 4]
push 0
push edi
lea ecx, [ebp + ebx - 0x8000c]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x10001a89
sub edi, eax
add ebx, eax
test edi, edi
jg 0x10001a45
mov edx, dword [ebp - 0x80010]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10019876
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x10001af5
mov eax, dword [esi + 0x100010]
lea ecx, [eax + edi]
cmp ecx, 0x80000
jle 0x10001ae9
push ecx
mov eax, 8
call fcn.10016220
push eax
push 0
mov ecx, 0x10126568
call fcn.1000b840
add esp, 0xc
call fcn.10001670
mov eax, dword [ebp - 0x80010]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10019876
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp + ebx - 0x8000c]
jmp 0x10001a1e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, 9
call fcn.10016220
push eax
push 0
mov ecx, 0x10126568
call fcn.1000b840
add esp, 0xc
call fcn.10001670
mov ecx, dword [ebp - 0x80010]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
xor al, al
pop ebx
call fcn.10019876
mov esp, ebp
pop ebp
ret 4