Function at 0x14148
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0xa
push esi
call fcn.000131a8
mov cx, ax
push 8
add ecx, 0x14
pop edi
movzx eax, cx
cdq
idiv edi
push edi
mov ebx, 0x100
pop eax
sub eax, edx
add ecx, eax
test cx, cx
mov dword [ebp - 4], ecx
jbe 0x14198
movzx eax, cx
lea edi, [ebp - 0x70]
mov dword [ebp + 8], eax
push ebx
push esi
call fcn.000131a8
or al, 4
mov byte [edi], al
inc edi
dec dword [ebp + 8]
jne 0x14187
push 3
push esi
call fcn.000131a8
push ebx
push esi
mov edi, eax
call fcn.000131a8
mov cx, ax
mov byte [ebp + 0xb], 0x9b
movzx eax, di
and cl, 0xab
mov dword [ebp - 0xc], 4
or cl, 0x23
and dword [ebp - 8], 0
mov byte [ebp + eax - 0x70], cl
mov ecx, dword [esi]
mov cl, byte [ecx + 0x114]
mov byte [ebp + eax - 0x6f], cl
push 3
push esi
call fcn.000131a8
lea edi, [edi + eax + 2]
push 8
movzx eax, di
cdq
pop ecx
idiv ecx
cmp edx, 7
jne 0x141ef
inc edi
push ebx
push esi
call fcn.000131a8
mov cx, ax
or cl, 0x7f
and cl, byte [ebp + 0xb]
add byte [ebp + 0xb], 0x10
movzx eax, di
mov byte [ebp + eax - 0x70], cl
mov ecx, dword [esi]
mov edx, dword [ecx + 0x110]
mov ecx, dword [ebp - 8]
add dword [ebp - 8], 8
shr edx, cl
dec dword [ebp - 0xc]
mov byte [ebp + eax - 0x6f], dl
jne 0x141d4
inc edi
push 8
inc edi
pop ecx
movzx eax, di
cdq
idiv ecx
cmp edx, 7
jne 0x14235
inc edi
push ebx
push esi
call fcn.000131a8
mov cx, ax
push 8
movzx eax, di
and cl, 0x9b
or cl, 0x1b
inc edi
mov byte [ebp + eax - 0x70], cl
mov ecx, dword [esi]
inc edi
mov cl, byte [ecx + 0x12]
mov byte [ebp + eax - 0x6f], cl
pop ecx
movzx eax, di
cdq
idiv ecx
cmp edx, 7
jne 0x14266
inc edi
push ebx
push esi
call fcn.000131a8
mov cx, ax
push 8
movzx eax, di
and cl, 0xab
or cl, 0x2b
inc edi
mov byte [ebp + eax - 0x70], cl
mov ecx, dword [esi]
inc edi
mov cl, byte [ecx + 0x13]
mov byte [ebp + eax - 0x6f], cl
pop ecx
movzx eax, di
cdq
idiv ecx
cmp edx, 7
jne 0x14297
inc edi
push ebx
push esi
call fcn.000131a8
mov cx, ax
movzx eax, di
and cl, 0xbb
or cl, 0x3b
mov byte [ebp + eax - 0x70], cl
mov ecx, dword [esi]
mov cl, byte [ecx + 0x10]
mov byte [ebp + eax - 0x6f], cl
movzx ecx, word [ebp - 4]
sub ecx, eax
cmp ecx, 6
jle 0x142d7
push 4
push esi
call fcn.000131a8
mov di, ax
mov eax, dword [ebp - 4]
add eax, 0xfffffffb
add edi, eax
jmp 0x142d9
inc edi
inc edi
push ebx
push esi
call fcn.000131a8
mov cx, ax
movzx eax, di
and cl, 0xcb
or cl, 0x4b
inc edi
cmp di, word [ebp - 4]
mov byte [ebp + eax - 0x70], cl
mov ecx, dword [esi]
mov cl, byte [ecx + 0x11]
mov byte [ebp + eax - 0x6f], cl
jb 0x1433c
movzx eax, di
push 8
cdq
pop ecx
idiv ecx
mov eax, edi
sub eax, edx
add eax, ecx
inc edi
cmp di, ax
mov dword [ebp - 4], eax
jae 0x1433c
movzx eax, di
movzx edi, word [ebp - 4]
lea ecx, [ebp + eax - 0x70]
sub edi, eax
mov dword [ebp + 8], ecx
push ebx
push esi
call fcn.000131a8
mov ecx, dword [ebp + 8]
or al, 4
inc dword [ebp + 8]
dec edi
mov byte [ecx], al
jne 0x14328
mov ebx, dword [ebp - 4]
test bx, bx
jbe 0x1436b
lea ecx, [ebp - 0x70]
movzx edi, bx
mov al, byte [ecx]
mov dl, byte [esi + 0x28]
xor dl, al
mov byte [ecx], dl
mov dl, al
sub edx, 0x52
add al, 0x2e
sar edx, 7
and dl, 1
shl al, 1
xor dl, al
inc ecx
dec edi
mov byte [esi + 0x28], dl
jne 0x1434a
xor edi, edi
shr bx, 3
je 0x1438b
movzx eax, di
lea eax, [ebp + eax*8 - 0x70]
push eax
push dword [esi + 0x29]
call dword [esi + 0xa]
test eax, eax
jne 0x14394
inc edi
cmp di, bx
jb 0x14373
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
push 1
pop eax
jmp 0x1438d