Function at 0x100147b0
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x1003a784
call fcn.10039131
mov esi, ecx
mov al, byte [esi + 0x20]
mov ecx, 0xe10
push 0x3f
pop ebx
test al, al
je 0x10014988
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x100147dc
dec eax
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
test edi, edi
js 0x1001497a
mov eax, edi
mov dword [ebp - 0x14], 0xf
cdq
idiv ecx
push 0x3c
mov eax, edx
cdq
pop ecx
idiv ecx
push 0x3c
mov ecx, eax
mov eax, edi
cdq
pop edi
idiv edi
xor eax, eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
push 0xa
pop edi
mov dword [ebp - 4], eax
push edx
push ecx
cmp ecx, edi
jae 0x10014874
cmp edx, edi
mov edx, eax
jae 0x1001484b
mov cl, 0x24
mov dword [ebp - 0x34], 0x40011424
mov dword [ebp - 0x30], 0x4001141e
mov byte [ebp - 0x2c], al
xor cl, byte [ebp + edx - 0x33]
mov byte [ebp + edx - 0x33], cl
inc edx
cmp edx, 7
jae 0x10014845
mov cl, byte [ebp - 0x34]
jmp 0x10014832
mov byte [ebp - 0x2c], 0
jmp 0x100148c9
mov cl, 0x4f
mov dword [ebp - 0x34], 0x2b6a7f4f
mov dword [ebp - 0x30], 0x2b6a75
xor cl, byte [ebp + edx - 0x33]
mov byte [ebp + edx - 0x33], cl
inc edx
cmp edx, 6
jae 0x1001486e
mov cl, byte [ebp - 0x34]
jmp 0x1001485b
mov byte [ebp - 0x2d], 0
jmp 0x100148c9
mov ecx, eax
cmp edx, edi
jae 0x100148a4
mov dl, 0x1a
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x34], dl
mov word [ebp - 0x32], 0x207e
mov byte [ebp - 0x30], 0x2a
mov byte [ebp - 0x2f], bl
mov word [ebp - 0x2e], 0x7e
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 6
jae 0x1001486e
mov dl, byte [ebp - 0x34]
jmp 0x10014895
mov dl, 0xf
mov dword [ebp - 0x34], 0x356b2a0f
mov word [ebp - 0x30], 0x6b2a
mov byte [ebp - 0x2e], al
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 5
jae 0x100148c5
mov dl, byte [ebp - 0x34]
jmp 0x100148b6
mov byte [ebp - 0x2e], 0
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.1000409e
lea eax, [ebp - 0x50]
push eax
call fcn.10003b83
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10006e3f
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.10003f4a
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x10047cf0]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x4b65334d
mov byte [ebp - 0x3c], 0
mov al, byte [ebp + ecx - 0x4f]
xor al, byte [ebp - 0x50]
mov byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x1001491c
sub esp, 0x18
mov byte [ebp - 0x3c], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.1000409e
lea eax, [ebp - 0x68]
push eax
call fcn.10003b83
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [esi + 8]
call fcn.1000b8a4
push 0
push 1
lea ecx, [ebp - 0x68]
call fcn.10003f4a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
push 0
push 1
call fcn.10003f4a
mov ecx, 0xe10
cmp dword [esi + 0x24], 0
jg 0x10014988
and dword [esi + 0x24], 0
mov byte [esi + 0x20], 0
mov al, byte [esi + 0x21]
test al, al
je 0x10014b51
movzx eax, word [esi + 0x28]
test ax, ax
jle 0x100149a1
dec eax
mov word [esi + 0x28], ax
movzx edi, word [esi + 0x28]
mov eax, edi
test ax, ax
js 0x10014b40
cwde
cdq
idiv ecx
push 0x3c
mov eax, edx
mov dword [ebp - 0x14], 0xf
cdq
pop ecx
idiv ecx
push 0x3c
movzx ecx, ax
mov eax, edi
cwde
cdq
pop edi
idiv edi
movzx eax, dx
xor edx, edx
mov dword [ebp - 0x18], edx
mov byte [ebp - 0x28], dl
push 0xa
pop edi
mov dword [ebp - 4], 2
push eax
push ecx
cmp cx, di
jae 0x10014a3b
xor ebx, ebx
mov ecx, ebx
cmp ax, di
jae 0x10014a1c
push 0x35
pop edx
mov byte [ebp - 0x34], dl
mov dword [ebp - 0x33], 0xf511005
mov dword [ebp - 0x2f], 0x511005
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 7
jae 0x10014a17
mov dl, byte [ebp - 0x34]
jmp 0x10014a08
mov byte [ebp - 0x2c], bl
jmp 0x10014a93
mov dl, 0x4a
mov dword [ebp - 0x34], 0x2e6f7a4a
mov dword [ebp - 0x30], 0x2e6f70
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 6
jae 0x10014a66
mov dl, byte [ebp - 0x34]
jmp 0x10014a2c
cmp ax, di
jae 0x10014a6b
mov byte [ebp - 0x34], bl
mov ecx, edx
mov dword [ebp - 0x33], 0xf055b1a
mov word [ebp - 0x2f], 0x5b1a
mov byte [ebp - 0x2d], dl
xor byte [ebp + ecx - 0x33], bl
inc ecx
cmp ecx, 6
jae 0x10014a64
mov bl, byte [ebp - 0x34]
jmp 0x10014a55
xor ebx, ebx
mov byte [ebp - 0x2d], bl
jmp 0x10014a93
xor ebx, ebx
mov dword [ebp - 0x34], 0x78266742
mov dl, 0x42
mov word [ebp - 0x30], 0x2667
mov byte [ebp - 0x2e], bl
mov ecx, ebx
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 5
jae 0x10014a90
mov dl, byte [ebp - 0x34]
jmp 0x10014a81
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.1000409e
lea eax, [ebp - 0x68]
push eax
call fcn.10003b83
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10006e3f
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.10003f4a
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x10048390]
mov edx, ebx
cmovae eax, dword [ebp - 0x28]
push eax
push 0x3c
pop eax
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x146f
mov byte [ebp - 0x3e], 0x6a
mov byte [ebp - 0x3d], al
mov word [ebp - 0x3c], 0x12
mov cl, byte [ebp - 0x50]
xor byte [ebp + edx - 0x4f], cl
inc edx
cmp edx, 0x14
jb 0x10014af0
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.1000409e
lea eax, [ebp - 0x68]
push eax
call fcn.10003b83
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [esi + 0xc]
call fcn.1000b8a4
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.10003f4a
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.10003f4a
jmp 0x10014b42
xor ebx, ebx
cmp word [esi + 0x28], bx
jg 0x10014b51
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.100390db
ret