Function at 0x140269850
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rax, qword [rsp + 0x100]
mov r15d, dword [rax]
mov eax, dword [rax + 4]
mov rbp, rdx
mov dword [rsp + 0x38], eax
mov r10d, r8d
mov rdi, rcx
mov rdx, qword [rsp + 0xf8]
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0xe8], r9
lea r8d, [r8 - 8]
mov esi, dword [rdx]
mov ebx, dword [rax + 4]
mov dword [rsp + 0x2c], esi
mov esi, dword [rdx + 4]
mov dword [rsp + 0x3c], esi
mov esi, dword [rax]
mov eax, dword [rsp + 0x108]
test eax, eax
je 0x140269a70
test r8d, r8d
js 0x140269d58
mov ecx, r8d
mov dword [rsp + 0x6c], r8d
mov r12, rdi
shr ecx, 3
mov qword [rsp + 0xd0], rdi
lea eax, [rcx + 1]
mov dword [rsp + 0x68], ecx
lea r9, [rax*8]
mov dword [rsp + 0xe0], r10d
lea rax, [rbp + r9]
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
nop word [rax + rax]
mov edx, dword [r12]
mov edi, dword [rsp + 0x2c]
add rbp, 8
add r12, 8
mov eax, dword [r12 - 4]
mov rcx, qword [rsp + 0x30]
mov r8d, 1
xor edx, edi
mov edi, dword [rsp + 0x3c]
xor edx, esi
mov dword [rsp + 0x78], edx
xor eax, edi
mov rdx, qword [rsp + 0xe8]
xor eax, ebx
mov dword [rsp + 0x7c], eax
call fcn.140244ff0
mov ebx, dword [rsp + 0x38]
xor ebx, dword [rsp + 0x7c]
mov eax, ebx
mov r11d, ebx
mov r10d, ebx
mov esi, dword [rsp + 0x78]
shr eax, 0x18
shr r11d, 0x10
movzx r14d, bl
mov edi, eax
movzx eax, al
mov r13d, r11d
movzx r11d, r11b
shl rax, 8
shr r10d, 8
xor esi, r15d
or rax, r11
mov byte [rsp + 0x54], r10b
movzx r10d, r10b
mov r9d, esi
shl rax, 8
movzx r11d, bl
shr r9d, 0x18
mov r8d, esi
or rax, r10
mov edx, r9d
movzx r9d, r9b
shr r8d, 0x10
shl rax, 8
mov byte [rsp + 0x48], r8b
mov ecx, esi
movzx r8d, r8b
or rax, r11
shr ecx, 8
mov byte [rsp + 0x40], sil
shl rax, 8
mov byte [rsp + 0x50], cl
movzx ecx, cl
or rax, r9
shl rax, 8
or rax, r8
movzx r8d, sil
shl rax, 8
or rax, rcx
shl rax, 8
or rax, r8
mov qword [rbp - 8], rax
cmp qword [rsp + 0x58], rbp
jne 0x140269910
mov ecx, dword [rsp + 0x68]
mov r10d, dword [rsp + 0xe0]
mov ebp, edi
mov r9, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x6c]
mov eax, ecx
mov rdi, qword [rsp + 0xd0]
neg eax
shl eax, 3
lea ecx, [r10 + rax - 0x10]
cmp ecx, 0xfffffff8
je 0x140269cc2
add rdi, r9
lea r10d, [rax + r8]
movsxd rax, r10d
add rax, rdi
movzx ecx, byte [rax - 1]
cmp r10d, 7
ja case.0x140269a64.0
lea r8, [0x140451ffc]
mov edx, r10d
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
cmp r10d, 8
jle 0x140269d40
lea eax, [r10 - 9]
mov dword [rsp + 0x54], r8d
mov r14, rbp
shr eax, 3
mov qword [rsp + 0xd8], rbp
mov ebp, ebx
mov r13d, eax
lea eax, [rax + 1]
lea r12, [rax*8]
mov dword [rsp + 0x50], r13d
lea rax, [rcx + r12]
mov qword [rsp + 0x48], r12
mov r12d, dword [rsp + 0x3c]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
nop dword [rax + rax]
mov ebx, esi
mov esi, dword [rdi]
mov eax, r15d
mov r13d, ebp
mov ebp, dword [rdi + 4]
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
add r14, 8
xor eax, esi
mov rdx, qword [rsp + 0xe8]
add rdi, 8
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x38]
xor eax, ebp
mov dword [rsp + 0x7c], eax
call fcn.140244ff0
mov ecx, dword [rsp + 0x7c]
mov edx, dword [rsp + 0x2c]
xor edx, dword [rsp + 0x78]
xor ecx, r12d
xor edx, ebx
xor ecx, r13d
mov r11d, edx
mov r10d, edx
mov r8d, edx
mov eax, ecx
mov r13d, ecx
mov ebx, ecx
movzx ecx, cl
shr eax, 0x18
shr r13d, 0x10
movzx edx, dl
shr ebx, 8
movzx eax, al
movzx r13d, r13b
shr r11d, 0x18
shl rax, 8
movzx ebx, bl
movzx r11d, r11b
shr r10d, 0x10
or rax, r13
movzx r10d, r10b
shr r8d, 8
shl rax, 8
movzx r8d, r8b
or rax, rbx
shl rax, 8
or rax, rcx
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r8
shl rax, 8
or rax, rdx
mov qword [r14 - 8], rax
cmp qword [rsp + 0x40], rdi
jne 0x140269ac8
mov r13d, dword [rsp + 0x50]
mov r12, qword [rsp + 0x48]
mov ebx, ebp
mov r8d, dword [rsp + 0x54]
mov rbp, qword [rsp + 0xd8]
neg r13d
add rbp, r12
lea r10d, [r8 + r13*8]
mov rdi, qword [rsp + 0x40]
mov eax, r15d
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
mov rdx, qword [rsp + 0xe8]
mov dword [rsp + 0xe0], r10d
mov r12d, dword [rdi]
mov r15d, dword [rdi + 4]
xor eax, r12d
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x38]
xor eax, r15d
mov dword [rsp + 0x7c], eax
call fcn.140244ff0
mov eax, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x3c]
movsxd rcx, dword [rsp + 0xe0]
xor eax, dword [rsp + 0x78]
xor edx, dword [rsp + 0x7c]
xor eax, esi
mov r10, rcx
xor edx, ebx
add rcx, rbp
cmp r10d, 8
ja case.0x140269c32.0
lea r9, [0x14045201c]
mov r10d, r10d
movsxd r8, dword [r9 + r10*4]
add r8, r9
jmp r8
mov r8d, edx
sub rcx, 1
shr r8d, 0x18
mov byte [rcx], r8b
mov r8d, edx
sub rcx, 1
shr r8d, 0x10
mov byte [rcx], r8b
mov byte [rcx - 1], dh
sub rcx, 1
mov byte [rcx - 1], dl
sub rcx, 1
mov edx, eax
sub rcx, 1
shr edx, 0x18
mov byte [rcx], dl
mov r8d, eax
lea rdx, [rcx - 1]
shr r8d, 0x10
mov byte [rcx - 1], r8b
mov byte [rdx - 1], ah
lea rcx, [rdx - 1]
mov byte [rcx - 1], al
mov eax, r12d
mov r13d, r15d
movzx r14d, r15b
movzx eax, ah
mov byte [rsp + 0x40], r12b
shr r13d, 0x10
mov dword [rsp + 0x50], eax
mov eax, r12d
shr r12d, 0x18
shr eax, 0x10
mov edx, r12d
mov byte [rsp + 0x48], al
mov eax, r15d
shr r15d, 0x18
movzx eax, ah
mov ebp, r15d
mov dword [rsp + 0x54], eax
movzx eax, bpl
movzx r13d, r13b
movzx r15d, byte [rsp + 0x54]
movzx edx, dl
shl rax, 8
mov rdi, qword [rsp + 0xf0]
or rax, r13
shl rax, 8
or rax, r15
shl rax, 8
or rax, r14
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x48]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x50]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x40]
shl rax, 8
or rax, rdx
mov qword [rdi], rax
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rcx
jmp 0x140269c7c
lea rax, [rsp + 0x78]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x30], rax
jmp 0x140269bbb
lea rax, [rsp + 0x78]
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x30], rax
jmp 0x140269a3f
xor ecx, ecx
xor r9d, r9d
movzx r8d, byte [rax - 1]
lea rdx, [rax - 1]
shl r8d, 0x10
or r8d, r9d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 8
or edx, r8d
movzx eax, byte [rax - 1]
mov edi, dword [rsp + 0x2c]
mov r8d, 1
or eax, edx
xor esi, edi
mov rdx, qword [rsp + 0xe8]
xor esi, eax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x78], esi
xor eax, ebx
mov ebx, eax
xor ebx, ecx
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x7c], ebx
call fcn.140244ff0
mov r8d, dword [rsp + 0x38]
xor r8d, dword [rsp + 0x7c]
mov eax, r8d
mov ebx, r8d
mov r11d, r8d
mov ecx, dword [rsp + 0x78]
shr eax, 0x18
shr ebx, 0x10
movzx r14d, r8b
movzx r8d, r8b
mov ebp, eax
movzx eax, al
mov r13d, ebx
movzx ebx, bl
shl rax, 8
shr r11d, 8
xor ecx, r15d
or rax, rbx
mov byte [rsp + 0x54], r11b
movzx r11d, r11b
mov r10d, ecx
shl rax, 8
shr r10d, 0x18
mov r9d, ecx
mov esi, ecx
or rax, r11
mov edx, r10d
movzx r10d, r10b
shr r9d, 0x10
shl rax, 8
mov byte [rsp + 0x48], r9b
shr esi, 8
or rax, r8
movzx r8d, r9b
mov byte [rsp + 0x50], sil
shl rax, 8
mov byte [rsp + 0x40], cl
or rax, r10
shl rax, 8
mov r9, rax
movzx eax, sil
or r9, r8
mov rsi, r9
shl rsi, 8
or rsi, rax
movzx eax, cl
shl rsi, 8
mov rcx, rsi
or rcx, rax
mov rax, qword [rsp + 0x58]
mov qword [rax], rcx
jmp 0x140269cc2
mov rdx, rax
xor ecx, ecx
xor r8d, r8d
jmp 0x140269d85
xor ecx, ecx
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 8
or edx, ecx
movzx ecx, byte [rax - 1]
lea r8, [rax - 1]
or ecx, edx
movzx r9d, byte [r8 - 1]
lea rax, [r8 - 1]
shl r9d, 0x18
jmp 0x140269d75
xor edx, edx
jmp 0x140269ea7
mov r8, rax
xor ecx, ecx
jmp 0x140269eb1
sub rax, 1
shl ecx, 0x10
jmp 0x140269e9a
xor ecx, ecx
xor edx, edx
jmp 0x140269d93