Function at 0x14004eb90
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov word [rsp + 0x9a], 0xfd9e
mov ax, word [rsp + 0x96]
mov r8w, ax
imul r8w, r8w
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x80], rcx
mov word [rsp + 0x7e], ax
mov word [rsp + 0x7c], r8w
call fcn.140001040
xor r9d, r9d
mov ecx, r9d
mov rax, qword [rax + 0x18]
mov rdx, rax
add rdx, 0x20
mov rax, qword [rax + 0x20]
mov r9d, dword [rsp + 0x9c]
mov r8w, word [rsp + 0x7c]
mov word [rsp + 0x96], r8w
cmp rax, rdx
mov dword [rsp + 0x78], r9d
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rcx
je 0x14004ec82
mov rax, qword [rsp + 0x88]
cmp rax, 0
setne cl
mov rdx, qword [rsp + 0x68]
mov byte [rsp + 0x5f], cl
mov qword [rsp + 0x50], rdx
jmp 0x14004ee60
xor eax, eax
mov ecx, eax
mov dl, byte [rsp + 0x99]
and dl, 0x1f
mov byte [rsp + 0x99], dl
mov eax, dword [rsp + 0x78]
and eax, 0x18ebda34
mov r8, qword [rsp + 0x48]
mov r9, qword [r8]
mov dword [rsp + 0x9c], eax
mov r10, qword [rsp + 0x70]
cmp r9, r10
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x50], r9
jne 0x14004ee60
mov rax, qword [rsp + 0x60]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov rax, qword [rsp + 0xa0]
add rax, 0x488f00be
mov qword [rsp + 0xa0], rax
mov ecx, dword [rsp + 0x78]
xor ecx, 0xffffffff
mov dword [rsp + 0x9c], ecx
mov dx, word [rsp + 0x7e]
or dx, 0xa1a3
mov rax, qword [rsp + 0x48]
mov r8w, word [rax + 0x48]
shr r8w, 1
mov word [rsp + 0x96], dx
mov r9, qword [rsp + 0xa0]
xor r9, qword [rsp + 0xa0]
movzx ecx, r8w
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0xa0], 0x216a8f0d
cmp r8w, 0
mov dword [rsp + 0x44], ecx
je 0x14004ec3d
jmp 0x14004ee3d
mov eax, dword [rsp + 0x40]
mov cx, 0xfd5d
mov dl, byte [rsp + 0x99]
mov r8d, eax
mov r9d, r8d
mov r10b, 0xb7
mov dword [rsp + 0x3c], eax
mov al, dl
mul r10b
mov r11w, word [rsp + 0x9a]
mov byte [rsp + 0x99], al
mov al, byte [rsp + 0x99]
sub cx, r11w
mov byte [rsp + 0x99], al
mov al, byte [rsp + 0x99]
mov rsi, qword [rsp + 0x30]
mov r11w, word [rsi + r9*2]
mov di, r11w
add di, cx
mov cx, r11w
add cx, 0x20
cmp di, 0x1a
cmovb r11w, cx
mov byte [rsp + 0x99], al
mov rbx, qword [rsp + 0x80]
cmp word [rbx + r9*2], r11w
sete al
cmp r11w, 0
setne dl
mov r10b, byte [rsp + 0x99]
mov byte [rsp + 0x2f], al
mov al, r10b
mul byte [rsp + 0x99]
mov r10b, byte [rsp + 0x2f]
and r10b, dl
mov r8d, dword [rsp + 0x3c]
add r8d, 1
mov byte [rsp + 0x99], al
mov al, byte [rsp + 0x99]
xor al, byte [rsp + 0x99]
mov ebp, dword [rsp + 0x44]
cmp r8d, ebp
setb dl
mov byte [rsp + 0x99], al
and r10b, dl
test r10b, 1
mov dword [rsp + 0x40], r8d
jne 0x14004ed14
mov al, byte [rsp + 0x2f]
test al, 1
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x60], rcx
jne 0x14004ec82
jmp 0x14004ec3d
mov rax, qword [rsp + 0x48]
add rax, 0xfffffffffffffff0
mov ecx, dword [rsp + 0x78]
add ecx, 0x83f0685
mov dword [rsp + 0x9c], ecx
mov qword [rsp + 0x60], rax
jmp 0x14004ec82
xor eax, eax
mov rcx, qword [rsp + 0xa0]
or rcx, qword [rsp + 0xa0]
mov qword [rsp + 0xa0], rcx
mov dword [rsp + 0x40], eax
jmp 0x14004ed14
mov rax, qword [rsp + 0x50]
mov cl, byte [rsp + 0x99]
add cl, byte [rsp + 0x99]
mov rdx, qword [rax + 0x50]
mov byte [rsp + 0x99], cl
mov r8, qword [rax + 0x20]
mov dword [rsp + 0x9c], 0x432b77a
mov r9, qword [rsp + 0x88]
cmp r8, r9
sete cl
mov r10b, byte [rsp + 0x5f]
and r10b, cl
mov r11d, dword [rsp + 0x78]
or r11d, 0x41520c6a
mov dword [rsp + 0x9c], r11d
test r10b, 1
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x20], r8
jne 0x14004ee19
jmp 0x14004ec93