Function at 0x140003850
Capabilities:
Encode data using xor

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0xe0
mov rax, qword [rsp + 0xd0]
mov r8, rax
xor r8, 0xffffffffffffffff
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xc8], 0x2906ec48
mov qword [rsp + 0x80], 0x75545c84
mov r8, rax
xor r8, 0xffffffffffffffff
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r8
call fcn.1400010f0
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0xd0], rcx
mov r9d, dword [rsp + 0xdc]
mov r10d, r9d
and r10d, 0x42cc232b
mov rax, qword [rax + 0x18]
mov dword [rsp + 0xdc], r10d
mov rcx, qword [rsp + 0x58]
cmp rcx, 0
setne r11b
mov rdx, rax
add rdx, 0x20
mov rax, qword [rax + 0x20]
mov r8, qword [rsp + 0x48]
add r8, r8
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xc0], 0
cmp rax, rdx
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x34], r9d
mov byte [rsp + 0x33], r11b
je 0x140003c1c
jmp 0x140003ad8
mov eax, dword [rsp + 0x34]
add eax, eax
mov dword [rsp + 0xdc], eax
mov eax, dword [rsp + 0xbc]
mov ecx, eax
mov edx, ecx
mov ecx, dword [rsp + 0x34]
add ecx, ecx
mov dword [rsp + 0xdc], ecx
mov r8, qword [rsp + 0x70]
mov r9w, word [r8 + rdx*2]
mov ecx, dword [rsp + 0x34]
sub ecx, ecx
mov r10w, r9w
add r10w, 0xffbf
mov dword [rsp + 0xdc], ecx
mov r8, qword [rsp + 0x50]
mov r11w, word [r8 + rdx*2]
mov si, r9w
add si, 0x20
cmp r10w, 0x1a
cmovb r9w, si
cmp r11w, r9w
sete bl
and bl, 1
mov byte [rsp + 0x8f], bl
cmp r9w, 0
setne bl
add eax, 1
and bl, byte [rsp + 0x8f]
mov qword [rsp + 0xd0], 0x749260ed
mov ecx, dword [rsp + 0x34]
xor ecx, 0x5dddc1dd
mov dword [rsp + 0xdc], ecx
cmp eax, dword [rsp + 0xac]
setb dil
and bl, dil
mov dword [rsp + 0xbc], eax
test bl, 1
jne 0x14000392a
jmp 0x140003ba8
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x48]
shr rax, cl
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x48]
or rax, rax
mov qword [rsp + 0xd0], rax
mov dword [rsp + 0xbc], 0x44ee20cc
mov r8d, dword [rsp + 0x34]
imul r9d, r8d, 0x89a736d
mov dword [rsp + 0xdc], r9d
cmp rdx, 0x40bb0754
jbe 0x14000392a
mov rax, qword [rsp + 0xb0]
add rax, 0xfffffffffffffff0
mov qword [rsp + 0xc0], rax
jmp 0x140003c1c
mov eax, 0x48e4fb25
mov ecx, dword [rsp + 0x34]
mov dword [rsp + 0xdc], ecx
mov rdx, qword [rsp + 0x98]
mov rdx, qword [rdx]
mov qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0xb0]
add rdx, 0x20
mov qword [rsp + 0x90], rdx
and ecx, 0x33a5cad2
mov rdx, qword [rsp + 0x90]
mov dword [rsp + 0xdc], ecx
mov ecx, dword [rsp + 0x34]
shr eax, cl
mov rdx, qword [rdx]
mov dword [rsp + 0xdc], eax
mov r8, qword [rsp + 0x58]
cmp rdx, r8
sete cl
mov r9b, byte [rsp + 0x33]
and r9b, cl
test r9b, 1
jne 0x1400039ee
jmp 0x140003b4f
mov eax, 0x225f80e5
mov ecx, eax
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xb0], rdx
mov rdx, qword [rsp + 0xb0]
add rdx, 0x48
mov qword [rsp + 0x60], rdx
mov rdx, qword [rsp + 0x60]
add rdx, 8
mov r8, qword [rsp + 0x80]
xor r8, 0x1ee7af5c
mov qword [rsp + 0x98], rdx
cmp rcx, r8
jbe 0x140003a60
mov rax, qword [rsp + 0x78]
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xc0], 0
mov rcx, qword [rsp + 0x38]
cmp rax, rcx
je 0x140003c1c
jmp 0x140003ad8
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa0], rax
imul rax, qword [rsp + 0x80], 0x1212af98
mov ecx, dword [rsp + 0x34]
and ecx, 0x4c5b82ff
mov dword [rsp + 0xdc], ecx
mov qword [rsp + 0xc0], 0
cmp rax, 0x3ad5c760
jbe 0x140003c1c
jmp 0x140003bca
mov rax, qword [rsp + 0x90]
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
jmp 0x140003c1c
mov rax, qword [rsp + 0x48]
add rax, 0x33f2ff1b
mov qword [rsp + 0xd0], rax
test byte [rsp + 0x8f], 1
jne 0x140003b93
jmp 0x140003ca0
mov rax, qword [rsp + 0xa0]
mov ecx, dword [rsp + 0x34]
xor ecx, 0xffffffff
mov dword [rsp + 0xdc], ecx
mov dx, word [rax]
shr dx, 1
mov ecx, dword [rsp + 0x34]
and ecx, 0x12ca7a76
mov dword [rsp + 0xdc], ecx
movzx ecx, dx
mov dword [rsp + 0xac], ecx
mov dword [rsp + 0xbc], 0
cmp dx, 0
je 0x140003ca0
jmp 0x14000392a
mov rax, qword [rsp + 0xc0]
add rsp, 0xe0
pop rbx
pop rsi
pop rdi
ret
mov eax, 0x450a8868
mov ecx, eax
mov eax, 0x7638e1e1
mov edx, eax
mov r8, qword [rsp + 0x48]
and r8, r8
mov qword [rsp + 0xd0], r8
mov r8, qword [rsp + 0x48]
mov qword [rsp + 0x28], rcx
mov rcx, r8
shl rdx, cl
mov qword [rsp + 0xd0], rdx
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x78], rdx
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0xd0], 0xffffffffcd52f3b0
add rdx, 0x335175d5
mov r9, qword [rsp + 0x28]
cmp r9, rdx
jb 0x140003b26
jmp 0x140003ba8
cmp qword [rsp + 0x80], 0x582ce4f3
ja 0x140003c2f
jmp 0x140003ca0