Function at 0x10006a60
Capabilities:
Encode data using xor
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov esi, eax
mov eax, dword [esi + 0x8000c]
xor edi, edi
push edi
mov ecx, 0x80000
sub ecx, eax
push ecx
lea edx, [eax + esi + 0xc]
mov eax, dword [esi + 4]
push edx
push eax
call dword [sym.imp.WS2_32.dll_recv]
or ebx, 0xffffffff
cmp eax, ebx
jne 0x10006b45
mov edi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call edi
cmp eax, 0x2733
je 0x10006c74
call edi
push eax
push 0x10049238
call fcn.10003ff0
add esp, 4
push eax
push 0
mov ecx, 0x100a8f80
call fcn.100047e0
mov eax, dword [esi + 4]
add esp, 0xc
cmp eax, ebx
je 0x10006ada
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esi + 4], ebx
mov eax, dword [esi + 8]
test eax, eax
je 0x10006aef
push eax
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
mov dword [esi + 8], 0
mov byte [esi + 0x100038], 0
cmp dword [0x100a9fe4], ebx
je 0x10006b0b
cmp byte [0x101aa018], 0
jne 0x10006cd9
call fcn.100067c0
test al, al
je 0x10006cd9
movzx ecx, word [0x100a9c04]
push ecx
push 0x100a9c27
mov ecx, 0x100a9fe0
call fcn.10006840
test al, al
je 0x10006cd9
call fcn.1000a5f0
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add dword [esi + 0x8000c], eax
mov eax, dword [esi + 0x8000c]
cmp eax, 4
jl 0x10006c74
lea ebx, [ebx]
mov al, byte [esi + edi + 0xc]
lea edx, [esi + 0xc]
cmp al, 0xc1
jne 0x10006b76
movzx ebx, byte [edi + esi + 0xd]
mov cl, byte [edi + esi + 0xf]
jmp 0x10006b95
cmp al, 0xc2
jne 0x10006cb1
movzx ecx, byte [edi + esi + 0xd]
shl cx, 8
movzx ebx, cx
movzx ecx, byte [edi + esi + 0xe]
or ebx, ecx
mov cl, byte [edi + esi + 0x10]
cmp ebx, 4
jl 0x10006c7d
cmp ebx, 0x80000
jg 0x10006c7d
cmp ebx, dword [esi + 0x8000c]
jg 0x10006c4c
cmp al, 0xc1
jne 0x10006be8
mov dl, byte [edi + esi + 0xe]
mov byte [ebp - 4], dl
lea edx, [ebx - 3]
xor eax, eax
lea ecx, [edi + esi + 0xf]
test edx, edx
jle 0x10006c14
mov dl, byte [ecx + eax]
add dl, byte [ebp - 4]
lea ecx, [edi + esi + 0xf]
xor dl, 0xa0
mov byte [ecx + eax], dl
inc eax
lea edx, [ebx - 3]
cmp eax, edx
jl 0x10006bce
jmp 0x10006c14
mov cl, byte [edi + esi + 0xf]
lea edx, [ebx - 4]
xor eax, eax
mov byte [ebp - 4], cl
lea ecx, [edi + esi + 0x10]
test edx, edx
jle 0x10006c14
mov dl, byte [ecx + eax]
add dl, byte [ebp - 4]
lea ecx, [edi + esi + 0x10]
xor dl, 0xa0
mov byte [ecx + eax], dl
inc eax
lea edx, [ebx - 4]
cmp eax, edx
jl 0x10006bfc
mov al, byte [ecx]
mov edx, dword [esi + 0x100014]
mov byte [ebp - 8], al
mov ecx, dword [ebp - 8]
push ebx
lea eax, [esi + edi + 0xc]
push eax
push ecx
call edx
sub dword [esi + 0x8000c], ebx
add esp, 0xc
add edi, ebx
cmp dword [esi + 0x8000c], 0
jg 0x10006b60
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
jle 0x10006c74
mov eax, dword [esi + 0x8000c]
test eax, eax
jle 0x10006c74
mov ecx, 0x80000
sub ecx, edi
cmp eax, ecx
jg 0x10006c74
push eax
lea eax, [edi + esi + 0xc]
push eax
push edx
call fcn.100206b0
add esp, 0xc
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, cl
push ecx
movzx edx, al
push ebx
push edx
push 0x10049438
call fcn.10003ff0
add esp, 4
push eax
push 0
mov ecx, 0x100a8f80
call fcn.100047e0
add esp, 0x14
call fcn.10006a20
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi + esi + 0xc]
push eax
push 0x10049338
call fcn.10003ff0
add esp, 4
push eax
push 0
mov ecx, 0x100a8f80
call fcn.100047e0
add esp, 0xc
call fcn.10006a20
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret