Function at 0x2166bd530
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov esi, 1
mov ebx, 5
movabs r12, 0xaaaaaaaaaaaaaaab
lea rcx, [rsp + 0x20]
lea r15, [rsp + 0x40]
call fcn.2166bbb40
movdqu xmm2, xmmword [rsp + 0x20]
lea r14, [rsp + 0x58]
mov qword [rsp + 0x38], 0
lea r13, [rsp + 0x48]
lea rbp, [rsp + 0x50]
movaps xmmword [0x2167e74b0], xmm2
lea rdi, [rsp + 0x38]
nop dword [rax]
mov qword [rsp + 0x58], 0
mov rax, rsi
mov qword [rsp + 0x50], 0
mul r12
mov qword [rsp + 0x48], 0
imul eax, ebx, 0x39
mov qword [rsp + 0x40], 0
mov rcx, rdx
and rdx, 0xfffffffffffffffe
add eax, 0x2b
shr rcx, 1
movsxd rbx, eax
add rdx, rcx
mov rcx, rsi
imul rbx, rbx, 0x68c8c4ad
sub rcx, rdx
cdq
sar rbx, 0x2c
sub ebx, edx
imul edx, ebx, 0x2717
sub eax, edx
mov ebx, eax
mov rax, qword [rsp + 0x38]
cmp rcx, 1
je 0x2166bd900
cmp rcx, 2
mov rdx, r14
mov rcx, r15
je 0x2166bd798
test rax, rax
je 0x2166bd630
nop word [rax + rax]
cmp ebx, dword [rax]
jle 0x2166bd758
mov qword [rdx], rax
lea rdx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd618
mov qword [rdx], 0
mov r9, r13
mov rdx, rbp
mov qword [rcx], 0
mov rax, qword [rsp + 0x40]
lea ecx, [rbx + 1]
test rax, rax
je 0x2166bd670
nop dword [rax]
cmp ecx, dword [rax]
jle 0x2166bd778
mov qword [rdx], rax
lea rdx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd658
mov qword [rdx], 0
mov rdx, qword [rsp + 0x50]
mov qword [r9], 0
test rdx, rdx
je 0x2166bda20
mov rax, qword [rsp + 0x58]
mov rcx, rdi
test rax, rax
je 0x2166bd6ba
nop dword [rax]
mov r8d, dword [rdx + 4]
cmp dword [rax + 4], r8d
jge 0x2166bd720
mov qword [rcx], rax
lea rcx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd6a0
mov qword [rcx], rdx
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
test rax, rax
je 0x2166bd6f2
test rdx, rdx
je 0x2166bd750
nop dword [rax]
mov r10d, dword [rdx + 4]
cmp dword [rax + 4], r10d
jge 0x2166bd740
mov qword [rcx], rax
lea rcx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd6d8
mov qword [rcx], rdx
add rsi, 1
cmp rsi, 0x7a120
jne 0x2166bd590
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rcx], rdx
mov r9, qword [rdx + 8]
lea rcx, [rdx + 8]
test r9, r9
je 0x2166bda10
mov rdx, r9
jmp 0x2166bd6a0
mov qword [rcx], rdx
lea rcx, [rdx + 8]
mov rdx, qword [rdx + 8]
test rdx, rdx
jne 0x2166bd6d8
mov qword [rcx], rax
jmp 0x2166bd6f5
mov qword [rcx], rax
lea rcx, [rax + 8]
mov rax, qword [rax + 8]
test rax, rax
jne 0x2166bd618
jmp 0x2166bd630
mov qword [r9], rax
lea r9, [rax + 8]
mov rax, qword [rax + 8]
test rax, rax
jne 0x2166bd658
jmp 0x2166bd670
test rax, rax
je 0x2166bd7b8
nop dword [rax]
cmp ebx, dword [rax]
jle 0x2166bd8e0
mov qword [rdx], rax
lea rdx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd7a0
mov qword [rdx], 0
mov r9, r13
mov rdx, rbp
mov qword [rcx], 0
mov rax, qword [rsp + 0x40]
lea ecx, [rbx + 1]
test rax, rax
je 0x2166bd7f8
nop dword [rax]
cmp ecx, dword [rax]
jle 0x2166bd8c0
mov qword [rdx], rax
lea rdx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd7e0
mov rax, qword [rsp + 0x58]
mov qword [rdx], 0
mov rcx, rdi
mov qword [r9], 0
mov rdx, qword [rsp + 0x50]
test rax, rax
je 0x2166bd842
test rdx, rdx
je 0x2166bd8b4
nop dword [rax]
mov r8d, dword [rdx + 4]
cmp dword [rax + 4], r8d
jge 0x2166bd8a0
mov qword [rcx], rax
lea rcx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd828
mov qword [rcx], rdx
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
test rax, rax
je 0x2166bd6f2
test rdx, rdx
je 0x2166bd750
mov r10d, dword [rdx + 4]
cmp dword [rax + 4], r10d
jge 0x2166bd88c
mov qword [rcx], rax
lea rcx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x2166bd6f2
mov r10d, dword [rdx + 4]
cmp dword [rax + 4], r10d
jl 0x2166bd86e
mov qword [rcx], rdx
lea rcx, [rdx + 8]
mov rdx, qword [rdx + 8]
jmp 0x2166bd85b
mov qword [rcx], rdx
lea rcx, [rdx + 8]
mov rdx, qword [rdx + 8]
test rdx, rdx
jne 0x2166bd828
mov qword [rcx], rax
jmp 0x2166bd845
mov qword [r9], rax
lea r9, [rax + 8]
mov rax, qword [rax + 8]
test rax, rax
jne 0x2166bd7e0
jmp 0x2166bd7f8
mov qword [rcx], rax
lea rcx, [rax + 8]
mov rax, qword [rax + 8]
test rax, rax
jne 0x2166bd7a0
jmp 0x2166bd7b8
mov rcx, r15
mov rdx, r14
test rax, rax
je 0x2166bd928
nop dword [rax + rax]
cmp ebx, dword [rax]
jle 0x2166bd9f0
mov qword [rdx], rax
lea rdx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd910
mov qword [rdx], 0
mov r9, r13
mov rdx, rbp
mov qword [rcx], 0
mov rax, qword [rsp + 0x40]
lea ecx, [rbx + 1]
test rax, rax
je 0x2166bd964
nop dword [rax]
cmp ecx, dword [rax]
jle 0x2166bd9d0
mov qword [rdx], rax
lea rdx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x2166bd950
mov rax, qword [rsp + 0x58]
mov qword [rdx], 0
mov rcx, rdi
mov qword [r9], 0
mov rdx, qword [rsp + 0x48]
test rax, rax
je 0x2166bd6f2
test rdx, rdx
je 0x2166bd750
mov r11d, dword [rdx + 4]
cmp dword [rax + 4], r11d
jge 0x2166bd9b9
mov qword [rcx], rax
lea rcx, [rax + 0x10]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x2166bd6f2
mov r11d, dword [rdx + 4]
cmp dword [rax + 4], r11d
jl 0x2166bd99b
mov qword [rcx], rdx
lea rcx, [rdx + 8]
mov rdx, qword [rdx + 8]
jmp 0x2166bd988
mov qword [r9], rax
lea r9, [rax + 8]
mov rax, qword [rax + 8]
test rax, rax
jne 0x2166bd950
jmp 0x2166bd964
mov qword [rcx], rax
lea rcx, [rax + 8]
mov rax, qword [rax + 8]
test rax, rax
jne 0x2166bd910
jmp 0x2166bd928
mov qword [rdx + 8], rax
jmp 0x2166bd6bd
lea rcx, [0x2167200c0]
call sub.libgcc_s_seh_1.dll___emutls_get_address
mov edx, 0x28
mov rcx, rax
call fcn.2166b2a80
lea r10, [rax + 0x10]
mov qword [rax + 0x10], 0
mov qword [rax + 8], 1
mov rdx, r10
mov qword [rax + 0x18], 0
mov qword [r10 + 0x10], 0
mov dword [rax + 0x10], ebx
mov rax, qword [0x2167e74b0]
mov rcx, qword [0x2167e74b8]
lea r9, [rax + rcx]
xor rcx, rax
ror rax, 9
mov r11, rcx
xor rax, rcx
ror rcx, 0x1c
shl r11, 0xe
xor rax, r11
cmp r9, 0xfffffffffffffffc
ja 0x2166bda71
movq xmm0, rax
movq xmm1, rcx
mov qword [rsp + 0x50], r10
and r9d, 0x7fffffff
punpcklqdq xmm0, xmm1
movaps xmmword [0x2167e74b0], xmm0
mov dword [r10 + 4], r9d
jmp 0x2166bd68c