Function at 0x14004ef70
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xd0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x20], rcx
mov eax, 0x10
call fcn.14024f5c0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x18], rax
sub rsp, 0x20
call fcn.14004e8b3
mov rcx, qword [rbp + 0x20]
add rsp, 0x20
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x40], 0
lea rax, [rbp + 0x40]
add rax, 8
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x48], 0
mov rcx, qword [rcx]
mov edx, 2
lea r8, [rbp + 0x38]
sub rsp, 0x20
call fcn.14004f720
add rsp, 0x20
test al, 1
jne 0x14004efef
jmp 0x14004f128
mov ecx, dword [0x1402525e0]
mov eax, dword [0x1402525e4]
mov edx, 0xee0c14b3
xor edx, 0xb1c5fc20
xor eax, edx
sub ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0xe02a481a
xor edx, 0x1fd5b7e5
xor eax, edx
mov edx, 0xcd4c1ef2
xor edx, 0x533d34b4
and eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x9e712a46
mov r8d, 0xffffffff
xor r8d, 0x9e712a46
or edx, r8d
and ecx, edx
xor ecx, 0xffffffff
mov edx, 0xa425105d
xor edx, 0x5bdaefa2
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
and eax, 0xcd105c7e
and eax, 0x9e73a06d
cmp eax, 0xf8bfc911
je 0x14004f6fe
mov eax, dword [0x1402525e8]
xor eax, 0x8c57cc53
or eax, dword [0x1402525ec]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xe9f554e4
mov r8d, 0xffffffff
xor r8d, 0xe9f554e4
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xc0d8fd6e
xor r8d, 0x292da98a
mov edx, eax
and edx, r8d
or eax, 0xe9f554e4
imul eax, edx
add eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x3456fe3b
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov edx, 0xffffffff
xor edx, 0x72cc7e58
mov ecx, eax
and ecx, edx
mov r8d, 0x331d0be7
xor r8d, 0x41d175bf
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov dword [rbp + 0x14], eax
mov eax, 0x86f1b769
xor eax, 0xacfd0384
mov dword [rbp + 0x10], eax
sub rsp, 0x20
call fcn.140007e9d
mov ecx, dword [rbp + 0x10]
mov eax, dword [rbp + 0x14]
add rsp, 0x20
cmp eax, ecx
jb 0x14004f072
jmp 0x14004f6f8
mov rax, qword [rbp + 0x38]
mov qword [rbp + 8], rax
movabs rcx, 0xc59c957966f350b0
movabs rdx, 0xc59c957966f350b0
xor rcx, rdx
cmp rax, rcx
jge 0x14004f174
mov rcx, qword [rbp + 8]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x14004f6f8
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x40]
sub rsp, 0x20
call fcn.140016120
mov r8, qword [rbp + 0x20]
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov rdx, qword [r8]
mov qword [rbp - 0x10], rdx
mov rcx, r8
add rcx, 8
mov qword [rbp - 8], rcx
mov rcx, qword [r8 + 8]
mov r9, qword [rbp + 0x40]
mov qword [r8], r9
mov r9, qword [rbp + 0x48]
mov qword [r8 + 8], r9
mov qword [rbp + 0x40], rdx
mov qword [rax], rcx
xor eax, eax
mov qword [rbp], rax
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp]
mov qword [rbp - 0x18], rax
cmp rax, rcx
jge 0x14004f604
mov rcx, qword [rbp - 0x18]
test rcx, rcx
setns al
mov rdx, qword [rbp + 0x40]
mov qword [rbp - 0x20], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14004f218
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
jmp 0x14004f6f8
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
lea rdx, [rdx + rdx*2]
mov rcx, qword [rcx + rdx*8 + 8]
mov qword [rbp - 0x30], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 0x21], al
or al, cl
test al, 1
jne 0x14004f58c
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
movabs rax, 0x8883040a46298697
movabs r8, 0x777cfbf5b9d67968
xor rax, r8
add rcx, rax
movabs rax, 0xca0d990b06096a5e
movabs r8, 0x35f266f4f9f695a1
xor rax, r8
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
mov qword [rbp - 0x38], rax
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rbp - 0x38]
mov qword [rbp - 0x48], rcx
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x40], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14004f2e1
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
jmp 0x14004f6f8
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 8]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x18
add rax, rcx
cmp qword [rax], 0
je 0x14004f33a
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
mov rdx, rax
and rdx, 0xffffffffffffffff
or rax, 0xffffffffffffffff
add rdx, rax
sub rsp, 0x20
call fcn.14004fa4c
mov rcx, qword [rbp + 0x28]
add rsp, 0x20
cmp byte [rcx], 0
mov qword [rbp - 0x38], rax
je 0x14004f29a
jmp 0x14004f6f8
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x40]
mov qword [rbp - 0x50], rcx
cmp rax, rcx
jl 0x14004f39d
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x50]
movabs rax, 0xb610143851b05b3
movabs r8, 0xb610143851b05b3
xor rax, r8
movabs r8, 0xb3f697bd23d792cf
movabs r9, 0x4c096842dc286d30
xor r8, r9
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
jmp 0x14004f6f8
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
add rcx, 8
mov eax, dword [rcx]
mov dword [rbp - 0x5c], eax
sub rsp, 0x20
call fcn.140016265
mov rax, qword [rbp - 0x18]
add rsp, 0x20
mov rcx, qword [rbp + 0x40]
mov qword [rbp - 0x58], rcx
cmp rax, rcx
jl 0x14004f521
mov ecx, dword [0x1402525f0]
mov edx, dword [0x1402525f4]
xor edx, 0x24875613
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
add eax, 0x148cd85
and eax, 0x4fd56de9
xor eax, 0x8c0bb308
cmp eax, 0xa0a27cbb
jbe 0x14004f707
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x58]
mov r8d, dword [0x1402525f8]
mov eax, 0x91783058
xor eax, 0x1b41b354
xor r8d, eax
mov r10d, dword [0x1402525fc]
mov r11d, r10d
xor r11d, 0xffffffff
mov r9d, r8d
and r9d, r11d
mov eax, r8d
or eax, r11d
xor eax, 0xffffffff
imul eax, r9d
mov r9d, r8d
and r9d, r10d
or r8d, r10d
imul r8d, r9d
add r8d, eax
mov eax, r8d
or eax, 0xb61b684
xor eax, 0xffffffff
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xb61b684
and r8d, r9d
xor eax, 0xffffffff
mov r9d, 0x2248ab54
xor r9d, 0xddb754ab
xor r8d, r9d
and eax, r8d
or eax, 0x1ee056db
mov r9d, eax
xor r9d, 0x347e0fb6
xor r9d, 0xffffffff
mov r8d, 0x29ef7b02
xor r8d, 0x1d9174b4
and r8d, r9d
shl r8d, 1
sub r8d, 0x347e0fb6
sub eax, r8d
mov dword [rbp - 0x60], eax
xor eax, eax
sub rax, rdx
xor edx, edx
sub rdx, 0xffffffffffffffff
add rax, rdx
movabs rdx, 0x9462e46b98d3d094
movabs r8, 0x9462e46b98d3d094
xor rdx, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140013507
mov eax, dword [rbp - 0x60]
add rsp, 0x20
cmp eax, 0xaba6e40c
jae 0x14004f423
jmp 0x14004f6f8
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
add rcx, 0x10
mov rax, qword [rcx]
mov qword [rbp - 0x68], rax
sub rsp, 0x20
call fcn.14009ff47
mov rdx, qword [rbp + 0x20]
mov r8d, dword [rbp - 0x5c]
mov r9, qword [rbp - 0x68]
mov r10, qword [rbp - 0x30]
mov rax, qword [rbp - 0x48]
add rsp, 0x20
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.14004ed50
mov rax, qword [rbp + 0x28]
add rsp, 0x30
cmp byte [rax], 0
je 0x14004f5aa
jmp 0x14004f6f8
mov rcx, qword [rbp - 0x18]
mov dl, byte [rbp - 0x21]
xor eax, eax
test dl, 1
mov qword [rbp - 0x78], rcx
mov byte [rbp - 0x69], al
jne 0x14004f5eb
jmp 0x14004f5aa
mov rax, qword [rbp - 0x18]
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
mov rdx, rcx
xor rdx, rax
and rdx, rcx
mov al, 1
cmp rdx, 0
mov qword [rbp - 0x78], rcx
mov byte [rbp - 0x69], al
jge 0x14004f5eb
sub rsp, 0x20
call fcn.140007e9d
add rsp, 0x20
jmp 0x14004f6f8
mov rax, qword [rbp - 0x78]
mov cl, byte [rbp - 0x69]
test cl, 1
mov qword [rbp], rax
jne 0x14004f1c3
jmp 0x14004f6f8
mov eax, dword [0x140252600]
mov edx, dword [0x140252604]
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor eax, 0x1f0cefb9
xor eax, 0xd4afecc1
add eax, 0x46cd5b23
sub eax, 0xb2f67799
mov ecx, 0xbb7a3297
xor ecx, 0xfdb769b4
sub eax, ecx
cmp eax, 0x43993ae1
jb 0x14004f710
mov rcx, qword [rbp + 0x18]
mov eax, dword [0x140252608]
xor eax, 0xcc5035cc
xor edx, edx
div dword [0x14025260c]
mov r9d, 0xa47fae5c
xor r9d, 0xa70c2362
mov edx, 0xfff05c6a
xor edx, 0xfa395
xor r9d, edx
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
mov r9d, 0xb976ea5b
xor r9d, 0x468915a4
xor edx, r9d
imul edx, r8d
mov r9d, 0xfc3c7d82
xor r9d, 0xff4ff0bc
mov r8d, eax
and r8d, r9d
mov r9d, 0xd63ff2ea
xor r9d, 0xd54c7fd4
or eax, r9d
imul eax, r8d
add eax, edx
xor eax, 0xe0f36b70
sub eax, 0xbff09c01
mov dword [rbp - 0x7c], eax
mov rax, qword [rbp + 0x40]
mov qword [rcx], rax
mov rax, qword [rbp + 0x48]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14004e2c0
mov eax, dword [rbp - 0x7c]
add rsp, 0x20
cmp eax, 0x9a2c7283
ja 0x14004f642
jmp 0x14004f6f8
lea rsp, [rbp + 0x50]
pop rbp
ret
cmp ebx, ecx
add bh, byte [rdx - 0x17]
imul edi, ecx, 0xffffffff
jmp qword [rcx - 0x4b]
invalid
out 0xd3, al
add al, byte [rax]
jmp 0x14004f642