Function at 0x100121d28
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov rdx, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rbx, qword [rdx]
mov r14, rcx
mov r13d, r9d
mov rcx, qword [rbx]
mov r9, r8
xor r8d, r8d
cmp dword [rbx + 0x28], 2
lea r10, [r14 + rcx*4]
lea rax, [r9 + rcx*4]
setge r8b
test r12, r12
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x58], rax
mov esi, 1
mov dword [rsp + 0x40], 0
mov dword [rsp + 0xb0], r8d
mov qword [rsp + 0x50], rcx
jne 0x100121de7
lea rcx, [rcx + rcx*2]
mov r8, rdi
add rcx, qword [rdx + 0x40]
xor edx, edx
shl rcx, 2
call fcn.100121820
test rax, rax
mov r12, rax
je 0x100121f21
mov rax, qword [rsp + 0x50]
mov r8d, dword [rsp + 0xb0]
mov dword [rsp + 0x40], esi
lea rbp, [r12 + rax*4]
lea r15, [rbp + rax*4]
lea rcx, [r15 + rax*4]
jmp 0x100121df4
lea rbp, [r12 + rcx*4]
lea r15, [rbp + rcx*4]
lea rcx, [r15 + rcx*4]
cmp dword [rbx + 0x28], esi
mov qword [rsp + 0xd8], rcx
je 0x100121e06
test r8d, r8d
je 0x100121e11
cmp r13d, esi
je 0x100121e25
cmp r13d, 0xffffffff
je 0x100121e25
xor esi, esi
lea rdx, [0x1000225e4]
mov r8, rdi
lea ecx, [rsi + 5]
call fcn.1001259d8
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xb8]
mov r8, rdi
call fcn.1001218e8
test eax, eax
je 0x100121e81
test esi, esi
je 0x100121f09
mov rcx, r14
mov rax, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xc0]
mov r8d, 2
mov r9, qword [rax]
mov qword [rsp + 0x20], rdi
call fcn.10012611c
test eax, eax
je 0x100121f09
mov ebx, 1
jmp 0x100121f0b
mov rdx, qword [rsp + 0xd0]
mov r8, rdi
mov rcx, r14
call fcn.1001218e8
test eax, eax
je 0x100121ed2
cmp r13d, 1
jne 0x100121eac
test esi, esi
je 0x100121f09
mov rcx, qword [rsp + 0xb8]
jmp 0x100121e4c
test esi, esi
je 0x100121f09
mov r8, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb8]
mov r9, rdi
call fcn.100121970
jmp 0x100121e6f
cmp r13d, 0xffffffff
jne 0x100121f32
test esi, esi
je 0x100121f09
mov rax, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x50]
lea r8d, [r13 + 2]
lea rcx, [rax + rsi*4]
mov r9, rbx
mov rdx, rbp
mov qword [rsp + 0x20], rdi
call fcn.10012611c
test eax, eax
jne 0x100121fad
xor ebx, ebx
cmp dword [rsp + 0x40], 0
je 0x100121f1f
mov r8, rdi
xor edx, edx
mov rcx, r12
call fcn.10012185c
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r13d, dword [rsp + 0xb0]
test r13d, r13d
je 0x100121f76
test esi, esi
je 0x100121f09
mov r10, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x50]
mov rax, qword [rbx + 0x40]
lea rdx, [r10 + rsi*4]
mov r9d, 1
mov r8, rbp
mov rcx, r10
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
jne 0x100121fb5
jmp 0x100121f09
test esi, esi
je 0x100121f09
mov r10, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x50]
mov rax, qword [rbx + 0x40]
lea rcx, [r10 + rsi*4]
mov r9, rbx
mov r8d, 1
mov rdx, rbp
mov qword [rsp + 0x20], rdi
call qword [rax + 0x40]
test eax, eax
je 0x100121f09
jmp 0x100121fb5
mov r13d, dword [rsp + 0xb0]
mov rax, qword [rbx + 0x40]
mov rdx, qword [rsp + 0xb8]
mov r9, rbx
mov r8d, 1
mov rcx, r14
mov qword [rsp + 0x20], rdi
call qword [rax + 8]
mov rcx, qword [rsp + 0x48]
mov rdx, rbp
test eax, eax
mov rax, qword [rbx + 0x40]
je 0x10012229a
mov r9, rbx
mov r8d, 1
mov qword [rsp + 0x20], rdi
call qword [rax + 8]
test eax, eax
je 0x100122022
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
mov r8, rdi
call fcn.100121cb0
xor ebx, ebx
test eax, eax
setne bl
jmp 0x100121f0b
test r13d, r13d
je 0x10012216f
lea r13, [r15 + rsi*4]
mov r8, rbx
mov rdx, r12
mov rcx, r14
mov r9, r13
mov qword [rsp + 0x20], rdi
call fcn.10012870c
test eax, eax
je 0x100121f09
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, r12
mov rdx, r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov r8, r12
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
je 0x100121f09
cmp dword [rsp + 0xb0], 0
je 0x1001223c4
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, rbp
mov rdx, r12
mov rcx, r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
xor r10d, r10d
test eax, eax
setne r10b
xor r11d, r11d
test rsi, rsi
je 0x100122131
mov r13, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xd0]
mov r8, r12
sub r8, r13
sub r13, rbp
mov r9, rbp
mov rax, qword [rdi + 8]
lea rdx, [r13 + r9]
mov ecx, dword [rax + r11*4]
add r11, 1
xor ecx, dword [rdx + r8]
xor ecx, dword [r9]
xor ecx, dword [rdx]
mov dword [r9], ecx
add r9, 4
cmp r11, rsi
jne 0x1001220ff
mov rdi, qword [rsp + 0xe0]
lea r13, [r15 + rsi*4]
test r10d, r10d
je 0x100122368
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, r15
mov rdx, rbp
mov rcx, r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
test eax, eax
je 0x100122368
mov ebx, 1
jmp 0x10012236a
mov rsi, qword [rsp + 0x48]
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov r8, rbp
mov rdx, rsi
mov rcx, rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
je 0x100121f09
mov r13, qword [rsp + 0xd8]
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, r12
mov rdx, r14
mov rcx, r14
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
test eax, eax
je 0x100121f09
mov rdx, qword [rsp + 0xd0]
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov rdx, qword [rdx + 8]
mov r8, r15
mov rcx, r12
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov r8, r15
mov rdx, r15
mov rcx, r12
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov r8, r15
mov rdx, r15
mov rcx, r12
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
je 0x100121f09
mov r9, r13
mov r8, rbx
mov rdx, r12
mov rcx, rbp
mov qword [rsp + 0x20], rdi
call fcn.10012870c
test eax, eax
je 0x100121f09
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, r12
mov rdx, r12
mov rcx, r15
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
test eax, eax
jne 0x1001223c9
jmp 0x100121f09
mov r9d, 1
mov r8, r15
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
xor ecx, ecx
test eax, eax
setne cl
test r13d, r13d
je 0x1001222e9
test ecx, ecx
je 0x1001222e7
mov rax, qword [rbx + 0x40]
mov rdx, qword [rsp + 0xb8]
mov r9d, 1
mov r8, r15
mov rcx, r15
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax]
test eax, eax
jne 0x1001222f1
xor ecx, ecx
test ecx, ecx
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov rdx, qword [rsp + 0xb8]
mov r9d, 1
mov r8, rbp
mov rcx, r14
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax + 0x58]
test eax, eax
je 0x100121f09
lea r13, [r15 + rsi*4]
mov r8, rbx
mov rdx, r12
mov rcx, rbp
mov r9, r13
mov qword [rsp + 0x20], rdi
call fcn.10012870c
test eax, eax
je 0x100121f09
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, r12
mov rdx, r12
mov rcx, r15
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
jmp 0x100122099
xor ebx, ebx
test rsi, rsi
je 0x100121f0b
mov rdi, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xc0]
sub rdi, r14
sub r8, r14
sub rbp, r14
sub r15, r14
sub rdx, r14
mov ecx, dword [r14 + rbp]
mov eax, dword [r14 + rdi]
xor ecx, dword [r14]
xor eax, dword [r14 + r15]
xor eax, ecx
mov dword [r14 + r8], eax
mov dword [r14 + rdx], ecx
add r14, 4
sub rsi, 1
jne 0x100122394
mov rdi, qword [rsp + 0xe0]
jmp 0x100121f0b
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x30], rdi
mov r9d, 1
mov r8, rbp
mov rdx, r12
mov rcx, r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov r8, rbp
mov rdx, r14
mov rcx, rbp
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax + 0x58]
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov rdx, qword [rsp + 0xb8]
mov r9d, 1
mov r8, rbp
mov rcx, rbp
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax + 0x58]
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov r9d, 1
mov r8, r15
mov rdx, rbp
mov rcx, r14
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax + 0x58]
test eax, eax
je 0x100121f09
mov rdx, qword [rsp + 0xc0]
mov r14d, 1
mov r9, rbx
mov rcx, rbp
mov r8, r14
mov qword [rsp + 0x20], rdi
call fcn.10012611c
test eax, eax
je 0x100121f09
mov qword [rsp + 0x30], rdi
mov r9, r14
mov r8, rbp
mov rdx, r15
mov rcx, r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
call fcn.100126140
test eax, eax
je 0x100121f09
mov rax, qword [rbx + 0x40]
mov r8, qword [rsp + 0x58]
mov r9, r14
mov rdx, rsi
mov rcx, rbp
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
call qword [rax + 0x58]
test eax, eax
je 0x100121f09
mov ebx, r14d
jmp 0x100121f0b