Function at 0x1400a9900
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1d0
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x48], rcx
mov qword [rbp - 0x40], rcx
mov eax, 0x20
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
sub rsp, 0x20
call fcn.1400aab8b
add rsp, 0x20
mov qword [rbp - 0x28], rax
add rax, 0x50
mov qword [rbp - 0x30], rax
lea rcx, [rbp + 0x30]
mov edx, 0x11c
sub rsp, 0x20
call fcn.1400a9f40
add rsp, 0x20
mov dword [rbp + 0x30], 0x11c
lea rcx, [rbp + 0x30]
sub rsp, 0x20
call fcn.1400a98dc
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x28]
mov dword [rbp - 0x1c], ecx
cmp byte [rax + 0x50], 0
jne 0x1400a99e4
mov eax, dword [rbp - 0x1c]
cmp eax, 0
je 0x1400a99e9
lea rcx, [rbp + 0x18]
mov edx, 0x14
sub rsp, 0x20
call fcn.1400a9f40
add rsp, 0x20
lea rcx, [rbp + 0x18]
sub rsp, 0x20
call fcn.1400aa0e8
mov rax, qword [rbp - 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1400a99e4
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp + 0x18]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x20]
mov qword [rax + 8], rcx
mov ecx, dword [rbp + 0x28]
mov dword [rax + 0x10], ecx
jmp 0x1400a9e64
jmp 0x1400a9cc9
mov ecx, dword [rbp + 0x34]
mov dword [rbp - 0x58], ecx
mov eax, dword [rbp + 0x38]
mov dword [rbp - 0x54], eax
mov eax, dword [rbp + 0x3c]
mov dword [rbp - 0x50], eax
mov al, 1
cmp ecx, 5
mov byte [rbp - 0x49], al
je 0x1400a9c16
mov eax, dword [rbp - 0x54]
mov ecx, dword [rbp - 0x58]
sub ecx, 6
sete cl
mov byte [rbp - 0x5c], cl
test eax, eax
sete al
and cl, al
mov byte [rbp - 0x5b], cl
mov al, byte [rbp + 0x14a]
mov byte [rbp - 0x5a], al
sub al, 1
sete al
mov byte [rbp - 0x59], al
and cl, al
mov al, 2
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov cl, byte [rbp - 0x5b]
mov al, byte [rbp - 0x5a]
sub al, 1
setne al
mov byte [rbp - 0x5d], al
and cl, al
mov al, 5
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov al, byte [rbp - 0x5d]
mov cl, byte [rbp - 0x5c]
mov edx, dword [rbp - 0x54]
sub edx, 1
sete dl
and cl, dl
mov byte [rbp - 0x5e], cl
and cl, al
mov al, 5
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov eax, dword [0x1401f7d70]
xor edx, edx
div dword [0x1401f7d74]
mov ecx, 0xc42dedeb
xor ecx, 0x4bb7e1f5
xor edx, edx
div ecx
xor eax, 0x8ab7abf4
mov ecx, 0x1c587dba
xor edx, edx
div ecx
cmp eax, 0x7a1b9f79
ja 0x1400a9f17
mov r8b, byte [rbp - 0x59]
mov dl, byte [rbp - 0x5e]
mov eax, dword [0x1401f7d78]
xor eax, 0x77e3aeb6
mov ecx, dword [0x1401f7d7c]
xor ecx, 0x62f019fe
sub eax, ecx
mov ecx, eax
xor ecx, 0x6c662b2d
and eax, 0x1399d4d2
add eax, eax
sub eax, ecx
mov ecx, eax
and ecx, 0xba52db0c
mov r9d, eax
xor r9d, 0x45ad24f3
add eax, r9d
sub eax, ecx
xor eax, 0x1fc8950e
mov ecx, 0x9f45e26a
and dl, r8b
mov byte [rbp - 0x5f], dl
cmp eax, ecx
jbe 0x1400a9abb
mov cl, byte [rbp - 0x5f]
mov al, 6
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
jmp 0x1400a9b31
mov al, byte [rbp - 0x5d]
mov cl, byte [rbp - 0x5c]
mov edx, dword [rbp - 0x54]
sub edx, 2
sete dl
and cl, dl
mov byte [rbp - 0x60], cl
and cl, al
mov al, 7
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov al, byte [rbp - 0x59]
mov cl, byte [rbp - 0x60]
and cl, al
mov al, 8
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov al, byte [rbp - 0x59]
mov cl, byte [rbp - 0x5c]
mov edx, dword [rbp - 0x54]
sub edx, 3
sete dl
and cl, dl
mov byte [rbp - 0x61], cl
and cl, al
mov al, 9
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov al, byte [rbp - 0x5d]
mov cl, byte [rbp - 0x61]
and cl, al
mov al, 7
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov al, byte [rbp - 0x5d]
mov ecx, dword [rbp - 0x58]
sub ecx, 0xa
sete cl
mov byte [rbp - 0x62], cl
and cl, al
mov al, 0xb
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov cl, byte [rbp - 0x62]
mov eax, dword [rbp - 0x50]
sub eax, 0x55f0
setl al
and cl, al
mov al, 0xa
test cl, 1
mov byte [rbp - 0x49], al
jne 0x1400a9c16
mov cl, byte [rbp - 0x62]
mov eax, dword [rbp - 0x50]
sub eax, 0x55f0
setge al
and cl, al
mov al, 0x2c
xor al, 0x20
mov dl, 0x57
xor dl, 0x57
mov byte [rbp - 0x64], dl
test cl, 1
mov byte [rbp - 0x63], al
jne 0x1400a9c10
mov al, byte [rbp - 0x64]
mov byte [rbp - 0x63], al
mov al, byte [rbp - 0x63]
mov byte [rbp - 0x49], al
mov rcx, qword [rbp - 0x38]
mov al, byte [rbp - 0x49]
mov byte [rbp - 0x65], al
movabs rdx, 0x19aad38b19534d73
movabs rax, 0x19aad38b19534d67
xor rdx, rax
sub rsp, 0x20
call fcn.1400a9f40
add rsp, 0x20
mov rcx, rbp
mov edx, 0x14
sub rsp, 0x20
call fcn.1400a9f40
mov r10b, byte [rbp - 0x65]
mov r9d, dword [rbp - 0x58]
mov r8d, dword [rbp - 0x54]
mov edx, dword [rbp - 0x50]
mov rcx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x30]
add rsp, 0x20
mov r11b, 0x39
xor r11b, 0x38
mov byte [rbp + 0x10], r11b
mov byte [rbp], r10b
mov dword [rbp + 4], r9d
mov dword [rbp + 8], r8d
mov dword [rbp + 0xc], edx
mov rdx, qword [rbp]
mov qword [rcx], rdx
mov rdx, qword [rbp + 8]
mov qword [rcx + 8], rdx
mov edx, dword [rbp + 0x10]
mov dword [rcx + 0x10], edx
cmp byte [rax], 0
jne 0x1400a9cc9
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rdx, qword [rcx + 8]
mov qword [rax + 8], rdx
mov ecx, dword [rcx + 0x10]
mov dword [rax + 0x10], ecx
jmp 0x1400a9e64
sub rsp, 0x20
call fcn.1400aab8b
add rsp, 0x20
mov rax, qword [rax + 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
cmp word [rax + 0x12], 1
jle 0x1400a9e64
mov rax, qword [rbp - 0x70]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x1400a9e64
mov rax, qword [rbp - 0x30]
mov byte [rax], 0
movabs rdx, 0xaea9fadb3f1c09b
movabs rax, 0xaea9fadb3f1c08f
xor rdx, rax
lea rcx, [rbp - 0x18]
sub rsp, 0x20
call fcn.1400a9f40
add rsp, 0x20
lea rcx, [rbp - 0x18]
sub rsp, 0x20
call fcn.1400aa0e8
mov rax, qword [rbp - 0x30]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xdf
xor cl, 0xdf
cmp al, cl
jne 0x1400a9e64
mov eax, dword [0x1401f7d80]
or eax, dword [0x1401f7d84]
mov ecx, 0x5948d6a8
xor ecx, 0x9b0b8e9
sub eax, ecx
xor eax, 0xf748f1fa
sub eax, 0x1f448a0b
cmp eax, 0xcd1dde9a
ja 0x1400a9f20
mov rax, qword [rbp - 0x48]
mov ecx, dword [0x1401f7d88]
or ecx, dword [0x1401f7d8c]
mov edx, 0x9366c01b
xor edx, 0x7746b008
sub ecx, edx
mov edx, 0x99c1e15
xor edx, 0xf663e1ea
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x31f8e03b
mov r8d, 0xffffffff
xor r8d, 0x714bfc4b
or ecx, edx
mov edx, 0xf3a9e252
xor edx, 0x82e21e19
or edx, r8d
xor ecx, 0xffffffff
and ecx, edx
mov r8d, 0xffffffff
xor r8d, 0x834f4069
mov edx, ecx
and edx, r8d
mov r9d, 0x26e4a322
xor r9d, 0xa5abe34b
mov r8d, ecx
xor r8d, r9d
add ecx, r8d
sub ecx, edx
mov dword [rbp - 0x74], ecx
mov rcx, qword [rbp - 0x18]
mov qword [rax], rcx
mov rcx, qword [rbp - 0x10]
mov qword [rax + 8], rcx
mov ecx, dword [rbp - 8]
mov dword [rax + 0x10], ecx
sub rsp, 0x20
call fcn.1400aab8b
add rsp, 0x20
mov rcx, rax
add rcx, 0x10
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x38]
xor eax, eax
mov r8b, al
xor r8b, 0
and r8b, 1
sub rsp, 0x20
call fcn.140012b7a
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, 0x50f972a5
jb 0x1400a9d82
jmp 0x1400a9e64
mov ecx, dword [0x1401f7d90]
add ecx, dword [0x1401f7d94]
mov edx, 0xed6d5cfa
xor edx, 0x18a0755f
mov eax, ecx
and eax, edx
mov edx, 0x36f3f128
xor edx, 0xc33ed88d
or ecx, edx
add eax, ecx
or eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x6e822b22
mov edx, 0xffffffff
xor edx, 0x6e822b22
and ecx, edx
mov edx, 0xb1e5e2fb
xor edx, 0x4e1a1d04
xor eax, edx
mov edx, 0x32956284
xor edx, 0xcd6a9d7b
xor ecx, edx
and eax, ecx
add eax, 0x8857a583
cmp eax, 0xb61500c7
je 0x1400a9f29
mov eax, dword [0x1401f7d98]
add eax, dword [0x1401f7d9c]
mov ecx, 0x7936a398
xor edx, edx
div ecx
imul eax, eax, 0x1e7dbca3
and eax, 0xe71691ac
mov ecx, 0x174e89a3
xor ecx, 0x8a816b3d
cmp eax, ecx
jae 0x1400a9f29
mov rax, qword [rbp - 0x40]
lea rsp, [rbp + 0x150]
pop rbp
ret
in al, dx
outsb dx, byte [rsi]
invalid
invalid
out 0xb0, eax
cmp bl, cl
jmp 0x1400a9ed7