Function at 0x140123580
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x128
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rcx
call fcn.14012322f
mov rcx, qword [rsp + 0xf8]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x120], 0
mov rcx, qword [rcx]
mov qword [rsp + 0x108], rcx
cmp byte [rax], 0
jne 0x140124214
mov rax, qword [rsp + 0xf0]
cmp rax, 0
jge 0x14012361e
mov rcx, qword [rsp + 0xf0]
movabs rdx, 0xe58118e805c46a7d
movabs rax, 0xe58118e805c46a7d
xor rdx, rax
movabs r8, 0xd1310c612c6fb77e
movabs rax, 0xaecef39ed3904881
xor r8, rax
call fcn.14000f6ec
jmp 0x140124214
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xf8]
call fcn.140123250
mov rcx, rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xe8], rcx
cmp byte [rax], 0
jne 0x140124214
mov eax, dword [0x1401f9680]
sub eax, dword [0x1401f9684]
mov ecx, 0x7bf99930
xor ecx, 0x90d515b5
add eax, ecx
mov ecx, 0xa98d2d8a
xor ecx, 0x1e877702
sub eax, ecx
mov ecx, 0x9257dc37
xor ecx, 0x797b50b2
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x5503714d
xor edx, 0x3d382ac1
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x683b5b8c
and eax, edx
sub eax, ecx
mov ecx, eax
and ecx, 0xfae665d8
xor ecx, 0xffffffff
add eax, 0xfae665d8
add eax, 1
add eax, ecx
cmp eax, 0x1630fe08
jbe 0x14012421d
mov rax, qword [rsp + 0xe8]
mov ecx, dword [0x1401f9688]
xor ecx, dword [0x1401f968c]
and ecx, 0xf658af45
mov r9d, 0xad8dcfa3
xor r9d, 0x9f8d31f7
mov edx, 0x6f88aede
xor edx, 0x90775121
xor r9d, edx
mov r8d, ecx
and r8d, r9d
mov edx, ecx
or edx, r9d
mov r9d, 0x74f69b08
xor r9d, 0x8b0964f7
xor edx, r9d
imul edx, r8d
mov r8d, ecx
and r8d, 0x3200fe54
mov r9d, 0xe86101c2
xor r9d, 0xda61ff96
or ecx, r9d
imul ecx, r8d
add ecx, edx
mov edx, ecx
and edx, 0xe54330e6
shl edx, 1
add ecx, 0xe54330e6
sub ecx, edx
mov dword [rsp + 0xe0], ecx
mov rdx, qword [rax]
mov r8b, 1
xor r8b, 1
and r8b, 1
lea rcx, [rsp + 0x120]
call fcn.140125d50
mov rcx, qword [rsp + 0x100]
mov eax, dword [rsp + 0xe0]
mov cl, byte [rcx]
mov dl, 0xe2
xor dl, 0xe2
cmp cl, dl
sete cl
mov byte [rsp + 0xe7], cl
cmp eax, 0xfae54dac
jae 0x14012421d
mov al, byte [rsp + 0xe7]
test al, 1
jne 0x1401237ad
jmp 0x140124214
mov rcx, qword [rsp + 0xf0]
lea rdx, [rsp + 0x118]
call fcn.140124260
test al, 1
jne 0x1401237cf
jmp 0x1401237d9
call fcn.1400091c0
jmp 0x140124214
mov rax, qword [rsp + 0x118]
movabs rdx, 0x8e94fe0278a15cb7
movabs rcx, 0x8e94fe0278a15cb7
xor rdx, rcx
sub rdx, rax
movabs rcx, 0xb3f0b5df680e47b9
movabs r8, 0xb3f0b5df680e47b9
xor rcx, r8
movabs r8, 0x1f0d9d1bab9bc9f1
movabs r9, 0x1f0d9d1bab9bc9f0
xor r8, r9
sub rcx, r8
add rdx, rcx
movabs rcx, 0x9daecce29182c385
movabs r8, 0x9daecce29182c385
xor rcx, r8
sub rcx, rdx
mov qword [rsp + 0xd8], rcx
movabs r8, 0xe095852b9fce636b
movabs rdx, 0x1f6a7ad460319c94
xor r8, rdx
mov rdx, rax
xor rdx, r8
and rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rax, r8
or rdx, rax
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jl 0x1401238d3
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xf8]
add rdx, 8
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
jmp 0x1401238dd
call fcn.1400091c0
jmp 0x140124214
mov rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rax
cmp rax, rcx
jge 0x140123f86
mov rcx, qword [rsp + 0xb8]
movabs rdx, 0x43f5d6fe838c6d50
movabs rax, 0x43f5d6fe838c6d51
xor rdx, rax
mov rax, rcx
add rax, rdx
mov qword [rsp + 0xa8], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0x612f558d95a46943
movabs rdx, 0x612f558d95a46943
xor rcx, rdx
cmp rax, rcx
jge 0x14012396c
call fcn.1400091c0
jmp 0x140123f62
mov eax, dword [0x1401f9690]
xor eax, dword [0x1401f9694]
and eax, 0x3577977f
xor eax, 0xeb7b6a32
mov ecx, 0x8841cefa
xor ecx, 0x6dc32394
xor edx, edx
div ecx
mov ecx, 0x55b7113b
xor ecx, 0xe4552713
cmp eax, ecx
jae 0x140124226
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x108]
mov eax, dword [0x1401f9698]
xor eax, 0xa045f890
sub eax, dword [0x1401f969c]
mov ecx, 0x3530c453
xor ecx, 0x3f6baf5f
sub eax, ecx
mov r9d, 0xffffffff
xor r9d, 0x52b7e00c
mov ecx, eax
and ecx, r9d
mov r10d, 0x687696c4
xor r10d, 0x3ac176c8
mov r9d, eax
xor r9d, r10d
add eax, r9d
sub eax, ecx
sub eax, 0x2800fe4e
mov ecx, 0xd1b52a96
xor ecx, 0xbce4ea82
cmp rdx, r8
setl dl
mov byte [rsp + 0xa7], dl
cmp eax, ecx
je 0x140124226
mov rax, qword [rsp + 0xb8]
mov cl, byte [rsp + 0xa7]
test cl, 1
mov qword [rsp + 0x98], rax
jne 0x140123a46
jmp 0x140123cca
mov rax, qword [rsp + 0xb8]
movabs rcx, 0x5ae23b1d17bd670a
movabs rdx, 0x5ae23b1d17bd670a
xor rcx, rdx
cmp rax, rcx
jge 0x140123b36
mov eax, dword [0x1401f96a0]
xor eax, 0x548c42d3
add eax, dword [0x1401f96a4]
add eax, 0xf4eaaa60
xor ecx, ecx
sub ecx, 0xe8199e88
sub eax, ecx
mov ecx, 0x383a2c90
xor ecx, 0x43555a85
sub eax, ecx
mov ecx, 0x5fcca36f
xor ecx, 0xaefb96c2
add eax, ecx
add eax, 0x7b6f7615
cmp eax, 0x1a1a06ed
jbe 0x14012422f
mov rcx, qword [rsp + 0xb8]
mov eax, dword [0x1401f96a8]
mov edx, dword [0x1401f96ac]
mov r8d, 0xe6aea88e
xor r8d, 0x13b761b3
xor edx, r8d
sub eax, edx
mov edx, 0xfef92129
xor edx, 0xb727342e
sub eax, edx
add eax, 0x3bf3b794
mov edx, eax
and edx, 0x8d3c532e
xor edx, 0xffffffff
add eax, 0x8d3c532e
add eax, 1
add eax, edx
mov dword [rsp + 0x94], eax
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000f6ec
mov eax, dword [rsp + 0x94]
cmp eax, 0xf0429540
je 0x140123ab8
jmp 0x140123f62
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xf8]
call fcn.140123250
mov rcx, rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x88], rcx
cmp byte [rax], 0
jne 0x140123f62
mov eax, dword [0x1401f96b0]
xor eax, 0xc4378bb7
mov ecx, dword [0x1401f96b4]
xor ecx, 0x7f593640
or eax, ecx
mov edx, 0x8eb151bd
xor edx, 0xc9a05962
mov ecx, eax
xor ecx, edx
mov edx, 0x541a737
xor edx, 0xfabe58c8
xor ecx, edx
and ecx, 0x471108df
shl ecx, 1
mov edx, 0xd849a16
xor edx, 0x4a9592c9
sub ecx, edx
sub eax, ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x3d18660c
add eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x4b36ac76
add ecx, eax
xor eax, eax
sub eax, ecx
cmp eax, 0x7fc4e9b8
je 0x140124238
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xf8]
mov r8d, dword [0x1401f96b8]
mov eax, dword [0x1401f96bc]
xor eax, 0x905607d7
or r8d, eax
mov eax, 0xb08d48b2
xor eax, 0xaadf3d29
or r8d, eax
mov eax, r8d
and eax, 0x585b290c
xor r8d, 0x585b290c
or eax, r8d
imul eax, eax, 0x825fa627
mov dword [rsp + 0x74], eax
call fcn.140123250
mov rcx, qword [rsp + 0x100]
mov rdx, rax
mov eax, dword [rsp + 0x74]
mov qword [rsp + 0x78], rdx
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x87], cl
cmp eax, 0xb0e9641f
ja 0x140123bdf
mov al, byte [rsp + 0x87]
test al, 1
jne 0x140123c72
jmp 0x140123f62
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx]
mov rdx, qword [rax]
call fcn.140123392
mov cl, al
mov rax, qword [rsp + 0x100]
mov byte [rsp + 0x73], cl
mov al, byte [rax]
mov cl, 0x48
xor cl, 0x48
cmp al, cl
jne 0x140123f62
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xa8]
mov dl, byte [rsp + 0x73]
test dl, 1
cmovne rax, rcx
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x60], rdx
mov rcx, qword [rcx]
mov qword [rsp + 0x68], rcx
cmp rax, rcx
jl 0x140123d43
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x68]
movabs rax, 0x80df716d3cb994be
sub rdx, rax
movabs rax, 0xf441632f5d408818
movabs r8, 0xbbe9cd0a2bf77e7
xor rax, r8
add rdx, rax
movabs rax, 0x80df716d3cb994be
add rdx, rax
call fcn.140016582
jmp 0x140123f62
mov rax, qword [rsp + 0x60]
movabs rcx, 0x949fa44205ac62ae
movabs rdx, 0x949fa44205ac62ae
xor rcx, rdx
cmp rax, rcx
jge 0x140123d85
mov rcx, qword [rsp + 0x60]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000f6ec
jmp 0x140123f62
mov eax, dword [0x1401f96c0]
mov edx, dword [0x1401f96c4]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x3af8b9d0
xor edx, edx
div ecx
mov ecx, 0x57909b70
xor ecx, 0x767be551
xor edx, edx
div ecx
mov ecx, 0x536d9303
xor ecx, 0x7ba2ffa8
add eax, ecx
mov ecx, 0xee94854f
xor ecx, 0x7315387e
cmp eax, ecx
je 0x140124241
mov rcx, qword [rsp + 0xf8]
mov edx, dword [0x1401f96c8]
mov r8d, dword [0x1401f96cc]
mov r9d, 0xaf1c0c12
xor r9d, 0xaf1c0c13
mov eax, edx
add eax, r9d
xor edx, 0xffffffff
or edx, r8d
add edx, eax
mov eax, edx
and eax, 0x21722265
xor edx, 0x21722265
or eax, edx
mov edx, eax
xor edx, 0x22a629d6
mov r8d, 0xffffffff
xor r8d, 0x22a629d6
and eax, r8d
shl eax, 1
sub eax, edx
mov r8d, 0x3036b3d
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x4c], eax
call fcn.140123250
mov rcx, qword [rsp + 0x100]
mov rdx, rax
mov eax, dword [rsp + 0x4c]
mov qword [rsp + 0x50], rdx
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x5f], cl
cmp eax, 0x8da7965
jae 0x140124241
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x140123e85
jmp 0x140123f62
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xc0]
mov rcx, qword [rcx]
add rcx, 8
shl rdx, 3
add rcx, rdx
mov rdx, qword [rax]
mov r8d, 1
call fcn.140125d50
mov rax, qword [rsp + 0x100]
cmp byte [rax], 0
jne 0x140123f62
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x110]
call fcn.140124260
test al, 1
jne 0x140123ee6
jmp 0x140123ef0
call fcn.1400091c0
jmp 0x140123f62
mov rdx, qword [rsp + 0x110]
movabs rcx, 0x91b80ebdb6b78025
mov rax, rdx
sub rax, rcx
movabs rcx, 0xc88e8fd2dbcb084e
movabs r8, 0xc88e8fd2dbcb084f
xor rcx, r8
add rax, rcx
movabs rcx, 0x91b80ebdb6b78025
add rax, rcx
mov qword [rsp + 0x40], rax
mov rcx, rdx
xor rcx, 0xffffffffffffffff
and rcx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140123f67
call fcn.1400091c0
jmp 0x140124214
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
jmp 0x1401238dd
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xf8]
mov rcx, qword [rcx]
mov qword [rsp + 0x38], rcx
cmp rax, rcx
jl 0x14012407f
mov eax, dword [0x1401f96d0]
mov r8d, dword [0x1401f96d4]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x405e23e2
xor edx, edx
div ecx
and eax, 0xafa5ef3
mov edx, 0xcbd99c99
xor edx, 0x34266366
mov ecx, eax
xor ecx, edx
mov edx, 0x930f2717
xor edx, 0xa84263a7
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x3b4d44b0
and eax, edx
sub eax, ecx
mov ecx, 0x85831aa7
xor ecx, 0xd6e1a212
cmp eax, ecx
jbe 0x14012424a
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x38]
mov eax, dword [0x1401f96d8]
xor eax, 0x183cee73
sub eax, dword [0x1401f96dc]
mov r8d, 0xc486b7e2
xor r8d, 0xdb7e5ffa
or eax, r8d
and eax, 0x3f3fc519
and eax, 0x1de84800
mov dword [rsp + 0x34], eax
add rdx, 0xffffffffffffffff
call fcn.140016582
mov eax, dword [rsp + 0x34]
cmp eax, 0xb7553a6b
ja 0x14012424a
jmp 0x140124214
mov ecx, dword [0x1401f96e0]
imul ecx, dword [0x1401f96e4]
mov eax, 0x41a1167a
xor eax, 0x15884c6d
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x846439c7
mov edx, 0xffffffff
xor edx, 0x846439c7
and ecx, edx
or eax, ecx
add eax, 0xc0a69376
mov ecx, 0x8bfae58a
xor ecx, 0xf186afde
cmp eax, ecx
ja 0x140124253
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xc0]
mov r9d, dword [0x1401f96e8]
add r9d, dword [0x1401f96ec]
mov r10d, r9d
xor r10d, 0xffffffff
and r10d, 0xd8377cd0
mov r11d, 0xffffffff
xor r11d, 0xd8377cd0
and r9d, r11d
mov edx, 0xffffffff
xor edx, 0x64f08371
mov r8d, 0xf3a0fe62
xor r8d, 0x2b9782b2
and edx, r8d
mov r8d, 0x89215f8c
xor r8d, 0xedd1dcfd
and r8d, r11d
or r10d, r9d
or edx, r8d
xor r10d, edx
mov edx, r10d
xor edx, 0xffffffff
and edx, 0x2bdec410
mov r9d, 0xe1fb0eac
xor r9d, 0xca25cabc
mov r8d, 0x5bad9a9b
xor r8d, 0xa4526564
xor r9d, r8d
and r10d, r9d
mov r8d, 0xa7ac9d5
xor r8d, 0x71459b97
mov r11d, 0xec02b2c4
xor r11d, 0x13fd4d3b
xor r8d, r11d
and r8d, 0x2bdec410
and r9d, 0x7b3f5242
or edx, r10d
or r8d, r9d
xor edx, r8d
xor r8d, r8d
sub r8d, 0x4369e64f
add edx, r8d
mov dword [rsp + 0x2c], edx
mov rcx, qword [rcx]
add rcx, 8
shl rax, 3
add rcx, rax
mov rdx, qword [rsp + 0x120]
call fcn.140125ebc
mov rcx, qword [rsp + 0x100]
mov eax, dword [rsp + 0x2c]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x33], cl
cmp eax, 0xeeaebada
ja 0x1401240c9
mov al, byte [rsp + 0x33]
test al, 1
jne 0x1401241f7
jmp 0x140124214
mov r8, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xf8]
call fcn.140122630
nop
add rsp, 0x128
ret
lea esp, [rax]
and dword [rdx - 0x17], 0xffffff9d
hlt
loopne 0x1401242a7
pop rdi
jmp 0x1401239a4
invalid
push rdx
invalid
mov esp, 0xe94a887f
invalid
mov eax, edi
adc edi, dword [rcx - 0x17]
sar ebp, cl
invalid
insb byte [rdi], dx
pop rdx
rcl ebp, 1
jmp 0x1401240c9
mov al, byte [0x1291242ad]
add byte [r8], al
add dl, dh
movups xmm1, xmmword [rsp + 0x48]