Function at 0x101bac60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
push dword [0x103c3814]
push dword [0x103c3810]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.101babb0
mov ecx, dword [ebp + 0x14]
add esp, 0x10
mov dword [ebp - 4], eax
mov edi, edx
mov dword [ebp + 0xc], edi
mov ebx, eax
cmp ecx, 0x20
jbe 0x101bad23
add ecx, 0xffffffdf
mov eax, 0x103c3838
sub eax, esi
shr ecx, 5
inc ecx
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], ecx
mov dword [ebp + 0x10], 4
jmp 0x101bacc0
push dword [eax + esi + 4]
push dword [eax + esi]
push dword [esi + 4]
push dword [esi]
call fcn.101baf50
add esp, 8
push edx
push eax
call fcn.101babb0
xor ebx, eax
add esp, 0x10
mov eax, dword [ebp + 0xc]
xor edi, edx
add esi, 8
dec dword [ebp + 0x10]
jne 0x101bacc0
push dword [0x103c381c]
sub dword [ebp + 0x14], 0x20
push dword [0x103c3818]
sub dword [ebp + 0xc], 0x20
push edi
push ebx
mov dword [ebp + 0x10], esi
call fcn.101babb0
add esp, 0x10
mov ebx, eax
dec dword [ebp - 4]
mov edi, edx
mov eax, dword [ebp + 0xc]
jne 0x101bacb0
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
mov dword [ebp - 4], ebx
mov edx, ecx
shr edx, 3
mov dword [ebp - 0xc], edx
test edx, edx
je 0x101bad7c
mov eax, 0x103c3838
mov dword [ebp - 4], esi
sub eax, esi
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
nop
push dword [esi + eax + 4]
push dword [esi + eax]
push dword [esi + 4]
push dword [esi]
call fcn.101baf50
add esp, 8
push edx
push eax
call fcn.101babb0
xor ebx, eax
lea esi, [esi + 8]
mov eax, dword [ebp - 8]
add esp, 0x10
xor edi, edx
dec dword [ebp + 0xc]
jne 0x101bad40
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0xc]
mov dword [ebp + 0xc], edi
mov dword [ebp - 4], ebx
lea eax, [edx*8]
sub ecx, eax
add esi, eax
dec ecx
cmp ecx, 6
ja case.default.0x101bad91
jmp dword [ecx*4 + 0x101baf28]
push dword [0x103c3824]
push dword [0x103c3820]
push dword [esi]
call fcn.101baf60
mov dword [ebp + 0x14], eax
add esp, 4
movzx eax, byte [esi + 6]
xor ebx, ebx
cdq
mov edi, eax
mov ecx, edx
movzx eax, byte [esi + 5]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [esi + 4]
shld ecx, edi, 8
cdq
shl edi, 8
or edi, eax
mov eax, dword [ebp + 0x14]
or ebx, edi
push ebx
push eax
call fcn.101babb0
xor eax, dword [ebp - 4]
add esp, 0x10
xor edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [0x103c3824]
push dword [0x103c3820]
push dword [esi]
call fcn.101baf60
mov ebx, eax
add esp, 4
movzx eax, byte [esi + 5]
xor edi, edi
cdq
mov ecx, eax
movzx eax, byte [esi + 4]
shld edx, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or edi, ecx
push edi
push ebx
call fcn.101babb0
xor eax, dword [ebp - 4]
add esp, 0x10
xor edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [0x103c3824]
push dword [0x103c3820]
push dword [esi]
call fcn.101baf60
mov edi, eax
add esp, 4
movzx eax, byte [esi + 4]
xor ecx, ecx
cdq
or ecx, eax
push ecx
push edi
call fcn.101babb0
add esp, 0x10
xor eax, ebx
xor edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [0x103c3824]
push dword [0x103c3820]
push dword [esi]
call fcn.101baf60
add esp, 4
push 0
push eax
call fcn.101babb0
add esp, 0x10
xor eax, ebx
xor edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 2]
cdq
mov edi, eax
mov ecx, edx
movzx eax, byte [esi + 1]
shld ecx, edi, 8
cdq
shl edi, 8
or edi, eax
or ecx, edx
push dword [0x103c3824]
movzx eax, byte [esi]
push dword [0x103c3820]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
push ecx
push edi
call fcn.101babb0
add esp, 0x10
xor eax, ebx
xor edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 1]
cdq
mov edi, eax
mov ecx, edx
jmp 0x101baeba
push dword [0x103c3824]
movzx eax, byte [esi]
push dword [0x103c3820]
cdq
push edx
push eax
call fcn.101babb0
add esp, 0x10
xor eax, ebx
xor edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, edi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret