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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x80010
call fcn.10019820
mov eax, dword [0x10025018]
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 0x10001af7
cmp byte [esi + 0x100038], 0
je 0x10001af7
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 0x1000199a
mov dl, byte [ebp - 0x8000a]
lea ecx, [edi - 3]
xor eax, eax
test ecx, ecx
jle 0x100019f1
jmp 0x10001980
mov bl, byte [ebp + eax - 0x80009]
xor bl, 0xa0
sub bl, dl
mov byte [ebp + eax - 0x80009], bl
inc eax
cmp eax, ecx
jl 0x10001980
jmp 0x100019f1
cmp al, 0xc3
jne 0x100019ca
mov dl, byte [ebp - 0x80007]
lea ecx, [edi - 6]
xor eax, eax
test ecx, ecx
jle 0x100019f1
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 0x100019b0
jmp 0x100019f1
mov dl, byte [ebp - 0x80009]
lea ecx, [edi - 4]
xor eax, eax
test ecx, ecx
jle 0x100019f1
mov bl, byte [ebp + eax - 0x80008]
xor bl, 0xa0
sub bl, dl
mov byte [ebp + eax - 0x80008], bl
inc eax
cmp eax, ecx
jl 0x100019d9
mov eax, dword [esi + 0x100010]
test eax, eax
jle 0x10001a6f
lea ecx, [eax + edi]
cmp ecx, 0x80000
jle 0x10001a48
push ecx
mov eax, 7
call fcn.10015770
push eax
push 0
mov ecx, 0x10125568
call fcn.1000aff0
add esp, 0xc
call fcn.100016a0
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.10018e16
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 0x10001a9e
xor ebx, ebx
test edi, edi
jle 0x10001a97
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 0x10001ab9
sub edi, eax
add ebx, eax
test edi, edi
jg 0x10001a75
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.10018e16
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x10001b25
mov eax, dword [esi + 0x100010]
lea ecx, [eax + edi]
cmp ecx, 0x80000
jle 0x10001b19
push ecx
mov eax, 8
call fcn.10015770
push eax
push 0
mov ecx, 0x10125568
call fcn.1000aff0
add esp, 0xc
call fcn.100016a0
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.10018e16
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp + ebx - 0x8000c]
jmp 0x10001a4e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, 9
call fcn.10015770
push eax
push 0
mov ecx, 0x10125568
call fcn.1000aff0
add esp, 0xc
call fcn.100016a0
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.10018e16
mov esp, ebp
pop ebp
ret 4