Function at 0x1400d3120
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x110
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x1c], r9d
mov qword [rbp + 0x38], r8
mov qword [rbp + 0x20], rdx
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x28], rcx
mov eax, 0x10
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
sub rsp, 0x20
call fcn.1400d08f7
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
mov qword [rbp + 0x50], rax
movabs rdx, 0xa8798a124a09901
movabs rax, 0xa8798a124a09919
xor rdx, rax
sub rsp, 0x20
call fcn.1400d0920
add rsp, 0x20
mov dword [rbp + 0x8c], 0x20
movabs rcx, 0x6b3681c7cfd3d1f6
movabs rax, 0x6b3681c7cfd3d1d6
xor rcx, rax
sub rsp, 0x20
call fcn.14000c804
mov r8, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov qword [rbp + 0x48], rax
mov eax, 0x19487be5
xor eax, 0x19487be5
mov dword [rbp + 0x88], eax
mov rax, qword [r8]
mov qword [rcx], rax
mov rax, qword [r8 + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.1400d0a90
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x58], rcx
cmp byte [rax], 0
jne 0x1400d3925
mov r10, qword [rbp + 0x48]
mov r9d, dword [rbp + 0x1c]
mov r8, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x20]
xor eax, eax
mov edx, eax
lea r11, [rbp + 0x88]
lea rax, [rbp + 0x8c]
sub rsp, 0x40
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x30], rax
call fcn.1400a01f9
add rsp, 0x40
mov ecx, eax
mov rax, qword [rbp + 0x50]
mov dword [rbp + 0x18], ecx
cmp byte [rax], 0
jne 0x1400d3925
mov rax, qword [rbp + 0x48]
mov ecx, dword [rbp + 0x18]
cmp ecx, 0xea
mov dword [rbp + 0xc], ecx
mov qword [rbp + 0x10], rax
jne 0x1400d333d
mov ecx, dword [rbp + 0x8c]
movsxd rax, ecx
mov qword [rbp - 8], rax
cmp ecx, 0
mov qword [rbp], rax
jl 0x1400d38e6
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp + 0x48]
sub rsp, 0x20
call fcn.14000e209
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x18], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x78], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x80], rax
lea rcx, [rbp + 0x78]
sub rsp, 0x20
call fcn.1400d0a90
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp - 0x10], rcx
cmp byte [rax], 0
jne 0x1400d3925
mov r10, qword [rbp - 0x18]
mov r9d, dword [rbp + 0x1c]
mov r8, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x20]
xor eax, eax
mov edx, eax
lea r11, [rbp + 0x88]
lea rax, [rbp + 0x8c]
sub rsp, 0x40
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x30], rax
call fcn.1400a01f9
mov rdx, qword [rbp + 0x50]
add rsp, 0x40
mov ecx, eax
mov rax, qword [rbp - 0x18]
cmp byte [rdx], 0
mov dword [rbp + 0xc], ecx
mov qword [rbp + 0x10], rax
jne 0x1400d3925
mov eax, dword [rbp + 0xc]
mov rcx, qword [rbp + 0x10]
mov qword [rbp - 0x28], rcx
mov dword [rbp - 0x1c], eax
mov ecx, dword [0x1401f8d30]
mov edx, dword [str.mcdB1]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
imul r8d, eax, 0x4424269
mov eax, 0x4019c424
xor eax, 0x2fa96c44
add r8d, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x60a5ca92
mov r9d, 0xffffffff
xor r9d, 0x60a5ca92
and r8d, r9d
mov ecx, 0xffffffff
xor ecx, 0xe1a89274
and ecx, 0x60a5ca92
mov edx, 0xa651a294
xor edx, 0x47f930e0
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
cmp eax, 0x4a9c431a
je 0x1400d39b5
mov ecx, dword [rbp - 0x1c]
mov eax, dword [0x1401f8d38]
xor eax, 0x2e85a6f2
xor edx, edx
div dword [0x1401f8d3c]
mov r8d, 0x538078dc
xor edx, edx
div r8d
xor eax, 0xa78baafe
and eax, 0x9326fe26
mov edx, 0x21bf4fe0
xor edx, 0x21bf4fe0
cmp ecx, edx
sete cl
mov byte [rbp - 0x29], cl
cmp eax, 0xa8aa3cfb
je 0x1400d33d3
mov al, byte [rbp - 0x29]
test al, 1
jne 0x1400d3750
jmp 0x1400d342c
mov ecx, dword [0x1401f8d40]
xor ecx, 0x483cb837
mov edx, dword [0x1401f8d44]
xor ecx, 0xffffffff
mov eax, 0x6abcff37
xor eax, 0x954300c8
xor edx, eax
mov eax, 0xaf2dd004
xor eax, 0x97c715c2
mov r8d, 0x4e74532d
xor r8d, 0xb18bacd2
xor eax, r8d
or ecx, edx
or eax, 0x38eac5c6
xor ecx, 0xffffffff
and ecx, eax
mov eax, ecx
and eax, 0x7f37e3f3
xor eax, 0xffffffff
add ecx, 0x7f37e3f3
add ecx, 1
add ecx, eax
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x76e2f52b
mov r8d, 0x7208ca37
xor r8d, 0x4ea3f1c
mov r9d, 0x35c5e2a0
xor r9d, 0xca3a1d5f
xor r8d, r9d
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x76e2f52b
and ecx, edx
or eax, ecx
mov ecx, 0xaf00c815
xor ecx, 0x50ff37ea
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0x28e2546f
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x28e2546f
add eax, edx
sub eax, ecx
cmp eax, 0x999d52f6
je 0x1400d39be
mov rcx, qword [rbp - 0x28]
mov eax, dword [0x1401f8d48]
xor eax, 0x24fe58fa
mov r8d, dword [0x1401f8d4c]
xor r8d, 0x955a1555
xor edx, edx
div r8d
xor eax, 0x6fb76fa6
mov r8d, 0xb75a3434
xor r8d, 0x11ca1e5
mov edx, eax
xor edx, r8d
xor edx, 0xffffffff
or eax, 0xb64695d1
and eax, edx
mov r8d, 0xca387392
xor r8d, 0xae772ec4
xor edx, edx
div r8d
mov dword [rbp - 0x30], eax
mov eax, 0x5391c6e
xor eax, 0x7c6eaf98
mov dword [rbp - 0x34], eax
sub rsp, 0x20
call fcn.14001d896
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
movabs rdx, 0xca66402aca61f178
movabs rax, 0xca66402aca61f160
xor rdx, rax
sub rsp, 0x20
call fcn.1400d0920
mov rdx, qword [rbp + 0x50]
mov ecx, dword [rbp - 0x34]
mov eax, dword [rbp - 0x30]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x2a], dl
cmp eax, ecx
ja 0x1400d3507
mov al, byte [rbp - 0x2a]
test al, 1
jne 0x1400d35cc
jmp 0x1400d3925
mov eax, dword [0x1401f8d50]
sub eax, dword [0x1401f8d54]
mov r11d, eax
and r11d, 0x27017c83
mov ecx, 0x51de9b06
xor ecx, 0x76dfe785
or eax, ecx
add r11d, eax
and r11d, 0xad42682c
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0x8555211f
xor r8d, 0xafd542f1
mov eax, 0x6e2b5198
xor eax, 0x91d4ae67
xor r8d, eax
mov edx, 0xffffffff
xor edx, 0x10cc2c03
mov eax, ecx
and eax, 0x10cc2c03
and r11d, edx
mov r10d, 0x543f558c
xor r10d, 0x44f3798f
mov r9d, r8d
and r9d, r10d
mov r10d, edx
and r10d, 0x2a8063ee
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x10cc2c03
and ecx, edx
or eax, ecx
cmp eax, 0xf1e8d3e9
ja 0x1400d39c7
mov rdx, qword [rbp + 0x38]
mov ecx, dword [0x1401f8d58]
mov r8d, dword [0x1401f8d5c]
xor r8d, 0xffffffff
mov eax, ecx
xor eax, r8d
and eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov r8d, eax
xor r8d, 0xffffffff
or ecx, r8d
and ecx, 0xa800cb0c
mov r8d, 0xa1d1d4c2
xor r8d, 0x5e2e2b3d
xor ecx, r8d
mov r8d, 0xffffffff
xor r8d, 0xa800cb0c
mov r9d, 0xffffffff
xor r9d, 0xa800cb0c
or r8d, r9d
and eax, r8d
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
mov r8d, 0x9b096a15
xor r8d, 0x6e20e7ba
mov eax, ecx
and eax, r8d
xor ecx, 0xf5298daf
or eax, ecx
add eax, 0xedd25c82
mov ecx, 0x5c86e04d
xor ecx, 0x8f5a4337
mov rdx, qword [rdx + 8]
mov qword [rbp - 0x40], rdx
cmp rdx, 0
sete dl
mov byte [rbp - 0x35], dl
cmp eax, ecx
je 0x1400d366f
mov al, byte [rbp - 0x35]
test al, 1
jne 0x1400d39a8
jmp 0x1400d372c
mov rax, qword [rbp - 0x40]
movabs rcx, 0x4000000000000000
and rcx, qword [rax]
cmp rcx, 0
mov qword [rbp - 0x48], rax
je 0x1400d3997
jmp 0x1400d39a8
mov ecx, dword [0x1401f8d60]
xor ecx, dword [0x1401f8d64]
mov eax, ecx
and eax, 0xd567d20a
mov edx, 0xd103e645
xor edx, 0x464344f
xor ecx, edx
or eax, ecx
and eax, 0xd6830ce0
mov ecx, 0x520b312b
xor ecx, 0xe3e92d03
xor edx, edx
div ecx
cmp eax, 0xd0773ae9
je 0x1400d39d0
mov eax, dword [0x1401f8d68]
mov edx, dword [0x1401f8d6c]
mov ecx, 0x7b4ce012
xor ecx, 0x84b31fed
xor eax, ecx
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x17a2df3d
or eax, edx
or ecx, 0x17a2df3d
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0xb1aa4a90
xor ecx, 0x9599887b
xor edx, edx
div ecx
sub eax, 0x8fdc80d6
mov ecx, 0xffffffff
xor ecx, 0x747f6239
add eax, ecx
add eax, 1
mov ecx, dword [rbp + 0x8c]
movsxd rdx, ecx
mov qword [rbp - 0x58], rdx
mov edx, 0xd55191e4
xor edx, 0xd55191e4
cmp ecx, edx
setl cl
mov byte [rbp - 0x49], cl
cmp eax, 0x36f3c8b7
jbe 0x1400d3791
mov rax, qword [rbp - 0x58]
mov cl, byte [rbp - 0x49]
test cl, 1
mov qword [rbp], rax
jne 0x1400d38e6
jmp 0x1400d382d
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.14000e209
add rsp, 0x20
mov qword [rbp - 0x68], rax
mov eax, dword [rbp + 0x8c]
mov dword [rbp - 0x5c], eax
lea rcx, [rbp + 0x60]
mov edx, 0x18
sub rsp, 0x20
call fcn.1400d0920
mov r8, qword [rbp - 0x68]
mov edx, dword [rbp - 0x5c]
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov r9b, 0x7a
xor r9b, 0x7b
mov byte [rbp + 0x70], r9b
mov qword [rbp + 0x60], r8
mov dword [rbp + 0x68], edx
mov rdx, qword [rbp + 0x60]
mov qword [rcx], rdx
mov rdx, qword [rbp + 0x68]
mov qword [rcx + 8], rdx
mov rdx, qword [rbp + 0x70]
mov qword [rcx + 0x10], rdx
mov al, byte [rax]
mov cl, 0x35
xor cl, 0x35
cmp al, cl
jne 0x1400d3925
mov rax, qword [rbp + 0x38]
mov rax, qword [rax + 8]
mov qword [rbp - 0x70], rax
cmp rax, 0
je 0x1400d39a8
mov rax, qword [rbp - 0x70]
movabs rcx, 0x4000000000000000
and rcx, qword [rax]
cmp rcx, 0
mov qword [rbp - 0x48], rax
je 0x1400d3997
jmp 0x1400d39a8
mov rcx, qword [rbp]
movabs rdx, 0x6ff8974967757d56
movabs rax, 0x6ff8974967757d56
xor rdx, rax
movabs r8, 0x319d73d301c417b7
movabs rax, 0x4e628c2cfe3be848
xor r8, rax
sub rsp, 0x20
call fcn.14000e57e
add rsp, 0x20
mov rax, qword [rbp + 0x38]
mov rax, qword [rax + 8]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x1400d39a8
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax]
movabs r8, 0x4000000000000000
mov rdx, rcx
xor rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x681a3341428c85de
movabs r9, 0x281a3341428c85de
xor r8, r9
or rcx, r8
and rcx, rdx
movabs rdx, 0x54ea5565bb473dbd
movabs r8, 0x54ea5565bb473dbd
xor rdx, r8
cmp rcx, rdx
mov qword [rbp - 0x48], rax
jne 0x1400d39a8
invalid
mov rcx, qword [rbp - 0x48]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
dec dword [rax - 0x7d]
invalid
mov rax, qword [rbp + 0x28]
lea rsp, [rbp + 0x90]
pop rbp
ret
jrcxz 0x1400d397b
cmpsb byte [rsi], byte [rdi]
jnp 0x1400d39a3
adc eax, 0xa3fffffa
sbb ah, byte [rbp + 8]
jmp 0x1400d3507
movabs dword [0xfffffb40e908651a], eax
invalid
mov cl, 0x63
invalid