Function at 0x100b2860
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x338
mov eax, dword [0x1019c020]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x338], edx
push edi
xorps xmm0, xmm0
xor ebx, ebx
movlpd qword [ebp - 0x334], xmm0
mov eax, dword [esi]
push dword [esi + 4]
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0x32c], eax
add esp, 4
mov eax, dword [ebp + 8]
mov edi, ebx
add eax, 3
and eax, 0xfffffffc
mov dword [ebp - 0x328], eax
jle 0x100b28ed
mov eax, dword [esi]
push dword [esi + 4]
mov eax, dword [eax + 0x1c]
call eax
movzx ecx, al
add esp, 4
mov eax, ecx
and eax, 0xf
mov byte [ebp + edi - 0x31c], al
cmp al, 0xc
ja 0x100b2934
shr ecx, 4
mov byte [ebp + edi - 0x31b], cl
cmp cl, 0xc
ja 0x100b2934
mov eax, dword [ebp - 0x328]
add edi, 2
cmp edi, eax
jl 0x100b28b1
and al, 7
cmp al, 4
jne 0x100b2aa4
mov eax, dword [esi]
push dword [esi + 4]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [esi]
add esp, 4
shl eax, 8
cdq
mov edi, eax
mov ebx, edx
push dword [esi + 4]
mov ecx, dword [ecx + 0x1c]
call ecx
cdq
add esp, 4
add edi, eax
adc ebx, edx
mov dword [ebp - 0x324], ebx
mov ebx, 0x10
mov edx, dword [ebp - 0x324]
jmp 0x100b2ab6
mov eax, dword [esi]
push 0
push dword [ebp - 0x32c]
push dword [esi + 4]
mov eax, dword [eax + 8]
call eax
mov edi, dword [ebp - 0x328]
add esp, 0xc
mov ebx, dword [ebp - 0x338]
add ebx, 4
mov dword [ebp - 0x320], ebx
lea edi, [edi - 1]
shr edi, 3
inc edi
mov dword [ebp - 0x328], edi
mov edi, 0x1234
mov eax, dword [esi]
lea ecx, [ebp - 0x18]
push 6
push 2
push ecx
push dword [esi + 4]
mov eax, dword [eax]
call eax
add esp, 0x10
cmp eax, 6
jge 0x100b2990
mov ecx, esi
call fcn.100a8810
push 0x1234
call dword [sym.imp.WS2_32.dll_ntohs]
xor ecx, ecx
mov edx, 0x4949
cmp ax, di
sete cl
xor eax, eax
cmp word [esi + 0x6274], dx
sete al
cmp eax, ecx
jne 0x100b29c7
lea eax, [ebp - 0x18]
push 0xc
push eax
push eax
call fcn.1013b5a2
add esp, 0xc
mov cx, word [ebp - 0x18]
mov edi, 0xffffff00
movzx eax, word [ebp - 0x14]
mov edx, dword [ebp - 0x16]
shr ax, 8
and ax, 0xfff0
shr cx, 4
and cx, di
or cx, ax
movzx eax, word [ebp - 0x10]
shr ax, 0xc
or cx, ax
mov word [ebx - 4], cx
mov cx, dx
mov ebx, dword [ebp - 0xe]
and edx, 0xfff
shr cx, 4
and cx, di
mov edi, dword [ebp - 0x12]
mov ax, di
and edi, 0xfff
shr ax, 8
and ax, 0xfff0
or cx, ax
mov ax, bx
shr ax, 0xc
and ebx, 0xfff
or cx, ax
mov eax, dword [ebp - 0x320]
mov word [eax - 2], cx
mov ecx, dword [ebp - 0x320]
mov eax, dword [ebp - 0x18]
and eax, 0xfff
mov word [ecx], ax
mov eax, dword [ebp - 0x14]
and eax, 0xfff
mov word [ecx + 6], di
mov word [ecx + 4], ax
mov edi, 0x1234
mov eax, dword [ebp - 0x10]
and eax, 0xfff
mov word [ecx + 0xa], bx
mov word [ecx + 2], dx
mov word [ecx + 8], ax
add ecx, 0x10
sub dword [ebp - 0x328], 1
mov ebx, ecx
mov dword [ebp - 0x320], ecx
jne 0x100b2970
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x330]
mov edi, dword [ebp - 0x334]
mov dword [ebp - 0x324], edx
xor eax, eax
mov dword [ebp - 0x320], edi
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x328], eax
jle 0x100b2ba3
movzx eax, byte [ebp + eax - 0x31c]
mov dword [ebp - 0x330], eax
cmp ebx, eax
jge 0x100b2b21
xor edi, edi
mov eax, dword [esi]
push dword [esi + 4]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, edi
cdq
add esp, 4
xor ecx, 8
add ecx, ebx
call fcn.1014eaf0
add dword [ebp - 0x320], eax
adc dword [ebp - 0x324], edx
add edi, 8
cmp edi, 0x20
jl 0x100b2ae4
mov eax, dword [ebp - 0x330]
add ebx, 0x20
mov edx, dword [ebp - 0x324]
mov ecx, 0x10
mov edi, 0xffff
sub ecx, eax
mov eax, dword [ebp - 0x320]
sar edi, cl
mov ecx, dword [ebp - 0x330]
and edi, eax
call fcn.1014ed70
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x330]
sub ebx, eax
mov dword [ebp - 0x324], edx
lea ecx, [eax - 1]
mov eax, 1
shl eax, cl
test edi, eax
jne 0x100b2b7a
mov ecx, dword [ebp - 0x330]
mov edx, 1
shl edx, cl
mov eax, 1
sub eax, edx
add edi, eax
mov eax, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x324]
mov word [ecx + eax*2], di
inc eax
mov dword [ebp - 0x32c], eax
cmp eax, dword [ebp - 0x328]
jl 0x100b2ad0
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret