Function at 0x101c34f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
jne 0x101c3508
mov eax, 0x10
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xc], 0
je 0x101c34fe
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
push esi
mov esi, dword [ebx + 8]
push edi
mov edi, dword [ebp + 0x10]
shr edi, 4
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], esi
mov dword [ebp - 4], edx
test edi, edi
jle 0x101c3637
mov eax, dword [ebp + 0xc]
mov ebx, ecx
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
push 0x1b
push 0x1f
push 0x87c37b91
push 0x114253d5
push dword [eax + 4]
push dword [eax]
call fcn.101c8330
push edx
push eax
call fcn.101c39d0
add esp, 0xc
push 0x4cf5ad43
push 0x2745937f
push edx
push eax
call fcn.101c8330
xor edx, edi
xor eax, ebx
push edx
push eax
call fcn.101c39d0
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 0x14]
add ebx, esi
mov edi, edx
mov ecx, ebx
adc edi, dword [ebp - 4]
push 0x1f
mov esi, edi
shld esi, ecx, 2
push 0x21
push 0x4cf5ad43
shl ecx, 2
add ebx, ecx
push 0x2745937f
push dword [eax + 0xc]
adc edi, esi
add ebx, 0x52dce729
push dword [eax + 8]
adc edi, 0
call fcn.101c8330
push edx
push eax
call fcn.101c39d0
add esp, 0xc
push 0x87c37b91
push 0x114253d5
push edx
push eax
call fcn.101c8330
xor edx, dword [ebp - 4]
xor eax, dword [ebp - 8]
push edx
push eax
call fcn.101c39d0
mov esi, eax
add esp, 0xc
add esi, ebx
adc edx, edi
add esi, 0xb41def1
mov eax, esi
adc edx, 0
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add esi, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], esi
adc edx, ecx
add eax, 0x10
dec dword [ebp - 0x18]
mov dword [ebp - 4], edx
mov dword [ebp - 0x14], eax
jne 0x101c3546
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0x10]
xorps xmm0, xmm0
and edx, 0xf
shl edi, 4
add edi, dword [ebp + 0xc]
dec edx
movlpd qword [ebp - 0x24], xmm0
movlpd qword [ebp - 0x1c], xmm0
cmp edx, 0xe
ja case.default.0x101c365a
jmp dword [edx*4 + 0x101c386c]
movzx eax, byte [edi + 0xe]
xor esi, esi
cdq
mov ecx, eax
movzx eax, byte [edi + 0xd]
cdq
shl eax, 8
shl ecx, 0x10
xor ecx, eax
movzx eax, byte [edi + 0xc]
cdq
xor ecx, eax
jmp 0x101c36b7
movzx eax, byte [edi + 0xd]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
cdq
xor esi, 0
shl eax, 8
xor esi, 0
xor ecx, eax
movzx eax, byte [edi + 0xc]
cdq
xor ecx, eax
jmp 0x101c36b7
movzx eax, byte [edi + 0xc]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
xor esi, 0
cdq
xor ecx, eax
jmp 0x101c36b7
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
movzx eax, byte [edi + 0xb]
cdq
shld edx, eax, 0x18
shl eax, 0x18
xor esi, eax
xor ecx, edx
jmp 0x101c36cf
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
movzx eax, byte [edi + 0xa]
cdq
shld edx, eax, 0x10
shl eax, 0x10
xor esi, eax
xor ecx, edx
jmp 0x101c36e7
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
movzx eax, byte [edi + 9]
cdq
shld edx, eax, 8
shl eax, 8
xor esi, eax
xor ecx, edx
jmp 0x101c36ff
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
movzx eax, byte [edi + 8]
push 0x21
push 0x4cf5ad43
cdq
push 0x2745937f
xor edx, ecx
xor eax, esi
push edx
push eax
call fcn.101c8330
push edx
push eax
call fcn.101c39d0
add esp, 0xc
push 0x87c37b91
push 0x114253d5
push edx
push eax
call fcn.101c8330
xor dword [ebp - 8], eax
xor dword [ebp - 4], edx
movzx eax, byte [edi + 7]
xor esi, esi
cdq
mov ecx, eax
movzx eax, byte [edi + 6]
cdq
shl eax, 0x10
shl ecx, 0x18
xor ecx, eax
movzx eax, byte [edi + 5]
cdq
shl eax, 8
xor ecx, eax
movzx eax, byte [edi + 4]
cdq
xor ecx, eax
jmp 0x101c37c8
movzx eax, byte [edi + 6]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
cdq
xor esi, 0
shl eax, 0x10
xor esi, 0
xor ecx, eax
xor esi, 0
movzx eax, byte [edi + 5]
cdq
shl eax, 8
xor ecx, eax
movzx eax, byte [edi + 4]
cdq
xor ecx, eax
jmp 0x101c37c8
movzx eax, byte [edi + 5]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
cdq
xor esi, 0
shl eax, 8
xor esi, 0
xor ecx, eax
movzx eax, byte [edi + 4]
cdq
xor ecx, eax
jmp 0x101c37c8
movzx eax, byte [edi + 4]
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
xor esi, 0
cdq
xor ecx, eax
jmp 0x101c37c8
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
movzx eax, byte [edi + 3]
cdq
shld edx, eax, 0x18
shl eax, 0x18
xor esi, eax
xor ecx, edx
jmp 0x101c37e0
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
movzx eax, byte [edi + 2]
cdq
shld edx, eax, 0x10
shl eax, 0x10
xor esi, eax
xor ecx, edx
jmp 0x101c37f8
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
movzx eax, byte [edi + 1]
cdq
shld edx, eax, 8
shl eax, 8
xor esi, eax
xor ecx, edx
jmp 0x101c3810
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
movzx eax, byte [edi]
push 0x1f
push 0x87c37b91
cdq
push 0x114253d5
xor edx, ecx
xor eax, esi
push edx
push eax
call fcn.101c8330
push edx
push eax
call fcn.101c39d0
add esp, 0xc
push 0x4cf5ad43
push 0x2745937f
push edx
push eax
call fcn.101c8330
mov ecx, dword [ebp - 0xc]
xor ecx, eax
mov eax, dword [ebp - 0x10]
xor eax, edx
mov dword [ebx + 4], eax
mov eax, dword [ebp - 4]
pop edi
mov dword [ebx], ecx
mov ecx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
xor eax, eax
pop esi
mov dword [ebx + 8], ecx
pop ebx
mov esp, ebp
pop ebp
ret