Function at 0x1800721c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
sub rsp, 0x98
cmp dword [rcx], 0
mov rbp, r9
mov r12d, r8d
mov rdi, rdx
mov rsi, rcx
je 0x1800721f0
mov eax, 0xfffffffb
add rsp, 0x98
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, dword [rcx + 4]
cmp ecx, 2
je 0x180072210
cmp dword [rsi + 8], 0
jne 0x180072210
mov eax, 0xfffffffa
add rsp, 0x98
pop r12
pop rdi
pop rsi
pop rbp
ret
test rdi, rdi
je 0x180072678
test r12d, r12d
jle 0x180072678
shr r12d, 7
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], r15
mov dword [rsp + 0xd0], r12d
test ecx, ecx
je 0x18007263b
sub ecx, 1
je 0x180072574
cmp ecx, 1
je 0x180072286
mov eax, 0xffffffff
mov r14, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xc8]
mov r15, qword [rsp + 0x80]
add rsp, 0x98
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rsi + 0xc]
mov dword [rsp + 0x50], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x54], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x58], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], r12d
test r12d, r12d
je 0x18007266c
movzx ecx, byte [rsp + 0x5b]
movzx r15d, byte [rsp + 0x5f]
movzx r12d, byte [rsp + 0x5d]
mov byte [rsp + 0x48], al
movzx eax, byte [rsp + 0x5a]
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x58]
mov byte [rsp + 0x44], cl
movzx ecx, byte [rsp + 0x59]
mov byte [rsp + 0x38], al
movzx eax, byte [rsp + 0x56]
mov byte [rsp + 0x40], cl
movzx ecx, byte [rsp + 0x57]
mov byte [rsp + 0x2e], al
movzx eax, byte [rsp + 0x54]
mov byte [rsp + 0x30], cl
movzx ecx, byte [rsp + 0x55]
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x52]
mov byte [rsp + 0x2c], cl
movzx ecx, byte [rsp + 0x53]
mov byte [rsp + 0x22], al
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x24], cl
movzx ecx, byte [rsp + 0x51]
mov qword [rsp + 0x90], r13
movzx r13d, byte [rsp + 0x5e]
mov byte [rsp + 0xc0], al
mov byte [rsp + 0x20], cl
nop dword [rax]
movzx ebx, byte [rsp + 0x48]
xor r14d, r14d
nop dword [rax + rax]
movaps xmm0, xmmword [rsp + 0x50]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
mov rcx, rsi
call fcn.180072f50
movzx ecx, byte [rsp + 0x20]
movzx eax, byte [rsp + 0xc0]
movzx r11d, byte [rsp + 0x44]
add al, al
shr cl, 7
or cl, al
shr r11b, 7
movzx eax, byte [rsp + 0x20]
mov byte [rsp + 0xc0], cl
add al, al
mov byte [rsp + 0x50], cl
movzx ecx, byte [rsp + 0x22]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x22]
mov byte [rsp + 0x20], cl
add al, al
mov byte [rsp + 0x51], cl
movzx ecx, byte [rsp + 0x24]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x22], cl
add al, al
mov byte [rsp + 0x52], cl
movzx ecx, byte [rsp + 0x28]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x28]
mov byte [rsp + 0x24], cl
add al, al
mov byte [rsp + 0x53], cl
movzx ecx, byte [rsp + 0x2c]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x2c]
mov byte [rsp + 0x28], cl
add al, al
mov byte [rsp + 0x54], cl
movzx ecx, byte [rsp + 0x2e]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x2e]
mov byte [rsp + 0x2c], cl
add al, al
mov byte [rsp + 0x55], cl
movzx ecx, byte [rsp + 0x30]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x2e], cl
add al, al
mov byte [rsp + 0x56], cl
movzx ecx, byte [rsp + 0x38]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x30], cl
add al, al
mov byte [rsp + 0x57], cl
movzx ecx, byte [rsp + 0x40]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x40]
add al, al
mov byte [rsp + 0x38], cl
mov byte [rsp + 0x58], cl
movzx ecx, byte [rsp + 0x42]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x42]
add al, al
mov byte [rsp + 0x40], cl
or r11b, al
mov byte [rsp + 0x59], cl
movzx eax, byte [rsp + 0x44]
movzx ecx, r12b
add al, al
shr cl, 7
movzx r10d, bl
mov r8d, r14d
shr r8, 3
movzx r9d, r14b
and r9b, 7
shr r10b, 7
or r10b, al
mov byte [rsp + 0x42], r11b
movzx eax, bl
mov byte [rsp + 0x5a], r11b
movzx edx, byte [r8 + rdi]
add al, al
movzx ebx, cl
mov byte [rsp + 0x44], r10b
or bl, al
mov byte [rsp + 0x5b], r10b
movzx ecx, r13b
mov byte [rsp + 0x5c], bl
shr cl, 7
movzx eax, r12b
add al, al
movzx r12d, cl
or r12b, al
movzx ecx, r15b
shr cl, 7
movzx eax, r13b
add al, al
mov byte [rsp + 0x5d], r12b
movzx r13d, cl
inc r14d
or r13b, al
mov ecx, 7
sub cl, r9b
mov byte [rsp + 0x5e], r13b
shr dl, cl
movzx eax, r15b
add al, al
and dl, 1
movzx r15d, dl
movzx ecx, r9b
or r15b, al
movzx eax, byte [rsp + 0x70]
and al, 0x80
mov byte [rsp + 0x5f], r15b
shr al, cl
xor byte [r8 + rbp], al
cmp r14d, 0x80
jl 0x180072350
mov byte [rsp + 0x48], bl
mov ebx, dword [rsp + 0x60]
dec ebx
mov dword [rsp + 0x60], ebx
test ebx, ebx
jg 0x180072340
mov r12d, dword [rsp + 0xd0]
mov r13, qword [rsp + 0x90]
shl r12d, 7
mov eax, r12d
jmp 0x180072261
mov eax, dword [rsi + 0xc]
mov r15d, r12d
mov dword [rsp + 0x50], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x54], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x58], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x5c], eax
test r12d, r12d
je 0x18007266c
sub rdi, rbp
lea r14, [rdx + 8]
lea rbx, [r9 + 8]
lea rbp, [rdi - 8]
nop dword [rax + rax]
lea rdi, [rbx + rbp]
mov rcx, rsi
mov rdx, rdi
lea r8, [rsp + 0x70]
call fcn.180072b30
mov eax, dword [rdi]
lea rbx, [rbx + 0x10]
movdqa xmm1, xmmword [rsp + 0x50]
lea r14, [r14 + 0x10]
pxor xmm1, xmmword [rsp + 0x70]
dec r15d
movd dword [rbx - 0x18], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 4
mov dword [rsp + 0x50], eax
mov eax, dword [r14 - 0x14]
movd dword [rbx - 0x14], xmm0
movdqa xmm0, xmm1
mov dword [rsp + 0x54], eax
mov eax, dword [r14 - 0x10]
psrldq xmm0, 8
movd dword [rbx - 0x10], xmm0
movdqa xmmword [rsp + 0x70], xmm1
mov dword [rsp + 0x58], eax
mov eax, dword [r14 - 0xc]
psrldq xmm1, 0xc
movd dword [rbx - 0xc], xmm1
mov dword [rsp + 0x5c], eax
test r15d, r15d
jg 0x1800725b0
shl r12d, 7
mov eax, r12d
jmp 0x180072261
mov ebx, r12d
test r12d, r12d
je 0x18007266c
nop dword [rax]
nop word [rax + rax]
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.180072b30
add rdi, 0x10
add rbp, 0x10
dec ebx
test ebx, ebx
jg 0x180072650
shl r12d, 7
mov eax, r12d
jmp 0x180072261
xor eax, eax
add rsp, 0x98
pop r12
pop rdi
pop rsi
pop rbp
ret