Function at 0x1400147d4
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov rsi, qword [0x140116968]
mov r12d, 1
mov r11d, dword [0x1401169a0]
add dx, r12w
mov rbx, qword [rsp + 0x128]
sub r11d, r12d
movsxd r14, dword [0x1401169cc]
mov ebp, r8d
movsxd r8, ecx
mov dword [0x1401169a0], r11d
mov r15d, r8d
movzx r13d, dx
movsxd rcx, r11d
movzx eax, word [rbx + r8*2]
and rcx, r8
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x90], rcx
movsxd rax, r9d
mov r9d, 1
mov qword [rsp + 0x58], rax
add r11d, r9d
mov rax, qword [0x140116950]
mov dword [rsp + 0x108], r8d
add r8d, r12d
movsxd rdi, r8d
mov qword [rsp + 0x98], rsi
mov dword [rsp + 0x100], r8d
mov qword [rsp + 0x38], r14
movsxd rdx, dword [rax + rdi*4]
mov rax, qword [0x1401169b8]
movzx ecx, word [rax + r13*2]
mov rax, qword [0x140116930]
and rdx, rcx
mov qword [rsp + 0x60], rdx
mov edx, dword [0x140116918]
mov ecx, dword [rax + rsi*4]
sub rsi, r12
mov dword [rsp + 0x118], ecx
lea eax, [rdx + rdx*2]
mov qword [0x140116968], rsi
movsxd rcx, eax
add edx, r12d
mov rax, qword [0x1401169f0]
movsxd r10, edx
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
sub rsi, r9
movzx eax, word [rax + rcx*2]
mov rcx, qword [0x140116980]
movzx r9d, word [0x14011694c]
mov qword [rsp + 0x88], rax
mov rax, rcx
mov dword [0x140116918], edx
sub rcx, r12
mov r12, qword [0x1401169d8]
xor edx, edx
div r10
mov dword [0x1401169a0], r11d
mov qword [rsp + 0x70], rax
mov eax, ebp
cdq
mov qword [0x140116980], rcx
idiv dword [0x1401169c8]
mov rax, qword [0x140116990]
mov qword [rsp + 0x40], rax
mov eax, 0xffff
mov qword [0x140116968], rsi
movsxd r11, r11d
or r11, rsi
mov dword [rsp + 0x34], edx
add r9w, ax
mov qword [rsp + 0x68], r12
lea eax, [r8 + r8]
mov word [0x14011694c], r9w
movsxd rcx, eax
mov rax, qword [0x140116988]
mov qword [rsp + 0x80], r11
movzx r8d, word [rbx + rcx*2]
movzx ecx, r9w
mov eax, dword [rax + rcx*4]
cdq
movsxd rbx, dword [0x140116970]
idiv r8d
mov r8d, dword [0x140116a0c]
movsxd rbp, eax
mov eax, r8d
movzx ecx, r9w
cdq
idiv ecx
mov r9d, 1
mov qword [rsp + 0x78], rbp
add r8d, r9d
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x40]
mov dword [0x140116a0c], r8d
movzx ecx, byte [r10 + rax]
cmp ebx, ecx
jge 0x140014ace
mov rdx, qword [rsp + 0x38]
lea rsi, [rbx*4 + 0x1154]
mov r14, qword [rsp + 0x48]
movsxd rbp, dword [rsp + 0x70]
add r14, rbx
mov r15, qword [rsp + 0x120]
lea r12, [rdx + rbx*2]
mov rax, qword [rsp + 0x58]
mov rcx, rbp
mov r8d, ebx
and rcx, qword [rax + r13*8]
mov rax, qword [rdi*8 + 0x7ac]
imul rax, rcx
mov qword [rdi*8 + 0x7ac], rax
mov eax, dword [0x1401169c8]
add eax, eax
movsxd rcx, eax
mov qword [r15 + rcx*8], rdi
movzx eax, word [0x1401169e4]
mov word [rdx + rsi - 0x1154], ax
xor edx, edx
mov rcx, qword [0x1401169b0]
mov eax, 0x187d
add rcx, r9
div rcx
mov qword [0x1401169b0], rcx
xor edx, edx
mov rcx, qword [rsp + 0x60]
div qword [rcx + rdi*8]
mov qword [rcx + rdi*8], rdx
movzx edx, word [r12]
movsxd r9, dword [rsi]
movsxd rcx, ebx
xor rcx, 0x14ca
call fcn.140016200
mov rcx, qword [rsp + 0x40]
lea r12, [r12 + 2]
mov rdx, qword [rsp + 0x38]
lea rsi, [rsi + 4]
mov byte [r14], al
mov r9d, 1
movsxd rax, dword [0x140116918]
add ebx, r9d
add r14, r9
movzx ecx, byte [rax + rcx]
cmp ebx, ecx
jl 0x1400149ed
mov rsi, qword [0x140116968]
mov r14d, dword [0x1401169cc]
mov r12, qword [0x1401169d8]
mov rbp, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x108]
mov r11, qword [rsp + 0x80]
mov rdx, qword [0x1401169f8]
lea eax, [r14 + r14]
mov r8, qword [rsp + 0x120]
mov ebx, 1
movsxd rcx, eax
add rdx, rbx
mov qword [0x1401169f8], rdx
add r14d, ebx
movzx eax, word [rbp]
add rax, rax
mov rax, qword [r8 + rax*8]
mov r8, qword [rsp + 0x68]
sub rax, qword [r8 + rcx*8]
add rax, rdx
mov dword [0x1401169cc], r14d
xor edx, edx
div r12
mov r12, qword [rsp + 0x120]
mov qword [0x1401169d8], rdx
movsxd rdx, dword [rsi*4 + 0x11d8]
mov esi, dword [rsp + 0x118]
mov eax, esi
shl eax, 2
movsxd rcx, eax
lea eax, [rsi + 2]
sub esi, ebx
mov qword [r12 + rcx*8], rdx
movsxd rcx, eax
movzx eax, byte [rcx + 0x1811]
imul eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
movsxd r14, eax
movsxd rax, dword [0x140116918]
or r14, rax
imul eax, dword [rdi*4 + 0x1154], 0x188b
cdq
idiv dword [rcx + rdi*4]
mov ecx, dword [rsp + 0x100]
mov rdi, qword [rsp + 0x90]
shl ecx, 2
movsxd rdx, ecx
movzx ecx, word [rdi]
xor al, byte [rdx + 0x1811]
mov byte [rcx + rcx*2 + 0x736], al
add word [rbp + 2], bx
movzx eax, word [rbp + 2]
mov rcx, qword [rsp + 0x50]
movzx r8d, byte [rcx + rax*4]
movzx eax, byte [0x14011691e]
cmp r8d, eax
jae 0x140014c38
mov r12, qword [rsp + 0x98]
mov r9d, r8d
movsxd rax, r15d
lea r10, [r11 + rax*4]
xor edx, edx
movsxd rcx, r8d
mov eax, 0x710
lea r10, [r10 - 4]
div qword [0x1401169b0]
xor edx, edx
sub r15d, ebx
div rcx
add r8d, ebx
sub dx, word [r12 + r13*2]
mov word [r12 + r13*2], dx
add qword [0x1401169b0], rbx
mov rax, qword [0x140116910]
or byte [r9 + rax], 0xc2
add r9, rbx
mov rax, qword [0x140116998]
movsxd rcx, dword [0x1401169cc]
mov cl, byte [rax + rcx*4]
xor byte [r10], cl
movzx eax, byte [0x14011691e]
cmp r8d, eax
jl 0x140014bd0
mov r12, qword [rsp + 0x120]
movzx eax, word [rdi]
xor edx, edx
mov r9, qword [rsp + 0x38]
movsxd r8, dword [rsp + 0x110]
movzx ecx, word [r9 + rax*2]
mov rax, r8
mov dword [0x1401169e4], ecx
mov rcx, r14
add rcx, rcx
sub rax, qword [r12 + rcx*8]
mov qword [r12 + rcx*8], rax
mov rax, qword [rsp + 0xa0]
movsxd rcx, dword [0x140116918]
movzx eax, byte [rax + 0xa86]
div qword [0x1401169d8]
xor edx, edx
div qword [r12 + rcx*8]
mov rdx, qword [rsp + 0x48]
movzx ecx, word [rbp + 2]
mov byte [rcx + rdx], al
mov rcx, rdx
movzx eax, word [r9]
movsxd rcx, dword [0x140116918]
movzx ebx, byte [0xbbc388]
sub rbx, qword [0x1401169a8]
movzx r9d, byte [rax + rdx]
mov edx, 0x19cc
mov rax, qword [0x1401169c0]
add r9, qword [0x1401169f8]
movsxd r11, dword [rax + rcx*4]
mov eax, dword [0x1401169c8]
and r11, r8
mov r8, rbx
lea eax, [rax*2 + 0x17]
movsxd rcx, eax
movzx eax, word [0x14011694c]
movzx r10d, word [rdi + rcx*2]
movzx ecx, word [rbp + rax*2 + 2]
add r10, rcx
movzx ecx, word [rsp + 0x34]
mov qword [rsp + 0x28], r10
xor rcx, 0x1f1a
mov qword [rsp + 0x20], r11
call fcn.14000d3fc
movsxd rcx, eax
mov r9d, 1
movzx eax, word [0x140116948]
mov qword [0x140116970], rcx
movsxd rcx, r15d
or rax, rcx
and qword [r12 + r14*8], rax
mov rax, qword [0x140116988]
mov cl, byte [rax + 0x6030]
mov eax, 0xffff
add word [rbp + 2], ax
mov r8d, dword [0x1401169a0]
mov rax, qword [0x140116960]
add r8d, r9d
mov dword [0x1401169a0], r8d
movzx edx, word [rbp + 2]
movsxd rdx, dword [rax + rdx*4]
movsxd rax, r8d
mov r8, qword [rsp + 0x58]
sub rdx, qword [r8 + rax*8]
mov rax, qword [0x140116980]
mov r8, rax
sub rax, r9
mov r9, qword [rsp + 0x60]
mov qword [0x140116980], rax
movzx eax, word [rbp + 2]
add rax, rax
mov r9d, dword [r9 + rax*8]
call fcn.14000f2e0
mov r8, qword [rsp + 0x128]
xor edx, edx
movsxd rcx, eax
mov rax, qword [rsp + 0x68]
mov qword [rax + r14*8], rcx
movsxd rax, dword [0x140116918]
movzx ecx, word [rbp + 2]
movzx eax, word [r8 + rax*2]
div qword [r12 + 0xa2a0]
xor dx, si
xor word [r8 + rcx*2], dx
movzx eax, word [0x14011694c]
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret