Function at 0x180009dd0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
mov rbp, rsp
sub rsp, 0x20
xor ebx, ebx
mov dword [rbp + 0x10], 0xbcbdaf
mov r8d, ebx
mov rdi, rcx
movsxd rax, r8d
lea rdx, [rbp + 0x10]
add rdx, rax
lea eax, [r8 - 0x32]
inc r8d
xor byte [rdx], al
cmp r8d, 3
jb 0x180009df1
mov rcx, qword [rcx + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x180009e5b
cmp byte [rax], bl
je 0x180009e64
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x180009e5b
cmp byte [r8 + rdx], al
jne 0x180009e4a
inc rdx
cmp byte [r8 + rdx], bl
jne 0x180009e34
cmp byte [rdx], bl
je 0x180009e5b
inc r9
inc r8
cmp byte [r9], bl
jne 0x180009e30
jmp 0x180009e64
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a3a8
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x180009e70
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x180009edb
cmp byte [rax], bl
je 0x180009ee4
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x180009edb
cmp byte [r8 + rdx], al
jne 0x180009eca
inc rdx
cmp byte [r8 + rdx], bl
jne 0x180009eb4
cmp byte [rdx], bl
je 0x180009edb
inc r9
inc r8
cmp byte [r9], bl
jne 0x180009eb0
jmp 0x180009ee4
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a8a8
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x180009ef0
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x180009f5b
cmp byte [rax], bl
je 0x180009f64
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x180009f5b
cmp byte [r8 + rdx], al
jne 0x180009f4a
inc rdx
cmp byte [r8 + rdx], bl
jne 0x180009f34
cmp byte [rdx], bl
je 0x180009f5b
inc r9
inc r8
cmp byte [r9], bl
jne 0x180009f30
jmp 0x180009f64
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a8bd
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x180009f70
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x180009fdb
cmp byte [rax], bl
je 0x180009fe4
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x180009fdb
cmp byte [r8 + rdx], al
jne 0x180009fca
inc rdx
cmp byte [r8 + rdx], bl
jne 0x180009fb4
cmp byte [rdx], bl
je 0x180009fdb
inc r9
inc r8
cmp byte [r9], bl
jne 0x180009fb0
jmp 0x180009fe4
test r9, r9
jne 0x18000a2f3
xor eax, eax
mov word [rbp + 0x10], 0xbfaf
mov byte [rbp + 0x12], al
mov edx, ebx
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 2
jb 0x180009ff1
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x12], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x18000a05b
cmp byte [rax], bl
je 0x18000a064
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x18000a05b
cmp byte [r8 + rdx], al
jne 0x18000a04a
inc rdx
cmp byte [r8 + rdx], bl
jne 0x18000a034
cmp byte [rdx], bl
je 0x18000a05b
inc r9
inc r8
cmp byte [r9], bl
jne 0x18000a030
jmp 0x18000a064
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a4a3
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x18000a070
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x18000a0db
cmp byte [rax], bl
je 0x18000a0e4
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x18000a0db
cmp byte [r8 + rdx], al
jne 0x18000a0ca
inc rdx
cmp byte [r8 + rdx], bl
jne 0x18000a0b4
cmp byte [rdx], bl
je 0x18000a0db
inc r9
inc r8
cmp byte [r9], bl
jne 0x18000a0b0
jmp 0x18000a0e4
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a9aa
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x18000a0f0
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x18000a15b
cmp byte [rax], bl
je 0x18000a164
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x18000a15b
cmp byte [r8 + rdx], al
jne 0x18000a14a
inc rdx
cmp byte [r8 + rdx], bl
jne 0x18000a134
cmp byte [rdx], bl
je 0x18000a15b
inc r9
inc r8
cmp byte [r9], bl
jne 0x18000a130
jmp 0x18000a164
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a2ad
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x18000a170
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x18000a1db
cmp byte [rax], bl
je 0x18000a1e4
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x18000a1db
cmp byte [r8 + rdx], al
jne 0x18000a1ca
inc rdx
cmp byte [r8 + rdx], bl
jne 0x18000a1b4
cmp byte [rdx], bl
je 0x18000a1db
inc r9
inc r8
cmp byte [r9], bl
jne 0x18000a1b0
jmp 0x18000a1e4
test r9, r9
jne 0x18000a2f3
mov dword [rbp + 0x10], 0xe0a4af
mov edx, ebx
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rdx - 0x32]
inc edx
xor byte [rcx], al
cmp edx, 3
jb 0x18000a1f0
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x13], bl
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
mov r9, rax
cmp byte [rbp + 0x10], bl
je 0x18000a25b
cmp byte [rax], bl
je 0x18000a264
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop dword [rax]
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x18000a25b
cmp byte [r8 + rdx], al
jne 0x18000a24a
inc rdx
cmp byte [r8 + rdx], bl
jne 0x18000a234
cmp byte [rdx], bl
je 0x18000a25b
inc r9
inc r8
cmp byte [r9], bl
jne 0x18000a230
jmp 0x18000a264
test r9, r9
jne 0x18000a2f3
xor eax, eax
mov word [rbp + 0x10], 0xa1a5
mov byte [rbp + 0x12], al
nop
movsxd rax, ebx
lea rcx, [rbp + 0x10]
add rcx, rax
lea eax, [rbx - 0x32]
inc ebx
xor byte [rcx], al
cmp ebx, 2
jb 0x18000a270
mov rcx, qword [rdi + 0x10]
mov byte [rbp + 0x12], 0
mov rax, qword [rcx]
mov rdx, qword [rax + 0x60]
call rdx
cmp byte [rbp + 0x10], 0
mov r9, rax
je 0x18000a2ee
cmp byte [rax], 0
je 0x18000a2dc
lea rax, [rbp + 0x10]
mov r8, r9
sub r8, rax
nop
lea rdx, [rbp + 0x10]
movzx eax, byte [rdx]
test al, al
je 0x18000a2ee
cmp byte [r8 + rdx], al
jne 0x18000a2cb
inc rdx
cmp byte [r8 + rdx], 0
jne 0x18000a2b4
cmp byte [rdx], 0
je 0x18000a2ee
inc r9
inc r8
cmp byte [r9], 0
jne 0x18000a2b0
mov al, 1
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret
test r9, r9
je 0x18000a2dc
mov rbx, qword [rsp + 0x38]
xor al, al
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret