Function at 0x1400a8120
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1c0
lea rbp, [rsp + 0x80]
mov eax, 0x10
mov qword [rbp + 0x30], rax
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x30]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x30]
mov rcx, rsp
mov qword [rbp + 0x28], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x30]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
sub rsp, 0x20
call fcn.1400a8b12
add rsp, 0x20
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x130]
sub rsp, 0x20
call fcn.1400a8b2d
mov rcx, qword [rbp + 0x48]
add rsp, 0x20
mov word [rcx], 0x3a6
sub rsp, 0x20
call fcn.140060746
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x58], rcx
mov cl, byte [rax]
mov dl, 0xd6
xor dl, 0xd6
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp + 0x58]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
add rcx, 8
lea rax, [0x1401dbd9f]
cmp rdx, 0
cmove rcx, rax
mov qword [rbp + 0x20], rcx
mov rax, qword [0x1401dd6d0]
sub rsp, 0x20
call qword [rax]
mov rdx, qword [rbp + 0x20]
add rsp, 0x20
mov qword [0x1401ed310], rax
lea rcx, [rbp + 0x130]
sub rsp, 0x20
call fcn.140006d50
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rcx, qword [rbp + 0x138]
mov edx, 1
sub rsp, 0x20
call fcn.14009fba2
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov qword [rbp + 0x18], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x18]
mov qword [0x1401ed318], rax
sub rsp, 0x20
call fcn.1400a8b2d
mov rax, qword [rbp + 0x28]
add rsp, 0x20
lea rcx, [fcn.140063730]
mov qword [rax], rcx
mov qword [rax + 8], 0
xor ecx, ecx
sub rsp, 0x20
call fcn.140096f68
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x50]
mov dword [rbp + 0x14], ecx
mov cl, byte [rax]
mov dl, 0x8a
xor dl, 0x8a
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [rbp + 0x14]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [0x1401ed318]
mov r8, qword [rdx]
mov qword [rbp + 0xd8], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0xe0], rdx
mov edx, 0xa5eede7d
lea r8, [rbp + 0xd8]
xor r9d, r9d
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
mov rcx, qword [rbp + 0x50]
add rsp, 0x30
mov qword [rbp + 8], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp + 8]
mov qword [0x1401ed320], rax
lea rcx, [rbp + 0x120]
sub rsp, 0x20
call fcn.1400a8b2d
add rsp, 0x20
lea rax, [fcn.140063730]
mov qword [rbp + 0x120], rax
mov qword [rbp + 0x128], 0
mov cl, 1
xor cl, 1
sub rsp, 0x20
and cl, 1
call fcn.140096f68
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov dword [rbp + 4], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [rbp + 4]
mov rcx, qword [0x1401ed318]
mov rdx, qword [rbp + 0x120]
mov qword [rbp + 0xc8], rdx
mov rdx, qword [rbp + 0x128]
mov qword [rbp + 0xd0], rdx
mov edx, 0xb5f19fe9
lea r8, [rbp + 0xc8]
xor r9d, r9d
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
mov rcx, qword [rbp + 0x50]
add rsp, 0x30
mov qword [rbp - 8], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp - 8]
mov qword [0x1401ed328], rax
lea rcx, [rbp + 0x110]
sub rsp, 0x20
call fcn.1400a8b2d
add rsp, 0x20
lea rax, [fcn.140063730]
mov qword [rbp + 0x110], rax
mov qword [rbp + 0x118], 0
xor ecx, ecx
sub rsp, 0x20
call fcn.140096f68
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov dword [rbp - 0xc], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [rbp - 0xc]
mov rcx, qword [0x1401ed318]
mov rdx, qword [rbp + 0x110]
mov qword [rbp + 0xb8], rdx
mov rdx, qword [rbp + 0x118]
mov qword [rbp + 0xc0], rdx
movabs rdx, 0x8891f749b86b0756
movabs r8, 0x8891f749332f3efe
xor rdx, r8
movabs r9, 0x5682a961f8d6632f
movabs r8, 0x5682a961f8d6632f
xor r9, r8
lea r8, [rbp + 0xb8]
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
mov rcx, qword [rbp + 0x50]
add rsp, 0x30
mov qword [rbp - 0x18], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp - 0x18]
mov qword [0x1401ed330], rax
lea rcx, [rbp + 0x100]
sub rsp, 0x20
call fcn.1400a8b2d
add rsp, 0x20
lea rax, [fcn.140063730]
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], 0
xor ecx, ecx
sub rsp, 0x20
call fcn.140096f68
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x50]
mov dword [rbp - 0x1c], ecx
mov cl, byte [rax]
mov dl, 0xca
xor dl, 0xca
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [rbp - 0x1c]
mov rcx, qword [0x1401ed318]
mov rdx, qword [rbp + 0x100]
mov qword [rbp + 0xa8], rdx
mov rdx, qword [rbp + 0x108]
mov qword [rbp + 0xb0], rdx
mov edx, 0xd00df725
lea r8, [rbp + 0xa8]
xor r9d, r9d
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
mov rcx, qword [rbp + 0x50]
add rsp, 0x30
mov qword [rbp - 0x28], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rcx, qword [rbp + 0x38]
mov rax, qword [rbp - 0x28]
mov qword [0x1401ed338], rax
sub rsp, 0x20
call fcn.1400a8b2d
mov rax, qword [rbp + 0x38]
add rsp, 0x20
lea rcx, [fcn.140063730]
mov qword [rax], rcx
mov qword [rax + 8], 0
xor eax, eax
mov cl, al
xor cl, 0
sub rsp, 0x20
and cl, 1
call fcn.140096f68
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x50]
mov dword [rbp - 0x2c], ecx
mov cl, byte [rax]
mov dl, 0x19
xor dl, 0x19
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [rbp - 0x2c]
mov rdx, qword [rbp + 0x38]
mov rcx, qword [0x1401ed318]
mov r8, qword [rdx]
mov qword [rbp + 0x98], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0xa0], rdx
mov edx, 0x6aa4daf9
lea r8, [rbp + 0x98]
xor r9d, r9d
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
add rsp, 0x30
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp - 0x38], rcx
mov cl, byte [rax]
mov dl, 0x75
xor dl, 0x75
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp - 0x38]
mov qword [0x1401ed340], rax
sub rsp, 0x20
call fcn.1400a8b2d
mov rax, qword [rbp + 0x40]
add rsp, 0x20
lea rcx, [fcn.140063730]
mov qword [rax], rcx
mov qword [rax + 8], 0
xor eax, eax
mov cl, al
xor cl, 0
sub rsp, 0x20
and cl, 1
call fcn.140096f68
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x50]
mov dword [rbp - 0x3c], ecx
mov cl, byte [rax]
mov dl, 0x46
xor dl, 0x46
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [rbp - 0x3c]
mov rdx, qword [rbp + 0x40]
mov rcx, qword [0x1401ed318]
mov r8, qword [rdx]
mov qword [rbp + 0x88], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x90], rdx
mov edx, 0x29d60058
lea r8, [rbp + 0x88]
xor r9d, r9d
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
mov rcx, qword [rbp + 0x50]
add rsp, 0x30
mov qword [rbp - 0x48], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp - 0x48]
mov qword [0x1401ed348], rax
mov ax, 0xba9c
xor ax, 0xb9f5
mov word [rbp + 0xfe], ax
lea rcx, [rbp + 0xfe]
sub rsp, 0x20
call fcn.140060746
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov qword [rbp - 0x50], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp - 0x50]
mov rcx, qword [rax]
mov qword [rbp - 0x60], rcx
mov rax, qword [rax + 8]
mov qword [rbp - 0x58], rax
sub rsp, 0x20
call fcn.1400a8b12
add rsp, 0x20
mov rax, qword [rbp + 0x50]
mov cl, byte [rax]
mov dl, 0x2d
xor dl, 0x2d
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov eax, dword [0x1401ccba0]
mov ecx, dword [0x1401ccba4]
xor ecx, 0xf9e31faf
xor edx, edx
div ecx
mov edx, 0xb5bce6d9
xor edx, 0x4a431926
mov ecx, eax
xor ecx, edx
mov edx, 0x7f3c9797
xor edx, 0xb5a29946
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0xca9e0ed1
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xafd65850
xor r8d, 0x65485681
mov edx, eax
and edx, r8d
mov r8d, 0x69230491
xor r8d, 0xa3bd0a40
or eax, r8d
imul eax, edx
add eax, ecx
or eax, 0xec91d3e6
add eax, 0x93d738ca
mov ecx, 0x17d27575
xor ecx, 0x827443b0
add eax, ecx
sub eax, 0x93d738ca
cmp eax, 0x94822d1c
jae 0x1400a8b00
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x58]
mov eax, dword [0x1401ccba8]
mov r8d, dword [0x1401ccbac]
xor r8d, 0x47802e71
imul eax, r8d
mov r8d, 0x45fde87e
xor r8d, 0x7a6d8ca2
sub eax, r8d
add eax, 0x451c262
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0xc66965e6
mov r10d, 0xffffffff
xor r10d, 0xc66965e6
mov r8d, eax
and r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0xc66965e6
or eax, 0xc66965e6
imul eax, r9d
add eax, r8d
mov dword [rbp - 0x6c], eax
add rdx, 8
lea rax, [0x1401dbd9f]
cmp rcx, 0
cmove rdx, rax
mov rax, qword [0x1401dd6b8]
mov rax, qword [rax]
mov rcx, qword [0x1401ed310]
sub rsp, 0x20
call rax
add rsp, 0x20
mov qword [0x1401ed350], rax
lea rcx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.1400a8b2d
add rsp, 0x20
lea rax, [fcn.140063730]
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], 0
xor ecx, ecx
sub rsp, 0x20
call fcn.140096f68
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp - 0x6c]
mov dword [rbp - 0x68], edx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0x8b9f4c58
je 0x1400a8b00
mov cl, byte [rbp - 0x61]
mov al, 1
test cl, 1
mov byte [rbp + 0x67], al
jne 0x1400a8933
jmp 0x1400a89a2
mov eax, dword [rbp - 0x68]
mov rcx, qword [0x1401ed318]
mov rdx, qword [rbp + 0xe8]
mov qword [rbp + 0x78], rdx
mov rdx, qword [rbp + 0xf0]
mov qword [rbp + 0x80], rdx
mov edx, 0x4410b164
lea r8, [rbp + 0x78]
xor r9d, r9d
sub rsp, 0x30
mov dword [rsp + 0x20], eax
call fcn.14009eb7c
add rsp, 0x30
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp - 0x78], rcx
mov cl, byte [rax]
mov dl, 0x3b
xor dl, 0x3b
mov al, 1
cmp cl, dl
mov byte [rbp + 0x67], al
jne 0x1400a89a2
mov rax, qword [rbp - 0x78]
mov qword [0x1401ed358], rax
xor eax, eax
mov byte [rbp + 0x67], al
mov rax, qword [rbp + 0x50]
mov cl, byte [rbp + 0x67]
mov byte [rbp - 0x79], cl
mov cl, 0x5b
xor cl, 0x5b
mov byte [rax], cl
mov rax, qword [rbp + 0x130]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x138]
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x68]
sub rsp, 0x20
call fcn.140006f00
mov rax, qword [rbp + 0x50]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1400a8af7
mov eax, dword [0x1401ccbb0]
mov edx, dword [0x1401ccbb4]
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
mov ecx, 0x30c883c
xor ecx, 0xa3761384
and eax, ecx
mov ecx, 0x59449bc2
xor ecx, 0x4583473f
or eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x6401e0f7
mov r8d, 0xffffffff
xor r8d, 0x6401e0f7
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x6401e0f7
or eax, 0x6401e0f7
imul eax, edx
add eax, ecx
cmp eax, 0xbbd01489
jbe 0x1400a8b09
mov rcx, qword [rbp + 0x50]
mov dl, byte [rbp - 0x79]
mov eax, dword [0x1401ccbb8]
mov r9d, dword [0x1401ccbbc]
xor r8d, r8d
sub r8d, r9d
sub eax, r8d
mov r8d, eax
xor r8d, 0x82bcde90
mov r9d, 0xc2a73c57
xor r9d, 0x3d58c3a8
xor r8d, r9d
mov r9d, 0xc20b3ad4
xor r9d, 0x40b7e444
and r9d, r8d
mov r8d, 0xef983121
xor r8d, 0xef983123
imul r8d, r9d
sub r8d, 0x82bcde90
sub eax, r8d
imul eax, eax, 0xc8541d91
mov r8d, 0xd8c36fb3
xor r8d, 0xf3db49d6
sub eax, r8d
sub eax, 0x7e92e046
mov r8d, 0x806970
xor r8d, 0x2b984f15
add eax, r8d
mov byte [rcx], dl
cmp eax, 0x9a4196f7
je 0x1400a8a58
jmp 0x1400a8af7
lea rsp, [rbp + 0x140]
pop rbp
ret
sub esi, dword [rdi]
test eax, 0xfd10e967
invalid
mov ecx, 0xe9a77d3d
invalid