Function at 0x140003eb0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x10], rax
movzx esi, byte [rcx]
mov rdi, qword [rbp + 0x60]
mov r11d, dword [rdx + 0xc]
mov qword [rsp + 0x48], r8
mov r10, rdx
mov qword [rsp + 0x30], rdx
mov rbx, rcx
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x3c], esi
cmp esi, 3
jne 0x140004005
mov byte [rcx], 1
xor esi, esi
lea rax, [rcx + 4]
nop dword [rax + rax]
lea rcx, [rsp + 0x60]
mov r9d, 0x80
mov r8, rax
mov qword [rsp + 0x20], rcx
mov rcx, rbx
mov rdx, r10
call fcn.140003eb0
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
mov r8d, 0x80
sar r8d, cl
and edx, 7
movzx ecx, sil
add eax, edx
and cl, 7
mov r11d, 4
sar eax, 3
movsxd rdx, eax
mov rax, qword [rsp + 0x48]
movzx r10d, byte [rdx + rax]
movzx eax, byte [rsp + 0x60]
and r10b, r8b
and al, 0x80
not r8b
and r8b, byte [rdx + rdi]
shr al, cl
xor r10b, al
mov eax, 7
sub al, cl
or r8b, r10b
movzx ecx, al
mov byte [rdx + rdi], r8b
shr r10b, cl
lea rcx, [rbx + 0x12]
nop
movzx eax, byte [rcx + 1]
lea rcx, [rcx - 4]
movzx edx, al
add al, al
xor al, r10b
shr dl, 7
mov byte [rcx + 5], al
movzx eax, byte [rcx + 4]
movzx r8d, al
add al, al
xor al, dl
movzx edx, byte [rcx + 2]
shr r8b, 7
mov byte [rcx + 4], al
movzx eax, byte [rcx + 3]
movzx r10d, dl
movzx r9d, al
add dl, dl
add al, al
shr r9b, 7
xor al, r8b
shr r10b, 7
xor dl, r9b
mov byte [rcx + 3], al
mov byte [rcx + 2], dl
dec r11
jne 0x140003f90
mov r10, qword [rsp + 0x30]
inc esi
lea rax, [rbx + 4]
cmp esi, 0x80
jl 0x140003f10
mov byte [rbx], 3
jmp 0x140004c37
cmp byte [rdx], 0
je 0x140004050
lea r8, [rdx + 0x60]
lea eax, [r11 + r11]
movsxd r9, eax
add r9, 0xfffffffffffffffe
lea r9, [r8 + r9*4]
cmp r8, r9
jae 0x14000404c
mov eax, dword [r9]
mov edx, dword [r8]
mov ecx, dword [r8 + 4]
mov dword [r8], eax
mov eax, dword [r9 + 4]
sub r9, 8
mov dword [r8 + 4], eax
mov dword [r9 + 8], edx
mov dword [r9 + 0xc], ecx
add r8, 8
cmp r8, r9
jb 0x140004022
mov byte [r10], 0
lea eax, [r11*2 + 8]
lea rdx, [r10 + 0x40]
lea rcx, [rsp + 0x70]
movsxd r8, eax
shl r8, 2
call fcn.140007160
cmp esi, 2
jne 0x140004086
mov r8d, dword [rbx + 0x24]
mov esi, dword [rbx + 0x18]
mov ecx, dword [rbx + 0x1c]
mov edx, dword [rbx + 0x20]
mov dword [rsp + 0x38], r8d
jmp 0x140004093
xor esi, esi
mov r8d, esi
mov dword [rsp + 0x38], esi
mov edx, esi
mov ecx, esi
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x40], edx
mov ebx, dword [rax]
mov r11d, dword [rax + 4]
mov r10d, dword [rax + 8]
mov r9d, dword [rax + 0xc]
xor r11d, ecx
xor r10d, edx
mov rdx, qword [rsp + 0x30]
xor r9d, dword [rsp + 0x7c]
xor r10d, dword [rsp + 0x78]
xor r11d, dword [rsp + 0x74]
mov dword [rsp + 0x68], r10d
xor r9d, r8d
mov dword [rsp + 0x6c], r9d
mov dword [rsp + 0x64], r11d
xor ebx, esi
rol r9d, 1
xor ebx, dword [rsp + 0x70]
mov dword [rsp + 0x60], ebx
movzx ecx, byte [rsp + 0x62]
movzx eax, bl
mov r8d, dword [rdx + rcx*8 + 0x8e0]
movzx ecx, byte [rsp + 0x65]
xor r8d, dword [rdx + rax*8 + 0xe0]
movzx eax, byte [rsp + 0x63]
xor r8d, dword [rdx + rax*8 + 0x8e4]
movzx eax, byte [rsp + 0x61]
xor r8d, dword [rdx + rax*8 + 0xe4]
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rsp + 0x67]
xor edx, dword [rcx + rax*8 + 0xe0]
movzx eax, byte [rsp + 0x66]
xor edx, dword [rcx + rax*8 + 0x8e4]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp + 0xc]
mov ecx, dword [rbp + 8]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov dword [rsp + 0x68], r10d
mov eax, r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
rol r11d, 1
mov eax, dword [rbp + 4]
mov ecx, dword [rbp]
rol r9d, 1
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
add ecx, r8d
ror ebx, 1
xor r11d, ecx
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
mov dword [rsp + 0x64], r11d
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 4]
mov ecx, dword [rbp - 8]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov dword [rsp + 0x68], r10d
mov eax, r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
rol r11d, 1
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
rol r9d, 1
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0xc]
mov ecx, dword [rbp - 0x10]
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
add ecx, r8d
xor r11d, ecx
ror ebx, 1
mov dword [rsp + 0x64], r11d
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x14]
mov ecx, dword [rbp - 0x18]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov dword [rsp + 0x68], r10d
mov eax, r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
rol r11d, 1
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
mov eax, r9d
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
rol r9d, 1
mov eax, dword [rbp - 0x1c]
mov ecx, dword [rbp - 0x20]
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
add ecx, r8d
xor r11d, ecx
mov dword [rsp + 0x64], r11d
ror ebx, 1
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x24]
mov ecx, dword [rbp - 0x28]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov eax, r10d
mov dword [rsp + 0x68], r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
rol r11d, 1
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x2c]
rol r9d, 1
mov ecx, dword [rbp - 0x30]
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror ebx, 1
add ecx, r8d
xor r11d, ecx
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
mov dword [rsp + 0x64], r11d
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov ecx, dword [rbp - 0x38]
mov eax, dword [rbp - 0x34]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov eax, r10d
mov dword [rsp + 0x68], r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
rol r11d, 1
mov rdx, qword [rsp + 0x30]
shr eax, 0x18
mov r8d, dword [rdx + rcx*8 + 0x8e0]
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x3c]
mov ecx, dword [rbp - 0x40]
rol r9d, 1
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
add ecx, r8d
ror ebx, 1
xor r11d, ecx
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
mov dword [rsp + 0x64], r11d
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov ecx, dword [rbp - 0x48]
mov eax, dword [rbp - 0x44]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
add ecx, r8d
xor r9d, ecx
ror r10d, 1
mov rdx, qword [rsp + 0x30]
mov dword [rsp + 0x6c], r9d
mov dword [rsp + 0x68], r10d
mov eax, r10d
shr eax, 0x10
movzx ecx, al
rol r11d, 1
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x4c]
mov ecx, dword [rbp - 0x50]
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror ebx, 1
add ecx, r8d
xor r11d, ecx
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
mov dword [rsp + 0x64], r11d
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov ecx, dword [rbp - 0x58]
rol r9d, 1
rol r11d, 1
mov eax, dword [rbp - 0x54]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov dword [rsp + 0x68], r10d
mov eax, r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x5c]
mov ecx, dword [rbp - 0x60]
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror ebx, 1
add ecx, r8d
xor r11d, ecx
mov dword [rsp + 0x60], ebx
mov eax, ebx
shr eax, 0x10
mov dword [rsp + 0x64], r11d
movzx ecx, al
mov eax, ebx
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, r11d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
rol r9d, 1
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r11b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x64]
rol r11d, 1
mov ecx, dword [rbp - 0x68]
add ecx, edx
add ecx, r8d
xor r10d, ecx
lea ecx, [rax + rdx*2]
mov rdx, qword [rsp + 0x30]
ror r10d, 1
add ecx, r8d
xor r9d, ecx
mov dword [rsp + 0x68], r10d
mov eax, r10d
shr eax, 0x10
mov dword [rsp + 0x6c], r9d
movzx ecx, al
mov eax, r10d
mov r8d, dword [rdx + rcx*8 + 0x8e0]
shr eax, 0x18
movzx eax, al
xor r8d, dword [rdx + rax*8 + 0x8e4]
mov eax, r10d
shr eax, 8
movzx ecx, al
movzx eax, r10b
xor r10d, dword [rbp - 0x80]
xor r8d, dword [rdx + rcx*8 + 0xe4]
xor r8d, dword [rdx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, r9d
mov edx, dword [rdx + rcx*8 + 0x8e0]
mov rcx, qword [rsp + 0x30]
shr eax, 0x18
movzx eax, al
xor edx, dword [rcx + rax*8 + 0xe0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov rax, qword [rsp + 0x30]
xor edx, dword [rax + rcx*8 + 0x8e4]
mov rcx, qword [rsp + 0x30]
movzx eax, r9b
xor edx, dword [rcx + rax*8 + 0xe4]
mov eax, dword [rbp - 0x6c]
xor r9d, dword [rbp - 0x7c]
mov ecx, dword [rbp - 0x70]
add ecx, edx
add ecx, r8d
xor ebx, ecx
lea ecx, [rax + rdx*2]
mov rax, rdi
add ecx, r8d
ror ebx, 1
mov dword [rax], r10d
xor ebx, dword [rbp - 0x78]
xor r11d, ecx
mov dword [rax + 4], r9d
xor r11d, dword [rbp - 0x74]
cmp dword [rsp + 0x3c], 2
mov dword [rax + 8], ebx
mov dword [rax + 0xc], r11d
jne 0x140004c11
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x60], xmm0
mov r8d, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x64]
mov esi, dword [rsp + 0x60]
jmp 0x140004c1e
mov ecx, dword [rsp + 0x44]
mov edx, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x38]
cmp dword [rsp + 0x3c], 2
jne 0x140004c37
mov rax, qword [rsp + 0x50]
mov dword [rax + 0x18], esi
mov dword [rax + 0x1c], ecx
mov dword [rax + 0x20], edx
mov dword [rax + 0x24], r8d
mov eax, 0x80
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.140001010
mov rbx, qword [rsp + 0x150]
add rsp, 0x120
pop rdi
pop rsi
pop rbp
ret