Function at 0x14004a7a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rsi, rcx
mov r12, qword [rsi + 0x18]
cmp r12, 0xffffffffffffffff
je 0x14004a7fb
mov r15, rsi
add r15, 8
mov rdi, qword [rsi + 8]
mov rbx, rdi
add rbx, 1
mov rax, rbx
shr rax, 3
imul r14, rax, 7
cmp rdi, 8
cmovb r14, rdi
mov rax, r14
shr rax, 1
cmp r12, rax
mov qword [rsp + 0x38], rdx
jb 0x14004ace7
jmp 0x14004a80a
mov ecx, 1
call fcn.14009f1a0
jmp 0x14004b129
mov rax, r12
sub rax, r14
cmova r14, r12
cmp r14, 7
jb 0x14004a82b
movabs rax, 0x1ffffffffffffffe
cmp r14, rax
ja 0x14004a87b
jmp 0x14004a845
mov qword [rsp + 0x28], r12
mov r12d, 8
mov eax, 4
cmp r14, 3
cmovb r12, rax
jmp 0x14004a88a
mov qword [rsp + 0x28], r12
shl r14, 3
add r14, 8
mov ecx, 7
mov rax, r14
xor edx, edx
div rcx
add rax, 0xffffffffffffffff
bsr rcx, rax
xor rcx, 0x3f
mov r12, 0xffffffffffffffff
shr r12, cl
add r12, 1
jmp 0x14004a88a
mov ecx, 1
call fcn.14009f1a0
jmp 0x14004b129
mov eax, dword [0x1400e6b40]
xor edx, edx
div dword [0x1400e6b44]
imul eax, eax, 0x348c843f
or eax, 0x18b2b4fb
add eax, 0x47e44c8b
cmp eax, 0x655f1209
jae 0x14004b13d
mov ecx, dword [0x1400e6b48]
add ecx, dword [0x1400e6b4c]
sub ecx, 0xd477308f
and ecx, 0xbe25df1d
xor ecx, 0x428c9c10
mov edx, 0x38
mov rax, r12
mul rdx
mov r14, rax
seto al
cmp r14, 0xfffffffffffffff0
seta dl
or al, dl
cmp ecx, 0x57718e2d
je 0x14004b13d
test al, 1
jne 0x14004a92c
jmp 0x14004a8fd
add r14, 0xf
and r14, 0xfffffffffffffff0
mov r13, r12
add r13, 0x10
mov rax, r14
add rax, r13
setb al
jb 0x14004a92c
mov rbp, r14
add rbp, r13
movabs rax, 0x7ffffffffffffff0
cmp rbp, rax
jbe 0x14004a991
mov eax, dword [0x1400e6b50]
add eax, dword [0x1400e6b54]
and eax, 0x4ed1de19
imul eax, eax, 0x7408f1bd
and eax, 0xb54d77d6
cmp eax, 0x5f586837
jbe 0x14004b14a
mov eax, dword [0x1400e6b58]
xor eax, dword [0x1400e6b5c]
mov ecx, 0x5fa318c5
xor edx, edx
div ecx
mov ecx, 0x79e585b6
xor edx, edx
div ecx
mov esi, eax
and esi, 0xbdcaa28d
mov ecx, 1
call fcn.14009f1a0
cmp esi, 0xd81f5a27
ja 0x14004b14a
jmp 0x14004a9be
mov al, byte [0x1400e8bf0]
mov rcx, rbp
mov edx, 0x10
call fcn.1400639f0
mov rcx, rax
cmp rcx, 0
jne 0x14004a9c3
mov cl, 1
mov edx, 0x10
mov r8, rbp
call fcn.14009f1b0
jmp 0x14004a9be
jmp 0x14004b129
mov rbp, rsi
mov rsi, r12
add rsi, 0xffffffffffffffff
mov rax, r12
shr rax, 3
imul rax, rax, 7
cmp r12, 9
mov r12, rax
cmovb r12, rsi
add rcx, r14
mov edx, 0xff
mov r8, r13
mov r14, rcx
call fcn.1400be7c0
mov r13, qword [rbp]
mov rax, qword [rsp + 0x28]
cmp rax, 0
je 0x14004ac07
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], rbp
movaps xmm0, xmmword [r13]
pmovmskb r12d, xmm0
xor r12w, 0xffff
mov rbp, r13
add rbp, 0xffffffffffffffc8
xor r8d, r8d
mov r14, r13
mov r9, rax
mov qword [rsp + 0xb0], r13
cmp r12w, 0
je 0x14004aa50
mov rcx, qword [rsp + 0x38]
jmp 0x14004aa7b
jmp 0x14004aa5e
xor r12w, 0xffff
mov rcx, qword [rsp + 0x38]
jmp 0x14004aa7b
mov rax, r14
add r14, 0x10
movaps xmm0, xmmword [rax + 0x10]
pmovmskb r12d, xmm0
add r8, 0x10
cmp r12w, 0xffff
je 0x14004aa5e
jmp 0x14004aa52
tzcnt eax, r12d
mov edx, r12d
dec edx
and edx, r12d
mov r12w, dx
mov qword [rsp + 0x58], r8
mov r13, r8
add r13, rax
dec r9
mov qword [rsp + 0x50], r9
mov rax, r13
neg rax
imul rax, rax, 0x38
mov rdx, rbp
add rdx, rax
call fcn.1400526d0
mov rcx, rax
mov r8, rcx
and r8, rsi
mov r9, qword [rsp + 0x30]
movups xmm0, xmmword [r9 + r8]
pmovmskb edx, xmm0
cmp dx, 0
je 0x14004aad9
mov rax, r8
jmp 0x14004ab71
mov qword [rsp + 0x60], rbp
xor r9d, r9d
jmp 0x14004aae3
mov eax, dword [0x1400e6b60]
or eax, dword [0x1400e6b64]
sub eax, 0x9a2888f0
and eax, 0x8eaf92a0
or eax, 0x4f4ac264
cmp eax, 0x693b4b7a
jae 0x14004b165
mov eax, dword [0x1400e6b68]
mov r10d, dword [0x1400e6b6c]
xor edx, edx
div r10d
imul ebp, eax, 0xc0ce4554
add ebp, 0x781fa394
mov r10, r9
add r10, 0x10
lea rax, [r9 + r8 + 0x10]
and rax, rsi
mov rdx, qword [rsp + 0x30]
movups xmm0, xmmword [rdx + rax]
pmovmskb edx, xmm0
cmp dx, 0
sete r11b
cmp ebp, 0xf0933c21
ja 0x14004b165
test r11b, 1
mov r8, rax
mov r9, r10
jne 0x14004aae3
jmp 0x14004ab65
mov r9, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x60]
jmp 0x14004ab71
tzcnt edx, edx
movzx edx, dx
add rax, rdx
and rax, rsi
cmp byte [r9 + rax], 0xff
jle 0x14004ab94
movaps xmm0, xmmword [r9]
pmovmskb eax, xmm0
tzcnt eax, eax
movzx eax, ax
shr rcx, 0x39
mov rdx, rax
add rdx, 0xfffffffffffffff0
and rdx, rsi
mov byte [r9 + rax], cl
mov byte [r9 + rdx + 0x10], cl
xor r13, 0xffffffffffffffff
imul rcx, r13, 0x38
mov r13, qword [rsp + 0xb0]
mov rdx, r13
add rdx, rcx
xor rax, 0xffffffffffffffff
imul rax, rax, 0x38
mov rcx, r9
add rcx, rax
mov r8d, 0x38
call fcn.1400be120
mov r9, qword [rsp + 0x50]
cmp r9, 0
mov r8, qword [rsp + 0x58]
jne 0x14004aa42
mov rbp, qword [rsp + 0x40]
mov rax, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0xa0]
jmp 0x14004ac07
sub r12, rax
mov qword [rbp], r14
mov qword [r15], rsi
mov qword [rbp + 0x10], r12
movabs rax, 0x8000000000000001
cmp rdi, 0
je 0x14004b129
mov eax, dword [0x1400e6b70]
or eax, dword [0x1400e6b74]
add eax, 0xc2ea48b5
xor eax, 0xa9a6953c
sub eax, 0x9f920abd
cmp eax, 0x5200c204
jbe 0x14004b172
jmp 0x14004ac51
mov r9d, dword [0x1400e6b78]
imul r9d, dword [0x1400e6b7c]
add r9d, 0x15c38860
xor r9d, 0x1ccd37be
add r9d, 0x7c0ba880
mov ecx, 0x38
mov rax, rbx
mul rcx
mov rcx, rax
seto al
add rcx, 0xf
and rcx, 0xfffffffffffffff0
mov rax, rdi
add rax, 0x11
mov rdx, rcx
add rdx, rax
cmp rdx, 0
sete r8b
cmp r9d, 0xbb6dfe14
jbe 0x14004ac51
movabs rax, 0x8000000000000001
test r8b, 1
jne 0x14004b129
jmp 0x14004acc2
xor eax, eax
sub rax, rcx
add r13, rax
mov rcx, r13
mov r8d, 0x10
call fcn.140063a00
movabs rax, 0x8000000000000001
jmp 0x14004b129
mov r15, qword [rsi]
mov r8, rbx
shr r8, 4
mov rax, rbx
and rax, 0xf
cmp rax, 0
setne al
and al, 1
movzx eax, al
mov rcx, r8
add rcx, rax
cmp rcx, 0
je 0x14004ad5b
add r8, rax
mov rdx, rcx
and rdx, 1
xor eax, eax
cmp r8, 1
je 0x14004ad38
movabs rax, 0x1ffffffffffffffe
and rcx, rax
xor eax, eax
xor r8d, r8d
jmp 0x14004ad63
jmp 0x14004ad38
cmp rdx, 0
je 0x14004ad5b
movaps xmm0, xmmword [r15 + rax]
xorps xmm1, xmm1
pcmpgtb xmm1, xmm0
movaps xmm0, xmmword [0x1400c5780]
por xmm1, xmm0
movdqa xmmword [r15 + rax], xmm1
cmp rbx, 0x10
jb 0x14004adba
jmp 0x14004adab
mov r9, rax
or r9, 0x10
movaps xmm0, xmmword [r15 + rax]
xorps xmm1, xmm1
xorps xmm2, xmm2
pcmpgtb xmm2, xmm0
movaps xmm0, xmmword [0x1400c5780]
por xmm2, xmm0
movaps xmmword [r15 + rax], xmm2
add rax, 0x20
movaps xmm2, xmmword [r15 + r9]
pcmpgtb xmm1, xmm2
por xmm1, xmm0
movdqa xmmword [r15 + r9], xmm1
add r8, 2
cmp r8, rcx
je 0x14004ad36
jmp 0x14004ad63
mov rax, r15
add rax, rbx
movups xmm0, xmmword [r15]
movups xmmword [rax], xmm0
jmp 0x14004add8
mov rcx, r15
add rcx, 0x10
mov rdx, r15
mov r8, rbx
call fcn.1400be120
xor eax, eax
cmp rdi, 0xffffffffffffffff
je 0x14004b118
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x40], rsi
mov rax, r15
add rax, 0xffffffffffffffc8
mov qword [rsp + 0xa8], rax
xor edx, edx
mov rbp, rdx
imul rax, rbp, 0xffffffffffffffc8
mov rcx, rax
add rcx, 0xffffffffffffffc8
mov r13, r15
add r13, rcx
mov rsi, r15
add rsi, rax
add rdx, 1
mov r12, r15
add r12, rbp
cmp byte [r15 + rbp], 0x80
jne 0x14004b100
mov qword [rsp + 0x48], rdx
mov rax, rbp
xor rax, 0xffffffffffffffff
imul rax, rax, 0x38
mov rbx, r15
add rbx, rax
xor eax, eax
sub rax, rbp
imul rax, rax, 0x38
mov rdx, qword [rsp + 0xa8]
add rdx, rax
mov rax, rbx
add rax, 8
mov qword [rsp + 0x90], rax
mov rax, rbx
add rax, 0x10
mov qword [rsp + 0x88], rax
mov rax, rbx
add rax, 0x18
mov qword [rsp + 0x80], rax
mov rax, rbx
add rax, 0x20
mov qword [rsp + 0x78], rax
mov rax, rbx
add rax, 0x28
mov qword [rsp + 0x70], rax
mov rax, rbx
add rax, 0x30
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x98], rdx
jmp 0x14004aebd
jmp 0x14004aeae
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x98]
jmp 0x14004aebd
call fcn.1400526d0
mov r8, rax
mov rcx, r8
and rcx, rdi
movups xmm0, xmmword [r15 + rcx]
pmovmskb edx, xmm0
cmp dx, 0
mov rax, rcx
jne 0x14004af08
xor r10d, r10d
mov rax, rcx
xor r9d, r9d
jmp 0x14004aee8
add r9, 0x10
lea rax, [r10 + rax + 0x10]
and rax, rdi
movups xmm0, xmmword [r15 + rax]
pmovmskb edx, xmm0
cmp dx, 0
mov r10, r9
je 0x14004aee8
jmp 0x14004af08
tzcnt edx, edx
movzx edx, dx
add rax, rdx
and rax, rdi
cmp byte [r15 + rax], 0xff
jle 0x14004af83
mov eax, dword [0x1400e6b80]
sub eax, dword [0x1400e6b84]
and eax, 0xfb8fc3aa
and eax, 0xf2bed379
mov r9d, 0x11117aa4
xor edx, edx
div r9d
cmp eax, 0x2fbcee91
je 0x14004b183
jmp 0x14004af4a
mov edx, dword [str.O_ag]
mov eax, dword [0x1400e6b8c]
and edx, eax
and edx, 0x4433df40
add edx, 0xca409a97
xor edx, 0xb263fce0
movaps xmm0, xmmword [r15]
pmovmskb eax, xmm0
tzcnt eax, eax
movzx eax, ax
cmp edx, 0xa570f2ee
ja 0x14004af4a
jmp 0x14004af83
mov rdx, rbp
sub rdx, rcx
mov r9, rax
sub r9, rcx
xor r9, rdx
and r9, rdi
cmp r9, 0x10
jb 0x14004b085
mov rcx, rax
xor rcx, 0xffffffffffffffff
imul rdx, rcx, 0x38
mov rcx, r15
add rcx, rdx
mov dl, byte [r15 + rax]
shr r8, 0x39
mov r9, rax
add r9, 0xfffffffffffffff0
and r9, rdi
mov byte [r15 + rax], r8b
mov byte [r15 + r9 + 0x10], r8b
cmp dl, 0xff
je 0x14004b0d8
imul rax, rax, 0xffffffffffffffc8
mov rdx, r15
add rdx, rax
cmp r13, rdx
setb al
cmp rcx, rsi
setb dl
and al, dl
test al, 1
jne 0x14004aff2
jmp 0x14004aff9
xor eax, eax
jmp 0x14004b0a3
mov rax, qword [rbx]
mov rdx, qword [rcx]
mov qword [rbx], rdx
mov qword [rcx], rax
mov r8, qword [rsp + 0x90]
mov rax, qword [r8]
mov rdx, qword [rcx + 8]
mov qword [r8], rdx
mov qword [rcx + 8], rax
mov r8, qword [rsp + 0x88]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x10]
mov qword [r8], rdx
mov qword [rcx + 0x10], rax
mov r8, qword [rsp + 0x80]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x18]
mov qword [r8], rdx
mov qword [rcx + 0x18], rax
mov r8, qword [rsp + 0x78]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x20]
mov qword [r8], rdx
mov qword [rcx + 0x20], rax
mov r8, qword [rsp + 0x70]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x28]
mov qword [r8], rdx
mov qword [rcx + 0x28], rax
mov r8, qword [rsp + 0x68]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x30]
mov qword [r8], rdx
mov qword [rcx + 0x30], rax
jmp 0x14004aeae
shr r8, 0x39
mov rax, rbp
add rax, 0xfffffffffffffff0
and rax, rdi
mov byte [r12], r8b
mov byte [r15 + rax + 0x10], r8b
mov rdx, qword [rsp + 0x48]
jmp 0x14004b100
mov dl, byte [rbx + rax]
mov r8b, byte [rcx + rax]
mov byte [rbx + rax], r8b
mov byte [rcx + rax], dl
mov rdx, rax
or rdx, 1
mov r8b, byte [rbx + rdx]
mov r9b, byte [rcx + rdx]
mov byte [rbx + rdx], r9b
mov byte [rcx + rdx], r8b
add rax, 2
cmp rax, 0x38
je 0x14004aeac
jmp 0x14004b0a3
mov rax, rbp
add rax, 0xfffffffffffffff0
and rax, rdi
mov byte [r12], 0xff
mov byte [r15 + rax + 0x10], 0xff
mov rdx, rbx
mov r8d, 0x38
call fcn.1400be120
mov rdx, qword [rsp + 0x48]
cmp rbp, rdi
jne 0x14004adf3
mov rax, r14
mov rsi, qword [rsp + 0x40]
mov r12, qword [rsp + 0x28]
jmp 0x14004b118
sub rax, r12
mov qword [rsi + 0x10], rax
movabs rax, 0x8000000000000001
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push 0x51
sub ebp, dword [rsi]
std
mov ebp, dword [rax - 0x15]
jmp 0x14004a8b3
and eax, 0x49f5cf70
invalid
cmp dword [rbx + 0x4dc97ad0], 0x97e9a787
stc
invalid
sub dword [rcx + 0x6f], esp
out 0x85, eax
cmp dl, byte [rcx - 0x17f3ac1f]
add al, 0xe9
int3
jmp 0x14004b13d