Function at 0x101e99c0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x54
call fcn.1026b810
mov eax, dword [0x10343c80]
xor eax, esp
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x6c]
push ebp
mov ebp, dword [esp + 0x60]
push esi
mov esi, dword [esp + 0x6c]
push edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x1c], ebx
lea eax, [esi - 1]
mov dword [esp + 0x38], edi
cmp eax, 0x7f
ja 0x101e9da9
movups xmm0, xmmword [ebx]
push ecx
push ebx
push ebx
movups xmmword [esp + 0x48], xmm0
call edx
lea eax, [esi + 7]
add esp, 0xc
cdq
and edx, 7
lea esi, [edx + eax]
sar esi, 3
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x34], esi
je 0x101e9c01
xor ecx, ecx
mov dword [esp + 0x14], ecx
test esi, esi
jle 0x101e9d07
cmp esi, 8
jb 0x101e9bce
lea eax, [esp + 0x4b]
mov dword [esp + 0x14], ecx
lea edx, [edi - 1]
add eax, esi
add edx, esi
cmp edi, eax
ja 0x101e9a67
lea eax, [esp + 0x4c]
cmp edx, eax
jae 0x101e9bce
lea eax, [ebp - 1]
add eax, esi
cmp edi, eax
ja 0x101e9a78
cmp edx, ebp
jae 0x101e9bce
lea eax, [ebx - 1]
add eax, esi
cmp edi, eax
ja 0x101e9a89
cmp edx, ebx
jae 0x101e9bce
lea edx, [esp + 0x4c]
cmp edx, eax
ja 0x101e9a9f
lea eax, [esp + 0x4b]
add eax, esi
cmp eax, ebx
jae 0x101e9bce
mov eax, esi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x101e9aad
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, ebx
mov dword [esp + 0x10], edi
sub ecx, ebp
mov edx, esi
mov dword [esp + 0x20], ecx
sub edx, eax
mov ecx, edi
mov dword [esp + 0x18], edx
sub ecx, ebp
lea eax, [ebp + 4]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x48]
sub ecx, ebp
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x4c]
sub ecx, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x28]
sub ecx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
nop dword [eax + eax]
mov edx, dword [esp + 0x10]
lea eax, [eax + 8]
mov esi, dword [esp + 0x2c]
xorps xmm0, xmm0
movd xmm1, dword [eax - 0xc]
add ecx, 8
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
movd xmm2, dword [esi + edx]
mov esi, edx
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
xorps xmm2, xmm1
add dword [esp + 0x10], 8
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
andps xmm0, xmmword [0x102f08d0]
packuswb xmm0, xmm0
movd dword [esi], xmm0
movd xmm2, dword [eax + ebp - 8]
movd xmm1, dword [eax - 8]
mov esi, dword [esp + 0x30]
movd dword [eax + edi - 8], xmm0
xorps xmm0, xmm0
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm2, xmm0
punpcklwd xmm1, xmm0
xorps xmm2, xmm1
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
andps xmm0, xmmword [0x102f08d0]
packuswb xmm0, xmm0
movd dword [eax + ebx - 8], xmm0
movd dword [eax + esi - 8], xmm0
cmp ecx, dword [esp + 0x18]
jl 0x101e9b00
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
cmp ecx, esi
jge 0x101e9d07
lea eax, [esp + 0x4c]
mov edx, ebx
sub eax, ebp
add ecx, ebp
sub edx, ebp
mov dword [esp + 0x1c], eax
sub edi, ebp
sub esi, dword [esp + 0x14]
mov ebp, eax
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [ecx + ebp - 1], al
mov byte [edi + ecx - 1], al
sub esi, 1
jne 0x101e9be6
jmp 0x101e9d07
xor eax, eax
test esi, esi
jle 0x101e9d07
cmp esi, 8
jb 0x101e9cf3
lea edx, [ebx - 1]
lea ecx, [esp + 0x4b]
add edx, esi
lea ebp, [esp + 0x4c]
add ecx, esi
cmp ebp, edx
mov ebp, dword [esp + 0x68]
ja 0x101e9c33
cmp ecx, ebx
jae 0x101e9cf3
lea edx, [edi - 1]
lea ebp, [esp + 0x4c]
add edx, esi
cmp ebp, edx
mov ebp, dword [esp + 0x68]
ja 0x101e9c4c
cmp ecx, edi
jae 0x101e9cf3
lea ecx, [ebx - 1]
add ecx, esi
cmp edi, ecx
ja 0x101e9c5d
cmp edx, ebx
jae 0x101e9cf3
lea ecx, [ebp - 1]
add ecx, esi
cmp edi, ecx
ja 0x101e9c6e
cmp edx, ebp
jae 0x101e9cf3
cmp esi, 0x10
jb 0x101e9cb5
mov ecx, esi
and ecx, reloc.WS2_32.dll_ntohs
jns 0x101e9c82
dec ecx
or ecx, 0xfffffff0
inc ecx
mov edx, esi
sub edx, ecx
nop word [eax + eax]
movups xmm1, xmmword [eax + ebp]
movups xmm0, xmmword [ebx + eax]
movups xmmword [esp + eax + 0x4c], xmm1
xorps xmm0, xmm1
movups xmmword [edi + eax], xmm0
add eax, 0x10
cmp eax, edx
jl 0x101e9c90
mov ecx, esi
and cl, 0xf
cmp cl, 8
jb 0x101e9cef
mov ecx, esi
and ecx, reloc.WS2_32.dll_getsockopt
jns 0x101e9cc4
dec ecx
or ecx, 0xfffffff8
inc ecx
mov edx, esi
sub edx, ecx
mov ecx, ebp
nop word [eax + eax]
movq xmm1, qword [eax + ecx]
movq xmm0, qword [eax + ebx]
xorps xmm0, xmm1
movq qword [esp + eax + 0x4c], xmm1
movq qword [eax + edi], xmm0
add eax, 8
cmp eax, edx
jl 0x101e9cd0
cmp eax, esi
jge 0x101e9d07
mov dl, byte [eax + ebp]
mov cl, byte [eax + ebx]
xor cl, dl
mov byte [esp + eax + 0x4c], dl
mov byte [eax + edi], cl
inc eax
cmp eax, esi
jl 0x101e9cf3
mov eax, dword [esp + 0x70]
mov ecx, 8
cdq
idiv ecx
mov ecx, edx
mov edx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x101e9d3a
movups xmm0, xmmword [esp + edx + 0x3c]
pop edi
pop esi
pop ebp
movups xmmword [ebx], xmm0
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.1026af9a
add esp, 0x54
ret
mov ah, 8
mov dword [esp + 0x14], 4
lea esi, [esp + 0x3c]
sub ah, cl
add esi, edx
lea edi, [ebx + 2]
mov bl, byte [esi]
mov dl, byte [esi + 1]
lea esi, [esi + 4]
mov ebp, dword [esp + 0x10]
lea edi, [edi + 4]
shl bl, cl
mov al, dl
mov cl, ah
shr al, cl
mov ecx, ebp
or bl, al
shl dl, cl
mov byte [edi - 6], bl
mov cl, ah
mov bl, byte [esi - 2]
mov al, bl
shr al, cl
mov ecx, ebp
or dl, al
shl bl, cl
mov byte [edi - 5], dl
mov cl, ah
mov dl, byte [esi - 1]
mov al, dl
shr al, cl
mov ecx, ebp
or bl, al
shl dl, cl
mov byte [edi - 4], bl
mov cl, ah
mov bl, byte [esi]
mov al, bl
shr al, cl
mov ecx, ebp
or dl, al
sub dword [esp + 0x14], 1
mov byte [edi - 3], dl
jne 0x101e9d51
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1026af9a
add esp, 0x54
ret