Function at 0x101bb350
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ebp + 8], 0
jne 0x101bb365
mov eax, 0x10
mov esp, ebp
pop ebp
ret
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0x101bb375
lea eax, [esi + 0x10]
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
movlpd qword [ebp - 0xc], xmm0
mov ecx, dword [ebp - 8]
push ebx
mov ebx, dword [ebp - 0xc]
push edi
cmp eax, 8
jb 0x101bb56c
shr eax, 3
mov dword [ebp - 4], eax
movzx eax, byte [esi + 7]
cdq
mov esi, eax
mov edi, edx
shld edi, esi, 8
mov eax, dword [ebp + 0xc]
shl esi, 8
movzx eax, byte [eax + 6]
cdq
or esi, eax
or edi, edx
shld edi, esi, 8
mov eax, dword [ebp + 0xc]
shl esi, 8
movzx eax, byte [eax + 5]
cdq
or esi, eax
or edi, edx
mov eax, dword [ebp + 0xc]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + 4]
cdq
or esi, eax
or edi, edx
mov eax, dword [ebp + 0xc]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + 3]
cdq
or esi, eax
or edi, edx
mov eax, dword [ebp + 0xc]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + 2]
cdq
or esi, eax
or edi, edx
mov eax, dword [ebp + 0xc]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + 1]
cdq
or esi, eax
or edi, edx
mov eax, dword [ebp + 0xc]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax]
cdq
or esi, eax
or edi, edx
xor ecx, edi
xor ebx, esi
mov eax, ecx
mov dword [ebp - 8], ecx
shr eax, 0x18
and eax, 0xff
mov edi, dword [eax*8 + 0x103c38b8]
mov esi, dword [eax*8 + 0x103c38bc]
mov eax, ecx
shld esi, edi, 8
shr eax, 0x10
and eax, 0xff
shl edi, 8
or edi, dword [eax*8 + 0x103c38b8]
or esi, dword [eax*8 + 0x103c38bc]
mov eax, ecx
shld esi, edi, 8
shr eax, 8
and eax, 0xff
shl edi, 8
or edi, dword [eax*8 + 0x103c38b8]
or esi, dword [eax*8 + 0x103c38bc]
shld esi, edi, 8
movzx eax, cl
shl edi, 8
or edi, dword [eax*8 + 0x103c38b8]
or esi, dword [eax*8 + 0x103c38bc]
shld esi, edi, 8
mov eax, ecx
shl edi, 8
mov edx, ebx
shrd edx, eax, 0x18
push 0xa78ace24
and edx, 0xff
shr eax, 0x18
mov eax, ecx
push 0xb25835f3
or edi, dword [edx*8 + 0x103c38b8]
or esi, dword [edx*8 + 0x103c38bc]
mov edx, ebx
shld esi, edi, 8
shrd edx, eax, 0x10
shl edi, 8
shr eax, 0x10
and edx, 0xff
mov eax, ebx
shrd eax, ecx, 8
or edi, dword [edx*8 + 0x103c38b8]
and eax, 0xff
or esi, dword [edx*8 + 0x103c38bc]
shld esi, edi, 8
shr ecx, 8
or esi, dword [eax*8 + 0x103c38bc]
shl edi, 8
or edi, dword [eax*8 + 0x103c38b8]
movzx eax, bl
shld esi, edi, 8
shl edi, 8
or esi, dword [eax*8 + 0x103c38bc]
or edi, dword [eax*8 + 0x103c38b8]
push esi
push edi
call fcn.101c8330
push 0xa785a2a2
mov esi, edx
xor ecx, ecx
push 0xd742e537
xor ecx, edx
shr esi, 0x18
xor esi, eax
push ecx
push esi
call fcn.101c8330
mov esi, dword [ebp + 0xc]
mov ebx, eax
mov eax, dword [ebp + 0x10]
add esi, 8
sub eax, 8
mov dword [ebp + 0xc], esi
dec dword [ebp - 4]
mov ecx, edx
mov dword [ebp + 0x10], eax
jne 0x101bb397
dec eax
cmp eax, 6
ja case.default.0x101bb572
jmp dword [eax*4 + 0x101bb60c]
movzx eax, byte [esi + 6]
xor ebx, 0
cdq
shl eax, 0x10
xor ecx, eax
movzx eax, byte [esi + 5]
xor ebx, 0
cdq
shl eax, 8
xor ecx, eax
movzx eax, byte [esi + 4]
xor ebx, 0
cdq
xor ecx, eax
movzx eax, byte [esi + 3]
cdq
shld edx, eax, 0x18
shl eax, 0x18
xor ebx, eax
xor ecx, edx
movzx eax, byte [esi + 2]
cdq
shld edx, eax, 0x10
shl eax, 0x10
xor ebx, eax
xor ecx, edx
movzx eax, byte [esi + 1]
cdq
shld edx, eax, 8
shl eax, 8
xor ebx, eax
xor ecx, edx
movzx eax, byte [esi]
cdq
xor ebx, eax
xor ecx, edx
push ecx
push ebx
call fcn.101bb670
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.101bb7b0
mov ebx, dword [ebp + 8]
add esp, 0x10
add dword [ebx], eax
mov ecx, dword [ebx]
adc dword [ebx + 4], edx
xor ecx, esi
mov eax, dword [ebx + 4]
xor eax, edi
mov dword [ebx + 8], ecx
pop edi
mov dword [ebx + 0xc], eax
xor eax, eax
pop ebx
pop esi
mov esp, ebp
pop ebp
ret