Function at 0x1015cc46
Capabilities:
Encode data using xor

Disassembly:
jmp 0x1015cb70
mov eax, 0x24
call fcn.101aa6d0
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
push esi
push edi
mov cl, 0x38
call fcn.101ad7f0
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov ebp, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x1c], edx
mov edx, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x24]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x40], eax
je 0x1015cbd9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret
mov eax, dword [ebx + 0x28]
dec eax
cmp eax, 6
ja case.default.0x1015cbe2
jmp dword [eax*4 + 0x1015cfe8]
movzx eax, byte [ebx + 0x3e]
cdq
shl eax, 0x10
or dword [esp + 0x1c], eax
movzx eax, byte [ebx + 0x3d]
cdq
shl eax, 8
or dword [esp + 0x1c], eax
movzx eax, byte [ebx + 0x3c]
cdq
or dword [esp + 0x1c], eax
movzx eax, byte [ebx + 0x3b]
cdq
shld edx, eax, 0x18
shl eax, 0x18
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
movzx eax, byte [ebx + 0x3a]
cdq
shld edx, eax, 0x10
shl eax, 0x10
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
movzx eax, byte [ebx + 0x39]
cdq
shld edx, eax, 8
shl eax, 8
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
movzx eax, byte [ebx + 0x38]
cdq
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x1c]
mov ebx, dword [ebx + 0x30]
xor ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ebx
test ebx, ebx
jle 0x1015cd30
add dword [esp + 0x14], esi
mov ebx, edx
adc edi, edx
shld edx, esi, 0xd
shl esi, 0xd
shr ebx, 0x13
or ebx, esi
xor ebx, dword [esp + 0x14]
mov dword [esp + 0x40], edi
xor edi, edi
or edi, edx
xor edi, dword [esp + 0x40]
add dword [esp + 0x10], ecx
mov esi, eax
adc ebp, eax
shld eax, ecx, 0x10
shr esi, 0x10
shl ecx, 0x10
or esi, ecx
xor esi, dword [esp + 0x10]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x40]
xor edx, ebp
xor ecx, ecx
or ecx, dword [esp + 0x14]
add eax, esi
adc ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, edx
shld edx, esi, 0x15
mov dword [esp + 0x14], eax
xor eax, eax
or eax, edx
xor eax, dword [esp + 0x40]
shl esi, 0x15
shr ecx, 0xb
or ecx, esi
xor ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
add eax, ebx
adc ebp, edi
mov esi, edi
shld edi, ebx, 0x11
xor edx, edx
shr esi, 0xf
shl ebx, 0x11
or edx, edi
mov edi, dword [esp + 0x40]
or esi, ebx
xor edx, ebp
mov ebx, ebp
xor ebp, ebp
xor esi, eax
or ebp, eax
dec dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ebx
jne 0x1015cc76
mov dword [esp + 0x24], edx
jmp 0x1015cd34
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor eax, dword [esp + 0x18]
xor edi, dword [esp + 0x1c]
cmp dword [esp + 0x2c], 0x10
mov dword [esp + 0x14], eax
jne 0x1015cd53
xor ebx, 0xee
jmp 0x1015cd59
xor ebx, 0xff
mov eax, dword [esp + 0x38]
xor ebp, 0
mov eax, dword [eax + 0x34]
mov dword [esp + 0x28], eax
test eax, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ebx
jle 0x1015ce38
jmp 0x1015cd84
mov eax, dword [esp + 0x20]
add dword [esp + 0x14], esi
mov ebx, edx
adc edi, edx
shld edx, esi, 0xd
shl esi, 0xd
shr ebx, 0x13
or ebx, esi
xor ebx, dword [esp + 0x14]
mov dword [esp + 0x40], edi
xor edi, edi
or edi, edx
xor edi, dword [esp + 0x40]
add dword [esp + 0x10], ecx
mov esi, eax
adc ebp, eax
shld eax, ecx, 0x10
shr esi, 0x10
shl ecx, 0x10
or esi, ecx
xor esi, dword [esp + 0x10]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x40]
xor edx, ebp
xor ecx, ecx
or ecx, dword [esp + 0x14]
add eax, esi
adc ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, edx
shld edx, esi, 0x15
mov dword [esp + 0x14], eax
xor eax, eax
or eax, edx
xor eax, dword [esp + 0x40]
shl esi, 0x15
shr ecx, 0xb
or ecx, esi
xor ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
add eax, ebx
adc ebp, edi
mov esi, edi
shld edi, ebx, 0x11
xor edx, edx
shr esi, 0xf
shl ebx, 0x11
or edx, edi
mov edi, dword [esp + 0x40]
or esi, ebx
xor edx, ebp
mov ebx, ebp
xor ebp, ebp
xor esi, eax
or ebp, eax
dec dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], ebx
jne 0x1015cd80
mov eax, dword [esp + 0x3c]
mov edx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x20]
xor ebx, ebp
xor ebx, dword [esp + 0x24]
xor edx, esi
xor edx, dword [esp + 0x14]
xor ebx, edi
mov byte [eax], dl
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x3c]
mov eax, edx
shr eax, 8
mov byte [ebx + 1], al
mov eax, edx
shr eax, 0x10
mov byte [ebx + 2], al
mov eax, ebx
mov ebx, dword [esp + 0x40]
shr edx, 0x18
mov byte [eax + 3], dl
mov edx, eax
mov eax, ebx
shr eax, 8
mov byte [edx + 5], al
mov eax, ebx
shr eax, 0x10
mov byte [edx + 4], bl
mov byte [edx + 6], al
mov eax, dword [esp + 0x38]
shr ebx, 0x18
mov byte [edx + 7], bl
cmp dword [eax + 0x2c], 8
mov dword [esp + 0x30], 0
je 0x1015cfda
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x34]
xor edx, 0
xor esi, 0xdd
mov dword [esp + 0x38], eax
test eax, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edx
jle 0x1015cf88
lea ecx, [ecx]
add dword [esp + 0x14], esi
mov ebx, edx
adc edi, edx
shld edx, esi, 0xd
shl esi, 0xd
mov dword [esp + 0x40], edi
shr ebx, 0x13
or ebx, esi
xor ebx, dword [esp + 0x14]
xor edi, edi
or edi, edx
xor edi, dword [esp + 0x40]
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
adc ebp, eax
mov esi, eax
shld eax, ecx, 0x10
shr esi, 0x10
shl ecx, 0x10
or esi, ecx
xor esi, dword [esp + 0x10]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x40]
xor edx, ebp
xor ecx, ecx
or ecx, dword [esp + 0x14]
add eax, esi
adc ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, edx
shld edx, esi, 0x15
mov dword [esp + 0x14], eax
xor eax, eax
or eax, edx
xor eax, dword [esp + 0x40]
shl esi, 0x15
shr ecx, 0xb
or ecx, esi
xor ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
add eax, ebx
adc ebp, edi
mov esi, edi
shld edi, ebx, 0x11
shr esi, 0xf
xor edx, edx
shl ebx, 0x11
or esi, ebx
or edx, edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], eax
xor esi, eax
xor edx, ebp
mov eax, ebp
xor ebp, ebp
or ebp, dword [esp + 0x10]
dec dword [esp + 0x38]
jne 0x1015ced0
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
xor ecx, eax
xor ecx, esi
xor ecx, dword [esp + 0x14]
xor edx, ebp
xor edx, dword [esp + 0x24]
mov eax, ecx
shr eax, 8
mov byte [ebx + 9], al
mov eax, ecx
shr eax, 0x10
xor edx, edi
mov byte [ebx + 0xa], al
mov eax, edx
shr eax, 8
mov byte [ebx + 0xd], al
mov eax, edx
mov byte [ebx + 8], cl
shr ecx, 0x18
shr eax, 0x10
mov byte [ebx + 0xc], dl
shr edx, 0x18
mov byte [ebx + 0xb], cl
mov dword [esp + 0x30], 0
mov byte [ebx + 0xe], al
mov byte [ebx + 0xf], dl
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x24
ret