Function at 0x1400a5510
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x140
mov qword [rsp + 0x130], r8
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x120], rcx
call fcn.1400a5037
mov rdx, qword [rsp + 0x128]
mov r8, qword [rsp + 0x130]
mov rcx, r8
add rcx, rdx
mov qword [rsp + 0x138], rcx
mov rax, rcx
xor rax, rdx
xor rcx, r8
and rax, rcx
cmp rax, 0
jge 0x1400a5575
call fcn.140007e9d
jmp 0x1400a5fed
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x120]
mov rax, rdx
add rax, 0x20
mov qword [rsp + 0x108], rax
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x110], rax
add rdx, 0x10
mov qword [rsp + 0x118], rdx
cmp rax, rcx
jl 0x1400a5600
mov rcx, qword [rsp + 0x128]
mov rax, qword [rsp + 0x120]
mov rdx, rax
add rdx, 8
mov qword [rsp + 0xe8], rdx
add rax, 0x28
mov qword [rsp + 0xf0], rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rsp + 0xf8], rax
xor eax, eax
mov qword [rsp + 0x100], rax
jmp 0x1400a5925
mov rdx, qword [rsp + 0x110]
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x118]
mov rcx, qword [rcx]
mov r8, rax
add r8, 8
mov qword [rsp + 0xc0], r8
add rax, 0x28
mov qword [rsp + 0xc8], rax
xor eax, eax
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rax
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rdx
cmp rax, rcx
jge 0x1400a57c6
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x120]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rsp + 0xa8], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1400a56e6
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xa8]
movabs rax, 0x25905762ff2e5d1
movabs r8, 0xfda6fa89d00d1a2e
xor rax, r8
add rdx, rax
call fcn.140013507
jmp 0x1400a5fed
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 4
add rcx, rax
call fcn.14001d63d
mov r8, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x108]
xor r9d, r9d
sub r9, 1
sub r8, r9
mov rcx, qword [rcx]
xor rcx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
movabs r10, 0xa38175540e8e9901
xor r9, r10
or rcx, r8
movabs r8, 0xb70c09ac4366892e
movabs r10, 0x148d7cf84de8102f
xor r8, r10
or r8, r9
movabs r9, 0x8389778d413e343d
movabs r10, 0x7c768872bec1cbc2
xor r9, r10
xor rcx, r9
and rcx, r8
movabs r8, 0x5fc432d09af54b76
movabs r9, 0x5fc432d09af54b77
xor r8, r9
add rax, r8
mov rdx, qword [rdx]
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rax
jmp 0x1400a5650
mov ecx, dword [0x140254e38]
mov edx, dword [0x140254e3c]
mov eax, ecx
xor eax, edx
mov r8d, 0xe7b4e7e0
xor r8d, 0x184b181f
xor eax, r8d
or ecx, edx
and ecx, eax
mov edx, 0xffffffff
xor edx, 0x2eeb88b3
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x67359481
xor edx, edx
div ecx
mov edx, 0xffffffff
xor edx, 0xb7e5f424
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xb7e5f424
add eax, edx
sub eax, ecx
cmp eax, 0x838e253b
je 0x1400a5ff8
mov rdx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x118]
mov r9, qword [rsp + 0x108]
mov ebx, dword [0x140254e40]
imul ebx, dword [0x140254e44]
mov eax, 0x3951ceb0
xor eax, 0x8a519d08
or ebx, eax
mov eax, ebx
and eax, 0x6ba9d13f
shl eax, 1
xor ebx, 0x6ba9d13f
add ebx, eax
mov eax, 0x4861ce60
xor eax, 0xb79e319f
mov ecx, ebx
xor ecx, eax
mov r10d, 0xffffffff
xor r10d, 0xd8cc2e
mov r11d, 0xffffffff
xor r11d, 0xbc5f2b00
mov esi, 0x3ed3f90a
xor esi, 0x828cd20a
mov eax, ecx
and eax, esi
and ebx, r11d
mov esi, r10d
and esi, 0xbc5f2b00
mov edi, 0x3545a982
xor edi, 0x359d65ac
and edi, r11d
or eax, ebx
or esi, edi
xor eax, esi
or ecx, r10d
mov r10d, 0x88366216
xor r10d, 0x77c99de9
xor ecx, r10d
mov r10d, 0xaee073c7
xor r10d, 0x12bf58c7
or r10d, r11d
and ecx, r10d
or eax, ecx
mov ecx, 0xc4f0cd0c
xor ecx, 0x144731be
movabs r10, 0xf476cd120e882727
movabs r11, 0xf476cd120e882727
xor r10, r11
mov qword [r9], r10
mov r8, qword [r8]
mov qword [rdx + 0x18], r8
cmp eax, ecx
ja 0x1400a582a
jmp 0x1400a5fed
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xa0], rax
mov eax, dword [0x140254e48]
mov ecx, dword [0x140254e4c]
xor ecx, 0x9b9e18c7
mov edx, 0x44d33bf7
xor edx, 0xc89892be
sub eax, edx
add eax, ecx
add eax, 0x8c4ba949
xor ecx, ecx
sub ecx, eax
mov eax, 0x837098cb
xor eax, 0x837098cb
mov edx, 0xdaced249
xor edx, 0x5c96a95b
sub eax, edx
add ecx, eax
mov eax, 0xaa572eda
xor eax, 0xaa572eda
sub eax, ecx
mov ecx, 0xd478d997
xor ecx, 0x566126a6
xor eax, ecx
add eax, 0x2fb48948
mov ecx, 0xe609e250
xor ecx, 0xfa76fafb
cmp eax, ecx
jb 0x1400a6001
mov rcx, qword [rsp + 0xa0]
mov eax, dword [0x140254e50]
add eax, dword [0x140254e54]
mov r8d, 0x80d527f
xor edx, edx
div r8d
mov rdx, qword [rsp + 0xf8]
add eax, 0xc52ac3f5
mov r8d, 0xc0837b15
xor r8d, 0x9c953f0d
sub eax, r8d
mov r8d, 0x5d8c2cf
xor r8d, 0xc0f2013a
sub eax, r8d
sub eax, 0xb41e9afa
cmp rcx, rdx
sete cl
mov byte [rsp + 0x9f], cl
cmp eax, 0x24d6e610
je 0x1400a59a9
mov al, byte [rsp + 0x9f]
test al, 1
jne 0x1400a5a26
jmp 0x1400a5a62
mov rcx, qword [rsp + 0x130]
mov rax, qword [rsp + 0x120]
add rax, 0x18
mov qword [rsp + 0x80], rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x90], rax
jmp 0x1400a5bcb
mov rdx, qword [rsp + 0x120]
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax]
mov qword [rsp + 0x70], rcx
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rsp + 0x78], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1400a5ab0
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffff
call fcn.140013507
jmp 0x1400a5fed
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xe8]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 4
add rcx, rax
call fcn.14001d63d
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax]
movabs rdx, 0x2f87e479b7f8d798
movabs rax, 0x2f87e479b7f8d799
xor rdx, rax
mov rax, rcx
add rax, rdx
mov qword [rsp + 0x68], rax
xor rcx, 0xffffffffffffffff
movabs rdx, 0x780db90dee8cac8
movabs r8, 0xf87f246f21173537
xor rdx, r8
xor rax, rdx
movabs rdx, 0x6a2618231901b10b
movabs r8, 0x95d9e7dce6fe4ef4
xor rdx, r8
xor rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0xb3b88ef69a2c7283
xor rdx, r8
or rax, rcx
movabs rcx, 0x17cd29086362642c
movabs r8, 0xa475a7fef94e16af
xor rcx, r8
or rcx, rdx
movabs rdx, 0x3795f1171f1b5af4
movabs r8, 0xc86a0ee8e0e4a50b
xor rdx, r8
xor rax, rdx
and rax, rcx
cmp rax, 0
jge 0x1400a5b97
call fcn.140007e9d
jmp 0x1400a5fed
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x118]
mov r8, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x68]
and rdx, qword [r8]
mov qword [rcx], rdx
add rax, 1
mov qword [rsp + 0x100], rax
jmp 0x1400a5925
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x60], rax
cmp rax, rcx
je 0x1400a5f3b
mov ecx, dword [0x140254e58]
and ecx, dword [0x140254e5c]
mov edx, 0x5ad85bf2
xor edx, 0xa527a40d
mov eax, ecx
xor eax, edx
mov edx, 0x14f38d1f
xor edx, 0xaba42712
mov r8d, 0x326e3d3
xor r8d, 0xfcd91c2c
xor edx, r8d
and eax, edx
mov edx, 0xcf438968
xor edx, 0x30bc7697
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xbf57aa0d
and ecx, edx
xor eax, 0xffffffff
mov edx, 0x1c050be0
xor edx, 0xe3faf41f
xor ecx, edx
and eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xbf9dc298
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xbf9dc298
or eax, 0xbf9dc298
imul eax, edx
add eax, ecx
imul eax, eax, 0x4533c948
cmp eax, 0x10bc80b6
jbe 0x1400a600a
mov rcx, qword [rsp + 0x80]
mov eax, dword [0x140254e60]
xor eax, 0xe10bd0d5
mov edx, dword [0x140254e64]
and eax, eax
xor eax, 0xffffffff
and edx, edx
xor edx, 0xffffffff
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x8687ceb2
mov r8d, 0xffffffff
xor r8d, 0x8687ceb2
and eax, r8d
sub eax, edx
add eax, 0xecc3087b
or eax, 0xe0c50111
mov r9, qword [rcx]
mov rcx, r9
add rcx, 0xffffffffffffffff
mov qword [rsp + 0x50], rcx
mov r8, rcx
xor r8, 0xffffffffffffffff
mov rdx, r9
and rdx, r8
xor r9, 0xffffffffffffffff
mov r8, rcx
and r8, r9
or rdx, r8
movabs r8, 0xce764876d5dae176
movabs r9, 0xce764876d5dae176
xor r8, r9
cmp rdx, r8
setl r8b
cmp rcx, 0xffffffffffffffff
setg cl
xor edx, edx
xor dl, 1
xor cl, dl
xor r8b, 0xff
mov dl, 1
xor dl, 1
or cl, r8b
or dl, 1
mov r8b, 1
xor r8b, 0
xor cl, r8b
and cl, dl
mov byte [rsp + 0x5f], cl
cmp eax, 0xbef6a510
je 0x1400a5c8d
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x1400a5d6f
jmp 0x1400a5d79
call fcn.140007e9d
jmp 0x1400a5fed
mov edx, dword [0x140254e68]
mov ecx, dword [0x140254e6c]
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
or ecx, ecx
mov edx, 0x203a6c4c
xor edx, 0xdfc593b3
xor ecx, edx
or eax, ecx
xor eax, 0xffffffff
add eax, 0x2dd9c7a3
or eax, eax
mov ecx, 0x19b2d6e9
xor ecx, 0xe64d2916
xor eax, ecx
mov ecx, 0xce978269
or ecx, 0xce978269
mov edx, 0xe56668a8
xor edx, 0x1a999757
xor ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x7d876538
xor edx, edx
div ecx
mov ecx, 0x3c5712ec
xor ecx, 0xa20a80c7
cmp eax, ecx
je 0x1400a6013
mov r9, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0xf0]
mov eax, dword [0x140254e70]
mov ecx, dword [0x140254e74]
xor eax, ecx
xor eax, 0xe32481da
imul eax, eax, 0x93e85768
xor eax, 0x6386b2cc
add eax, 0x6d47e24b
mov ecx, 0xc97c2243
mov r8, qword [r8]
not r8
not rdx
or r8, rdx
xor r8, 0xffffffffffffffff
mov qword [rsp + 0x38], r8
setns dl
mov r9, qword [r9]
mov qword [rsp + 0x40], r9
sub r8, r9
setl r8b
and dl, r8b
mov byte [rsp + 0x4f], dl
cmp eax, ecx
jb 0x1400a6013
mov al, byte [rsp + 0x4f]
test al, 1
jne 0x1400a5e8c
jmp 0x1400a5e74
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffff
call fcn.140013507
jmp 0x1400a5fed
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
shl rcx, 4
lea rcx, [rax + rcx + 8]
call fcn.14001d63d
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax]
mov rdx, rcx
dec rdx
mov qword [rsp + 0x30], rdx
test rdx, rdx
setns al
or rcx, rdx
sets cl
add al, cl
inc al
test al, 1
jne 0x1400a5edd
jmp 0x1400a5ee7
call fcn.140007e9d
jmp 0x1400a5fed
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xf0]
mov r8, qword [rdx]
xor r9, 0xffffffffffffffff
mov rdx, r8
xor rdx, r9
and rdx, r8
mov qword [rcx], rdx
movabs rcx, 0xf58b6a56ac3133fe
movabs rdx, 0xf58b6a56ac3133ff
xor rcx, rdx
add rax, rcx
mov qword [rsp + 0x90], rax
jmp 0x1400a5bcb
mov r8, qword [rsp + 0x138]
mov rax, qword [rsp + 0x108]
mov r9, qword [rax]
mov rdx, r9
sub rdx, r8
mov qword [rsp + 0x28], rdx
mov rcx, rdx
xor rcx, 0xffffffffffffffff
mov rax, r9
and rax, rcx
movabs rcx, 0xf16ef392abd45100
movabs r10, 0xe910c6d542baeff
xor rcx, r10
xor r9, rcx
mov rcx, rdx
and rcx, r9
or rax, rcx
cmp rax, 0
setl al
mov r9, rdx
xor r9, 0xffffffffffffffff
mov rcx, r8
and rcx, r9
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
movabs rdx, 0x44896342cc93f2f9
movabs r8, 0xbb769cbd336c0d06
xor rdx, r8
cmp rcx, rdx
setg cl
and al, cl
test al, 1
jne 0x1400a5fd3
jmp 0x1400a5fdd
call fcn.140007e9d
jmp 0x1400a5fed
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x28]
mov qword [rax], rcx
add rsp, 0x140
pop rbx
pop rdi
pop rsi
ret
outsb dx, byte [rsi]
sub esp, esp
sub ecx, 0xfffff829
invalid
movsq qword [rdi], qword [rsi]
or edi, dword [rax - 0x38517]
jmp qword [rbp - 0x16388343]
movsd dword [rdi], dword [rsi]
mov ebp, 0xd4e9c77c
std
invalid