Function at 0x100120240
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x168
mov eax, dword [r8 + 4]
xor ebp, ebp
mov r10d, edx
mov r9d, eax
add eax, edx
mov ebx, ebp
and r9d, 0x3f
mov r14, rcx
lea r12d, [rbp + 1]
mov dword [rsp + 0x1c8], ebx
mov dword [r8 + 4], eax
cmp eax, edx
jae 0x10012028e
add dword [r8], r12d
mov eax, 0x40
sub eax, r9d
cmp edx, eax
jb 0x1001204b3
lea rdx, [r8 + 8]
lea r11, [r8 + 0x48]
mov r13d, 0x14
cmp r9d, ebp
jbe 0x1001202c8
mov ecx, 0x40
mov eax, r9d
mov esi, ebx
sub ecx, r9d
lea rdi, [rax + r8 + 8]
add rsi, r14
rep movsb byte [rdi], byte [rsi]
mov eax, ebx
lea rdi, [rsp + 0x20]
mov esi, 0x10
add rax, r14
cmp r9d, ebp
cmova rax, rdx
lea rdx, [rax + 1]
movzx eax, byte [rdx]
movzx ecx, byte [rdx - 1]
add rdx, 4
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx - 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx - 2]
shl ecx, 8
or ecx, eax
mov dword [rdi], ecx
add rdi, 4
sub rsi, r12
jne 0x1001202e2
lea rdi, [rsp]
mov rsi, r11
mov rcx, r13
rep movsb byte [rdi], byte [rsi]
mov ecx, 0x40
lea rdx, [rsp + 0x28]
mov eax, dword [rdx + 0x2c]
xor eax, dword [rdx + 0x18]
xor eax, dword [rdx - 8]
xor eax, dword [rdx]
add rdx, 4
rol eax, 1
sub rcx, r12
mov dword [rdx + 0x34], eax
jne 0x100120325
movzx edx, bp
lea r13, [rsp + 0x20]
xor r14d, r14d
lea ebx, [rcx + 0x3c]
lea r8d, [rcx + 0x14]
lea r10d, [rcx + 0x28]
mov r15d, dword [r11]
mov esi, dword [r11 + 0xc]
mov ebp, dword [r11 + 8]
mov edi, dword [r11 + 4]
mov r12d, r15d
movsx eax, dx
rol r12d, 5
cmp eax, ebx
jl 0x100120379
mov ecx, edi
xor ecx, ebp
xor ecx, esi
jmp 0x1001203a5
cmp eax, r10d
jl 0x10012038c
mov ecx, ebp
mov eax, ebp
or ecx, esi
and ecx, edi
and eax, esi
or ecx, eax
jmp 0x1001203a5
cmp eax, r8d
jge 0x100120371
cmp eax, r14d
jl 0x1001203a2
mov ecx, edi
mov eax, edi
not ecx
and ecx, esi
and eax, ebp
jmp 0x100120388
mov ecx, r14d
mov eax, dword [r13]
add eax, dword [r11 + 0x10]
add eax, ecx
add r12d, eax
cmp dx, bx
jl 0x1001203c4
mov eax, dword [0x100153ea0]
xor eax, 0x2932fcbe
jmp 0x100120400
cmp dx, r10w
jl 0x1001203d7
mov eax, dword [0x100153ea4]
xor eax, 0x2dfea903
jmp 0x100120400
cmp dx, r8w
jl 0x1001203ea
mov eax, dword [0x100153ea8]
xor eax, 0x1f09debd
jmp 0x100120400
cmp dx, r14w
jl 0x1001203fd
mov eax, dword [0x100153eac]
xor eax, 0x97f53ba
jmp 0x100120400
mov eax, r14d
add eax, r12d
ror edi, 2
mov r12d, 1
add dx, r12w
add r13, 4
mov dword [r11 + 0x10], esi
cmp dx, 0x50
mov dword [r11 + 0xc], ebp
mov dword [r11 + 8], edi
mov dword [r11 + 4], r15d
mov dword [r11], eax
jl 0x100120354
mov r8, qword [rsp + 0x1c0]
mov r10d, dword [rsp + 0x1b8]
mov ebx, dword [rsp + 0x1c8]
mov r14, qword [rsp + 0x1b0]
lea rax, [rsp]
mov rdx, r11
lea rcx, [rsp]
lea edi, [r12 + 4]
sub rdx, rax
mov eax, dword [rdx + rcx]
add dword [rcx], eax
add rcx, 4
sub rdi, r12
jne 0x100120463
lea r10d, [r10 + r9 - 0x40]
mov r13d, 0x14
xor ebp, ebp
lea eax, [r13 + 0x2c]
lea rsi, [rsp]
mov rdi, r11
sub eax, r9d
mov rcx, r13
mov dword [rsp + 0x1b8], r10d
add ebx, eax
rep movsb byte [rdi], byte [rsi]
mov r9d, ebp
mov dword [rsp + 0x1c8], ebx
lea rdx, [r8 + 8]
cmp r10d, 0x40
jae 0x1001202ac
cmp r10d, ebp
je 0x1001204ca
mov eax, r9d
mov esi, ebx
mov ecx, r10d
lea rdi, [rax + r8 + 8]
add rsi, r14
rep movsb byte [rdi], byte [rsi]
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret