Function at 0x1401a0340
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1b0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], rcx
mov eax, 0x10
mov qword [rbp + 0x50], rax
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x60], rax
sub rsp, 0x20
call fcn.1401a7c51
add rsp, 0x20
mov qword [rbp + 0x70], rax
add rax, 0x60
mov qword [rbp + 0x68], rax
mov word [rbp + 0x12e], 0x475
lea rcx, [rbp + 0x12e]
sub rsp, 0x20
call fcn.140062840
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x78], rcx
cmp byte [rax + 0x60], 0
jne 0x1401a0ce0
mov rdx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x78]
mov rcx, qword [0x1401dda18]
mov r8, qword [rcx]
mov qword [rdx], r8
mov rcx, qword [rcx + 8]
mov qword [rdx + 8], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x108], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x110], rax
lea rcx, [rbp + 0x118]
lea r8, [rbp + 0x108]
sub rsp, 0x20
call fcn.14019d3cc
mov rax, qword [rbp + 0x68]
add rsp, 0x20
mov rcx, qword [rbp + 0x118]
mov qword [rbp + 0x20], rcx
mov rcx, qword [rbp + 0x120]
mov qword [rbp + 0x28], rcx
cmp byte [rax], 0
jne 0x1401a0ce0
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.14000f990
add rsp, 0x20
mov qword [rbp], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.14001be40
add rsp, 0x20
mov qword [rbp + 8], rax
mov ax, 0x116b
xor ax, 0x119f
mov word [rbp + 0x12c], ax
lea rcx, [rbp + 0x12c]
sub rsp, 0x20
call fcn.140062840
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov qword [rbp + 0x10], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x1f], al
jne 0x1401a0c7e
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp + 0xe8], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xf8]
lea rdx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.14001c072
mov rax, qword [rbp + 8]
add rsp, 0x20
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x100]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0xa3
sub rsp, 0x20
call fcn.140062d70
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 8]
mov dword [rax + 0x10], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x1f], al
jne 0x1401a0c7e
mov r11d, dword [0x1401d2ca0]
xor r11d, 0x8dabc1b9
mov ecx, dword [0x1401d2ca4]
xor ecx, 0x8b2860d
mov eax, r11d
xor eax, ecx
xor ecx, 0xffffffff
and r11d, ecx
shl r11d, 1
sub r11d, eax
mov eax, r11d
xor eax, 0xffffffff
mov r8d, 0x3e9d5207
xor r8d, 0x282c4d20
mov ecx, 0x8b4a50ea
xor ecx, 0x74b5af15
xor r8d, ecx
mov edx, 0xffffffff
xor edx, 0x989a332e
mov ecx, eax
and ecx, 0x989a332e
and r11d, edx
mov r9d, r8d
and r9d, 0x989a332e
mov r10d, 0x2e974df0
xor r10d, 0x382652d7
and r10d, edx
or ecx, r11d
or r9d, r10d
xor ecx, r9d
or eax, r8d
xor eax, 0xffffffff
or edx, 0x989a332e
and eax, edx
or ecx, eax
mov eax, 0xcf7a56ce
xor eax, 0xf3be2d00
mov edx, ecx
xor edx, eax
xor edx, 0xffffffff
mov eax, 0x7e82397c
xor eax, 0x424642b2
and eax, edx
shl eax, 1
sub eax, 0x3cc47bce
sub ecx, eax
mov eax, 0xb42b28b1
xor eax, 0x4bd4d74e
mov edx, ecx
xor edx, eax
mov eax, 0x66e2f07c
xor eax, 0x9e690446
and eax, edx
mov edx, 0xffffffff
xor edx, 0xf88bf43a
and ecx, edx
or eax, ecx
mov ecx, 0x585684a
xor ecx, 0xd2287a0e
cmp eax, ecx
ja 0x1401a0d5f
mov eax, dword [0x1401d2ca8]
xor eax, 0xbc9c1ca1
add eax, dword [0x1401d2cac]
mov ecx, 0x56914bf2
xor ecx, 0x945875ec
xor eax, ecx
sub eax, 0x7fb8760b
or eax, 0xacda8557
mov dword [rbp - 8], eax
mov ecx, 0x7ba
sub rsp, 0x20
call fcn.140062d70
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov r8d, eax
mov eax, dword [rbp - 8]
mov dword [rdx + 0x14], r8d
cmp byte [rcx], 0
sete cl
mov byte [rbp - 1], cl
cmp eax, 0x7277e41d
jbe 0x1401a0659
mov cl, byte [rbp - 1]
mov al, 1
test cl, 1
mov byte [rbp + 0x1f], al
jne 0x1401a06d2
jmp 0x1401a0c7e
mov eax, dword [0x1401d2cb0]
xor edx, edx
div dword [0x1401d2cb4]
mov ecx, 0x1c9c1f20
xor ecx, 0x2ad4aa89
xor edx, edx
div ecx
xor eax, 0x6f8b1ad
add eax, 0x6741efe6
mov ecx, 0x8117ddc7
xor ecx, 0x26f0d98e
cmp eax, ecx
je 0x1401a0d68
mov rax, qword [rbp]
mov rcx, qword [rbp + 8]
mov r8d, dword [0x1401d2cb8]
mov edx, dword [0x1401d2cbc]
xor edx, 0x7accb2e3
or r8d, edx
sub r8d, 0xdb91870c
sub r8d, 0x7806d66b
add r8d, 0xdb91870c
mov edx, 0xe481f4ff
xor edx, 0x7ef29436
imul r8d, edx
mov edx, r8d
and edx, 0xbe4e67d2
xor r8d, 0xbe4e67d2
or edx, r8d
mov dword [rbp - 0x14], edx
mov qword [rax + 8], rcx
mov ecx, 0x684
sub rsp, 0x20
call fcn.140062d70
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp - 0x14]
mov dword [rbp - 0x10], edx
mov cl, byte [rcx]
mov dl, 0x2b
xor dl, 0x2b
cmp cl, dl
sete cl
mov byte [rbp - 9], cl
cmp eax, 0x1665f96d
je 0x1401a070c
mov cl, byte [rbp - 9]
mov al, 1
test cl, 1
mov byte [rbp + 0x1f], al
jne 0x1401a07b6
jmp 0x1401a0c7e
mov r8d, dword [rbp - 0x10]
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x20]
mov qword [rbp + 0xd8], rdx
mov qword [rbp + 0xe0], rcx
movabs rcx, 0xc99ff7bce760090d
movabs rdx, 0xc99ff7bce760090c
xor rcx, rdx
mov qword [rbp + 0xc8], rcx
mov qword [rbp + 0xd0], rax
lea rcx, [rbp + 0xd8]
lea rdx, [rbp + 0xc8]
sub rsp, 0x20
call fcn.14012da7b
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov qword [rbp - 0x20], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x1f], al
jne 0x1401a0c7e
mov eax, dword [0x1401d2cc0]
and eax, dword [0x1401d2cc4]
mov ecx, 0x9d30079e
xor ecx, 0x62cff861
xor eax, ecx
mov ecx, 0xca907670
xor ecx, 0x14684cf2
mov edx, 0x67a64923
xor edx, 0x9859b6dc
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xac60c53a
or eax, ecx
mov ecx, 0x1d5616fc
xor ecx, 0xb136d3c6
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xa34c4bf0
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0xb5078815
xor r8d, 0x164bc3e5
mov edx, eax
and edx, r8d
or eax, 0xa34c4bf0
imul eax, edx
add eax, ecx
mov r8d, 0xffffffff
xor r8d, 0x41f8457
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x41f8457
or eax, 0x41f8457
imul eax, edx
add eax, ecx
cmp eax, 0x882bee9a
je 0x1401a0d71
mov rcx, qword [rbp + 0x38]
mov eax, dword [0x1401d2cc8]
and eax, dword [0x1401d2ccc]
mov r8d, 0x28fa6bb2
xor r8d, 0xd705944d
mov edx, eax
xor edx, r8d
and edx, 0x3c0b02d6
mov r8d, 0xffffffff
xor r8d, 0x3c0b02d6
and eax, r8d
sub eax, edx
mov r8d, 0x9190974f
xor edx, edx
div r8d
mov edx, eax
xor edx, 0x2f37cee5
mov r8d, 0xffffffff
xor r8d, 0x2f37cee5
and eax, r8d
shl eax, 1
sub eax, edx
mov dword [rbp - 0x34], eax
mov word [rcx], 0xa72
sub rsp, 0x20
call fcn.140062840
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x34]
mov qword [rbp - 0x30], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x21], cl
cmp eax, 0xb7435909
je 0x1401a08ed
mov cl, byte [rbp - 0x21]
mov al, 1
test cl, 1
mov byte [rbp + 0x1f], al
jne 0x1401a099c
jmp 0x1401a0c7e
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp - 0x30]
mov rdx, qword [rax]
mov qword [rbp + 0xb8], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0xc0], rax
lea rdx, [rbp + 0xb8]
sub rsp, 0x20
call fcn.14001c072
mov rax, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x30]
add rsp, 0x20
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov rdx, qword [rdx]
add rdx, 0x18
mov qword [rbp - 0x40], rdx
mov qword [rbp + 0xa8], rcx
mov qword [rbp + 0xb0], rax
lea rcx, [rbp + 0x98]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x20]
add rsp, 0x20
lea r8, [rbp + 0xa8]
xor eax, eax
mov r9d, eax
lea rax, [rbp + 0x98]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.14012d690
mov rcx, qword [rbp + 0x68]
add rsp, 0x30
mov dword [rbp - 0x38], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x1f], al
jne 0x1401a0c7e
sub rsp, 0x20
mov cx, 0x851
call fcn.140062510
mov r8d, dword [rbp - 0x38]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x68]
mov al, byte [rax]
test al, al
sete cl
movsxd r8, r8d
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov byte [rbp - 0x41], al
jne 0x1401a0a92
jmp 0x1401a0c78
mov ecx, 0x30
mov edx, 8
sub rsp, 0x20
call fcn.14001be40
add rsp, 0x20
mov qword [rbp - 0x60], rax
mov qword [rax], 0
mov dword [rax + 8], 1
mov ecx, 0x12
sub rsp, 0x20
call fcn.140062d70
mov rdx, qword [rbp + 0x68]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x60]
mov dword [rax + 0xc], ecx
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x51], cl
mov qword [rbp - 0x50], rax
jne 0x1401a0c3c
movabs rcx, 0x23b713bb9694a197
movabs rax, 0x23b713bb9694a1b7
xor rcx, rax
movabs rdx, 0xb5d10c82a7159df3
movabs rax, 0xb5d10c82a7159dfb
xor rdx, rax
sub rsp, 0x20
call fcn.14001217d
add rsp, 0x20
mov qword [rbp - 0x70], rax
mov word [rbp + 0x96], 0xb11
lea rcx, [rbp + 0x96]
sub rsp, 0x20
call fcn.140062840
mov rdx, qword [rbp + 0x68]
add rsp, 0x20
mov qword [rbp - 0x68], rax
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x51], cl
mov qword [rbp - 0x50], rax
jne 0x1401a0c3c
mov rdx, qword [rbp + 0x58]
mov rax, qword [rbp - 0x68]
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x80]
sub rsp, 0x20
call fcn.14001c072
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rbp - 0x70]
add rsp, 0x20
mov r8, qword [rbp + 0x80]
mov rax, qword [rbp + 0x88]
mov qword [rdx + 8], r8
mov qword [rdx + 0x10], rax
sub rsp, 0x20
call fcn.140071e10
mov r8, qword [rbp + 0x60]
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp - 0x70]
add rsp, 0x20
mov r9, qword [r8]
mov qword [rdx + 0x10], r9
mov r8, qword [r8 + 8]
mov qword [rdx + 0x18], r8
mov dl, byte [rcx]
mov r8b, 0xf0
xor r8b, 0xf0
mov cl, 1
cmp dl, r8b
mov byte [rbp - 0x51], cl
mov qword [rbp - 0x50], rax
jne 0x1401a0c3c
mov rdx, qword [rbp - 0x60]
mov rax, qword [rbp + 0x30]
mov rcx, qword [0x1401dd298]
mov qword [rdx + 0x20], rcx
mov rcx, qword [0x1401dd2a0]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
add rcx, 8
sub rsp, 0x20
call fcn.140026540
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp - 0x70]
add rsp, 0x20
mov cl, byte [rcx]
mov byte [rbp - 0x51], cl
mov qword [rbp - 0x50], rax
mov rax, qword [rbp + 0x68]
mov dl, byte [rbp - 0x51]
mov rcx, qword [rbp - 0x50]
mov byte [rbp - 0x71], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.14019a8c0
mov rcx, qword [rbp + 0x68]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x41], al
jne 0x1401a0c78
mov al, byte [rbp - 0x71]
mov rcx, qword [rbp + 0x68]
mov byte [rcx], al
mov byte [rbp - 0x41], al
mov al, byte [rbp - 0x41]
mov byte [rbp + 0x1f], al
mov rcx, qword [rbp + 0x28]
mov al, byte [rbp + 0x1f]
mov byte [rbp - 0x73], al
cmp rcx, 0
mov byte [rbp - 0x72], al
je 0x1401a0cd0
mov al, byte [rbp - 0x73]
mov rdx, qword [rbp + 0x28]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
mov byte [rbp - 0x72], al
jne 0x1401a0cd0
mov rcx, qword [rbp + 0x28]
sub rsp, 0x20
call fcn.14000e572
mov rax, qword [rbp + 0x68]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x72], al
mov al, byte [rbp - 0x72]
mov cl, 0x43
xor cl, 0x43
cmp al, cl
je 0x1401a0d56
sub rsp, 0x20
call fcn.14019d433
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x1401a0d56
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xd4054986
jne 0x1401a0d56
mov rax, qword [rbp + 0x68]
mov cl, 0x91
xor cl, 0x91
mov byte [rax], cl
sub rsp, 0x20
call fcn.14019d445
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.140091980
mov rax, qword [rbp + 0x68]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401a0d56
sub rsp, 0x20
call fcn.14019d499
add rsp, 0x20
lea rsp, [rbp + 0x130]
pop rbp
ret
invalid
imul edx, esi, 0xffffffa1
invalid
imul eax, dword [rbx + 0x73e9128c], 0xfffffffb
invalid