Function at 0x1400adc40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x148
mov qword [rsp + 0xf8], r8
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xe8], rcx
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov rcx, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x108]
add rax, 0x60
mov qword [rsp + 0x100], rax
mov qword [rcx], 0
mov qword [rcx + 8], 0
mov rdx, qword [rdx]
add rdx, qword [r8]
lea rcx, [rsp + 0x138]
call fcn.140031800
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x110], rax
mov rcx, qword [rsp + 0x140]
mov qword [rsp + 0x118], rcx
mov rcx, qword [rdx]
mov qword [rsp + 0x120], rcx
mov rdx, qword [rdx + 8]
mov qword [rsp + 0x128], rdx
cmp rcx, 0
mov qword [rsp + 0x130], rax
jle 0x1400adfd7
mov eax, dword [0x1402ac928]
add eax, dword [0x1402ac92c]
mov ecx, 0x6d16ad6a
xor ecx, 0xf0485af6
imul eax, ecx
add eax, 0x335349b8
mov ecx, 0x865dee85
xor ecx, 0x5b57fac4
and eax, ecx
mov ecx, 0xd9c82ea
xor ecx, 0xe8b9c90f
cmp eax, ecx
jae 0x1400ae6f4
mov r8, qword [rsp + 0x120]
mov ecx, dword [0x1402ac930]
mov edx, dword [0x1402ac934]
mov r9d, 0xb15064ef
xor r9d, 0x4eaf9b10
mov eax, ecx
xor eax, r9d
mov r9d, ecx
xor r9d, 0xffffffff
and eax, r9d
mov r9d, edx
or r9d, r9d
xor r9d, 0xffffffff
xor eax, 0xffffffff
mov r10d, 0x6db7a588
xor r10d, 0x92485a77
xor r9d, r10d
and eax, r9d
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x8e2743f0
mov r9d, 0xffffffff
xor r9d, 0x8e2743f0
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov r9d, 0x9ad3e855
xor r9d, 0x14f4aba5
mov edx, eax
and edx, r9d
mov r9d, 0xf6cfeff3
xor r9d, 0x78e8ac03
or eax, r9d
imul eax, edx
add eax, ecx
mov ecx, 0x69a0ec5
xor ecx, 0xb8bea6ac
mov edx, 0xf235e519
xor edx, 0xdca1ae6
xor ecx, edx
add eax, ecx
mov ecx, 0xac96ac50
xor ecx, 0xac96ac51
add eax, ecx
xor eax, 0xe701bfaf
mov rcx, r8
add rcx, 1
mov qword [rsp + 0xd8], rcx
movabs rdx, 0x72e213efd09917ac
movabs r9, 0x8d1dec102f66e853
xor rdx, r9
xor r8, rdx
mov rdx, rcx
xor rdx, r8
xor rdx, 0xffffffffffffffff
or rcx, r8
and rcx, rdx
cmp rcx, 0
setl cl
mov byte [rsp + 0xe7], cl
cmp eax, 0xc0ea1267
jae 0x1400ae6f4
mov al, byte [rsp + 0xe7]
test al, 1
jne 0x1400ade86
jmp 0x1400adea0
call fcn.14000ee80
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x130], rax
jmp 0x1400adfd7
mov rax, qword [rsp + 0xd8]
movabs rcx, 0xac750e9eb1f3c6ff
movabs rdx, 0xac750e9eb1f3c6ff
xor rcx, rdx
cmp rax, rcx
jge 0x1400adef8
mov rcx, qword [rsp + 0xd8]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.140018506
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x130], rax
jmp 0x1400adfd7
mov rax, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x118]
add rcx, 8
add rcx, rdx
mov qword [rsp + 0xc0], rcx
add rax, 8
mov qword [rsp + 0xc8], rax
xor eax, eax
mov qword [rsp + 0xd0], rax
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x120]
mov rax, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xc8]
mov r8b, byte [r8 + rcx]
mov byte [rax + rcx], r8b
movabs r8, 0x91f4ff3fb18ac0be
movabs rax, 0x91f4ff3fb18ac0bf
xor r8, rax
mov rax, rcx
add rax, r8
cmp rcx, rdx
mov qword [rsp + 0xd0], rax
jne 0x1400adf35
mov r8, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x110]
mov rax, r8
add rax, rdx
mov rcx, rax
xor rcx, rdx
mov rdx, rax
xor rdx, r8
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x130], rax
jge 0x1400adfd7
call fcn.14000ee80
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x130], rax
mov rdx, qword [rsp + 0xf8]
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x98], rax
mov rcx, qword [rdx]
mov qword [rsp + 0xa0], rcx
mov r8, rdx
add r8, 8
mov qword [rsp + 0xa8], r8
mov rdx, qword [rdx + 8]
mov qword [rsp + 0xb0], rdx
cmp rcx, 0
mov qword [rsp + 0xb8], rax
jle 0x1400ae375
mov rdx, qword [rsp + 0xa0]
mov rcx, rdx
and rcx, 1
shl rcx, 1
mov rax, rdx
xor rax, 1
add rax, rcx
mov qword [rsp + 0x90], rax
xor rdx, 0xffffffffffffffff
mov rcx, rax
xor rcx, rdx
movabs r8, 0x1d63bc3be475ccd5
movabs r9, 0xe29c43c41b8a332a
xor r8, r9
xor rcx, r8
or rax, rdx
and rax, rcx
movabs rcx, 0x6d42063f14a53dea
movabs rdx, 0x6d42063f14a53dea
xor rcx, rdx
cmp rax, rcx
jge 0x1400ae0b0
call fcn.14000ee80
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb8], rax
jmp 0x1400ae375
mov rax, qword [rsp + 0x90]
cmp rax, 0
jge 0x1400ae112
mov rcx, qword [rsp + 0x90]
movabs rdx, 0x4045308bb829f577
movabs rax, 0x4045308bb829f577
xor rdx, rax
movabs r8, 0x8a002c60e98d46ca
movabs rax, 0xf5ffd39f1672b935
xor r8, rax
call fcn.140018506
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb8], rax
jmp 0x1400ae375
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x118]
add rcx, 8
add rcx, rdx
mov qword [rsp + 0x78], rcx
add rax, 8
mov qword [rsp + 0x80], rax
xor eax, eax
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
mov r8b, byte [r8 + rcx]
mov byte [rax + rcx], r8b
mov rax, rcx
add rax, 1
cmp rcx, rdx
mov qword [rsp + 0x88], rax
jne 0x1400ae14c
mov r9, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x98]
mov rax, r9
add rax, rdx
mov rcx, rax
xor rcx, rdx
movabs rdx, 0x6827c5ba6f61cd17
movabs r8, 0x97d83a45909e32e8
xor rdx, r8
mov r8, rax
xor r8, rdx
movabs rdx, 0xb7fab5f49095c749
movabs r10, 0x40f8329f534566a
xor rdx, r10
and rdx, r8
mov r11, 0xffffffffffffffff
movabs r8, 0xb3f536dd65a19123
xor r11, r8
mov r10, rax
and r10, r11
movabs rsi, 0x90fe1ff6d8fad781
movabs r8, 0x6f01e0092705287e
xor rsi, r8
mov r8, r9
xor r8, rsi
movabs rsi, 0x76e51550c3282dd7
movabs rdi, 0xc510238da689bcf4
xor rsi, rdi
and r8, rsi
and r9, r11
or rdx, r10
or r8, r9
xor rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
movabs r9, 0x76c0566752522cbc
xor r8, r9
or rcx, rdx
movabs rdx, 0x6f8210de4d8e09f1
movabs r9, 0x194246b91fdc254d
xor rdx, r9
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0xb8], rax
jge 0x1400ae375
mov eax, dword [0x1402ac938]
imul eax, dword [0x1402ac93c]
xor eax, 0x521e7725
mov r8d, 0xffffffff
xor r8d, 0x707a3061
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0x150e49a4
xor r8d, 0x657479c5
mov edx, eax
and edx, r8d
or eax, 0x707a3061
imul eax, edx
add eax, ecx
xor eax, 0x187bdb1c
cmp eax, 0x3aa28bd3
je 0x1400ae6fd
mov eax, dword [0x1402ac940]
mov edx, dword [0x1402ac944]
mov ecx, 0xf0fa48ea
xor ecx, 0xf0fa48ea
sub ecx, edx
sub eax, ecx
add eax, 0x6295d971
mov edx, 0xffffffff
xor edx, 0x4de7b21
mov ecx, eax
xor ecx, edx
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x8a547913
and ecx, 0x8a547913
mov edx, 0xd6bac60b
xor edx, 0x294539f4
xor ecx, edx
and eax, ecx
mov ecx, 0x6c4d4287
xor ecx, 0x93b2bd78
xor eax, ecx
mov dword [rsp + 0x74], eax
call fcn.14000ee80
mov eax, dword [rsp + 0x74]
cmp eax, 0x4fcad354
jb 0x1400ae6fd
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb8], rax
jmp 0x1400ae375
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0x58], rdx
mov ecx, 0x5381
xor eax, eax
cmp rdx, 0
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
jle 0x1400ae40f
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x118]
mov r8b, byte [r8 + rcx + 8]
imul rax, rax, 0x21
movzx r8d, r8b
movabs r9, 0xda420a7000af8ed6
sub rax, r9
add rax, r8
movabs r8, 0x5e68dc06049e9ed5
movabs r9, 0x842ad67604311003
xor r8, r9
add rax, r8
add rcx, 1
cmp rcx, rdx
mov rdx, rax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x50], rax
je 0x1400ae433
jmp 0x1400ae39d
mov rcx, qword [rsp + 0x118]
mov eax, 0x5381
cmp rcx, 0
mov rcx, rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
je 0x1400ae4be
mov rcx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov rdx, qword [rcx]
movabs r8, 0x8eabea86f343f29
movabs rcx, 0x48eabea86f343f29
xor r8, rcx
movabs rcx, 0x678cf6eb91246840
movabs r9, 0x987309146edb97bf
xor rcx, r9
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
movabs rdx, 0xcd42fa8db68bcec
movabs r8, 0xcd42fa8db68bcec
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0x48], rax
jne 0x1400ae4be
mov rcx, qword [rsp + 0x118]
call fcn.14001a7c0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x48]
call fcn.140008f96
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xa8]
mov al, byte [rax]
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x3f], cl
cmp al, 0
jne 0x1400ae571
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x1400ae6e2
jmp 0x1400ae50e
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
movabs rdx, 0x4000000000000000
mov rax, rcx
and rax, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rcx, rdx
and rax, rcx
movabs rcx, 0xfe487f6dae4a50a6
movabs rdx, 0x1b7809251b5af59
xor rcx, rdx
xor rax, rcx
cmp rax, 0
je 0x1400ae607
jmp 0x1400ae6e2
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x1400ae6e2
jmp 0x1400ae582
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rax, rcx
mov rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor rcx, rdx
movabs rdx, 0x7a9ad692cd969e84
movabs r8, 0x3a9ad692cd969e84
xor rdx, r8
movabs r8, 0xb550b701361d76ab
movabs r9, 0x4aaf48fec9e28954
xor r8, r9
xor rdx, r8
and rcx, rdx
or rax, rcx
movabs rcx, 0x7b96bc5341c84584
movabs rdx, 0x846943acbe37ba7b
xor rcx, rdx
xor rax, rcx
cmp rax, 0
jne 0x1400ae6e2
mov ecx, dword [0x1402ac948]
mov edx, dword [0x1402ac94c]
mov eax, ecx
xor eax, 0xffffffff
mov r8d, ecx
xor r8d, 0xffffffff
or eax, r8d
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
and edx, edx
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
imul eax, eax, 0x80f54983
mov ecx, 0xd5c031ac
xor edx, edx
div ecx
mov ecx, 0x92b7bdd9
xor ecx, 0x9d0a4706
xor eax, ecx
cmp eax, 0xcafcbaa2
jae 0x1400ae706
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1402ac950]
mov r8d, dword [0x1402ac954]
xor r8d, 0x15e135a
mov edx, eax
and edx, r8d
xor eax, r8d
or edx, eax
mov eax, edx
and eax, 0xa5fa71d3
xor eax, 0xffffffff
and edx, 0xa5fa71d3
xor edx, 0xffffffff
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov r8d, 0xb60ccd8f
xor edx, edx
div r8d
or eax, 0x253d9d2f
mov dword [rsp + 0x2c], eax
mov eax, 0xc812f104
xor eax, 0x9639ff4b
mov dword [rsp + 0x28], eax
call fcn.14001a7c0
mov ecx, dword [rsp + 0x28]
mov eax, dword [rsp + 0x2c]
cmp eax, ecx
je 0x1400ae668
jmp 0x1400ae6e2
mov rax, qword [rsp + 0xe8]
add rsp, 0x148
pop rdi
pop rsi
ret
sahf
invalid
invalid
xchg edx, eax
xor cl, byte [rdi]
jo 0x1400ae6f4
pop rcx
invalid