Function at 0x5f1830
Capabilities:
Encode data using xor
Encrypt data using camellia

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
movzx ebp, byte [r8]
movzx eax, byte [r8 + 1]
movzx ebx, byte [r8 + 8]
mov rdi, rcx
mov rsi, r8
shl rax, 0x30
shl rbp, 0x38
or rbp, rax
movzx eax, byte [r8 + 7]
shl rbx, 0x38
or rbp, rax
movzx eax, byte [r8 + 2]
shl rax, 0x28
or rbp, rax
movzx eax, byte [r8 + 3]
shl rax, 0x20
or rbp, rax
movzx eax, byte [r8 + 4]
shl rax, 0x18
or rbp, rax
movzx eax, byte [r8 + 5]
shl rax, 0x10
or rbp, rax
movzx eax, byte [r8 + 6]
shl rax, 8
or rbp, rax
movzx eax, byte [r8 + 9]
shl rax, 0x30
or rbx, rax
movzx eax, byte [r8 + 0xf]
or rbx, rax
movzx eax, byte [r8 + 0xa]
shl rax, 0x28
or rbx, rax
movzx eax, byte [r8 + 0xb]
shl rax, 0x20
or rbx, rax
movzx eax, byte [r8 + 0xc]
shl rax, 0x18
or rbx, rax
movzx eax, byte [r8 + 0xd]
shl rax, 0x10
or rbx, rax
movzx eax, byte [r8 + 0xe]
shl rax, 8
or rbx, rax
cmp edx, 0x10
je 0x5f22b5
mov dword [rcx], 0x20
movzx r12d, byte [r8 + 0x10]
movzx eax, byte [r8 + 0x11]
shl r12, 0x38
shl rax, 0x30
or r12, rax
movzx eax, byte [r8 + 0x17]
or r12, rax
movzx eax, byte [r8 + 0x12]
shl rax, 0x28
or r12, rax
movzx eax, byte [r8 + 0x13]
shl rax, 0x20
or r12, rax
movzx eax, byte [r8 + 0x14]
shl rax, 0x18
or r12, rax
movzx eax, byte [r8 + 0x15]
shl rax, 0x10
or r12, rax
movzx eax, byte [r8 + 0x16]
shl rax, 8
or r12, rax
cmp edx, 0x18
je 0x5f2775
cmp edx, 0x20
je 0x5f2260
lea rdx, str.camellia_set_encrypt_key.c
lea rcx, str.length__32
mov r8d, 0xab
call fcn.0064b2d0
mov r9d, dword [rdi]
lea r11d, [r9 + 1]
lea r10d, [r9 - 8]
movzx eax, byte [rsi + 0x18]
movzx edx, byte [rsi + 0x19]
shl rax, 0x38
shl rdx, 0x30
or rax, rdx
movzx edx, byte [rsi + 0x1f]
or rax, rdx
movzx edx, byte [rsi + 0x1a]
shl rdx, 0x28
or rax, rdx
movzx edx, byte [rsi + 0x1b]
shl rdx, 0x20
or rax, rdx
movzx edx, byte [rsi + 0x1c]
shl rdx, 0x18
or rax, rdx
movzx edx, byte [rsi + 0x1d]
shl rdx, 0x10
or rax, rdx
movzx edx, byte [rsi + 0x1e]
shl rdx, 8
or rax, rdx
mov rdx, rbp
mov r8, rbx
mov rcx, rbx
shl rdx, 0x2d
shr r8, 0x13
shl rcx, 0x2d
or r8, rdx
mov rdx, rbp
mov qword [rsp + 0x30], rbp
shr rdx, 0x13
mov rsi, r8
mov qword [rsp + 0x90], r8
or rdx, rcx
shl rsi, 0xf
shr r8, 0x31
mov rcx, rdx
mov qword [rsp + 0x98], rdx
shl rdx, 0xf
shr rcx, 0x31
or r8, rdx
mov qword [rsp + 0x38], rbx
or rcx, rsi
mov rdx, r8
mov qword [rsp + 0xb8], r8
mov rsi, rcx
shl r8, 0x11
mov qword [rsp + 0xb0], rcx
shl rsi, 0x11
shr rdx, 0x2f
shr rcx, 0x2f
or rdx, rsi
or rcx, r8
mov r8, rcx
mov rsi, rdx
mov qword [rsp + 0xe0], rdx
shl r8, 0x22
shl rsi, 0x22
mov qword [rsp + 0xe8], rcx
shr rdx, 0x1e
shr rcx, 0x1e
or rcx, rsi
or rdx, r8
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rdx
mov rcx, rax
mov rdx, r12
shl rax, 0xf
shr r12, 0x31
shl rdx, 0xf
shr rcx, 0x31
mov r8, rax
or rcx, rdx
or r8, r12
mov rdx, r8
mov rax, rcx
mov qword [rsp + 0x50], rcx
shl rax, 0xf
shr rdx, 0x31
or rdx, rax
mov rax, r8
shl rax, 0xf
shr rcx, 0x31
mov rsi, rdx
or rcx, rax
shl rsi, 0x1e
mov qword [rsp + 0x70], rdx
mov rax, rcx
mov qword [rsp + 0x78], rcx
shr rdx, 0x22
shl rcx, 0x1e
shr rax, 0x22
or rax, rsi
or rdx, rcx
mov rcx, rdx
mov rsi, rax
mov qword [rsp + 0xc0], rax
shl rsi, 0x22
mov qword [rsp + 0xc8], rdx
shr rcx, 0x1e
shl rdx, 0x22
shr rax, 0x1e
or rcx, rsi
or rax, rdx
mov rdx, rcx
mov qword [rsp + 0x100], rcx
mov r12, rax
shl rdx, 0x22
shr rcx, 0x1e
shr r12, 0x1e
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x108], rax
or r12, rdx
movabs rdx, 0xa09e667f3bcc908b
shl rax, 0x22
xor rdx, rbp
or qword [rsp + 0x20], rax
lea rax, [0x007b8b20]
xor rdx, r12
mov rsi, rdx
mov rbp, rdx
mov r13, rdx
shr rsi, 0x18
shr rbp, 0x10
shr r13, 0x28
movzx ebp, bpl
movzx esi, sil
movzx r13d, r13b
mov esi, dword [rax + rsi*4 + 0x400]
xor esi, dword [rax + rbp*4 + 0x800]
movzx ebp, dl
xor esi, dword [rax + rbp*4]
movzx ebp, dh
xor esi, dword [rax + rbp*4 + 0xc00]
mov rbp, rdx
shr rbp, 0x30
movzx ebp, bpl
mov ebp, dword [rax + rbp*4 + 0x400]
xor ebp, dword [rax + r13*4 + 0x800]
mov r13, rdx
shr r13, 0x38
xor ebp, dword [rax + r13*4]
shr rdx, 0x20
movzx edx, dl
xor ebp, dword [rax + rdx*4 + 0xc00]
movabs rdx, 0xb67ae8584caa73b2
xor rdx, rbx
xor rdx, qword [rsp + 0x20]
xor esi, ebp
ror ebp, 8
xor ebp, esi
shl rsi, 0x20
or rbp, rsi
xor rdx, rbp
mov rsi, rdx
mov r13, rdx
mov r14, rdx
shr rsi, 0x18
shr r13, 0x10
shr r14, 0x30
movzx r13d, r13b
movzx esi, sil
movzx r14d, r14b
mov esi, dword [rax + rsi*4 + 0x400]
xor esi, dword [rax + r13*4 + 0x800]
movzx r13d, dl
xor esi, dword [rax + r13*4]
mov r13, rdx
mov r14d, dword [rax + r14*4 + 0x400]
shr r13, 0x28
movzx ecx, dh
movzx r13d, r13b
xor esi, dword [rax + rcx*4 + 0xc00]
xor r14d, dword [rax + r13*4 + 0x800]
mov r13, rdx
shr rdx, 0x20
shr r13, 0x38
movzx edx, dl
xor r14d, dword [rax + r13*4]
xor r14d, dword [rax + rdx*4 + 0xc00]
xor esi, r14d
ror r14d, 8
xor r14d, esi
shl rsi, 0x20
or r14, rsi
movabs rsi, 0xc6ef372fe94f82be
xor r14, r12
xor rsi, r14
mov rdx, rsi
mov r13, rsi
mov rcx, rsi
shr rdx, 0x18
shr r13, 0x10
movzx ecx, ch
movzx r13d, r13b
movzx edx, dl
mov r15, rsi
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + r13*4 + 0x800]
movzx r13d, sil
xor edx, dword [rax + r13*4]
mov r13, rsi
xor edx, dword [rax + rcx*4 + 0xc00]
shr r13, 0x30
shr r15, 0x28
movzx r15d, r15b
movzx r13d, r13b
xor rbp, qword [rsp + 0x20]
mov r13d, dword [rax + r13*4 + 0x400]
xor r13d, dword [rax + r15*4 + 0x800]
mov r15, rsi
shr r15, 0x38
shr rsi, 0x20
xor r13d, dword [rax + r15*4]
movzx esi, sil
xor r13d, dword [rax + rsi*4 + 0xc00]
xor edx, r13d
ror r13d, 8
xor r13d, edx
shl rdx, 0x20
or r13, rdx
xor rbp, r13
movabs r13, 0x54ff53a5f1d36f1c
xor r13, rbp
mov rdx, r13
mov rsi, r13
mov rcx, r13
shr rdx, 0x18
shr rsi, 0x10
mov r15, r13
movzx esi, sil
movzx edx, dl
shr r15, 0x28
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + rsi*4 + 0x800]
movzx esi, r13b
xor edx, dword [rax + rsi*4]
movzx esi, ch
movzx r15d, r15b
xor edx, dword [rax + rsi*4 + 0xc00]
mov rsi, r13
shr rsi, 0x30
movzx esi, sil
mov esi, dword [rax + rsi*4 + 0x400]
xor esi, dword [rax + r15*4 + 0x800]
mov r15, r13
shr r15, 0x38
shr r13, 0x20
xor esi, dword [rax + r15*4]
movzx r13d, r13b
xor esi, dword [rax + r13*4 + 0xc00]
xor edx, esi
ror esi, 8
mov ecx, esi
xor ecx, edx
shl rdx, 0x20
mov qword [rsp + 0x28], rcx
or qword [rsp + 0x28], rdx
xor qword [rsp + 0x28], r14
mov rcx, qword [rsp + 0x20]
xor r12, qword [rsp + 0x28]
xor rcx, rbp
mov r13, rcx
movabs rcx, 0x10e527fade682d1d
xor rcx, r12
mov rdx, rcx
mov r14, rcx
mov r15, rcx
shr rdx, 0x18
shr r14, 0x10
shr r15, 0x28
movzx r14d, r14b
movzx edx, dl
movzx r15d, r15b
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + r14*4 + 0x800]
movzx r14d, cl
xor edx, dword [rax + r14*4]
mov r14, rcx
movzx esi, ch
shr r14, 0x30
xor edx, dword [rax + rsi*4 + 0xc00]
movzx r14d, r14b
mov r14d, dword [rax + r14*4 + 0x400]
xor r14d, dword [rax + r15*4 + 0x800]
mov r15, rcx
shr r15, 0x38
shr rcx, 0x20
xor r14d, dword [rax + r15*4]
movzx ecx, cl
xor r14d, dword [rax + rcx*4 + 0xc00]
movabs rcx, 0xb05688c2b3e6c1fd
xor edx, r14d
ror r14d, 8
xor r14d, edx
shl rdx, 0x20
or r14, rdx
xor r13, r14
xor rcx, r13
mov rdx, rcx
mov r14, rcx
mov r15, rcx
shr rdx, 0x18
shr r14, 0x10
shr r15, 0x28
movzx r14d, r14b
movzx edx, dl
movzx r15d, r15b
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + r14*4 + 0x800]
movzx r14d, cl
xor edx, dword [rax + r14*4]
mov r14, rcx
movzx esi, ch
shr r14, 0x30
xor edx, dword [rax + rsi*4 + 0xc00]
mov rsi, qword [rsp + 0x28]
movzx r14d, r14b
mov r14d, dword [rax + r14*4 + 0x400]
xor r14d, dword [rax + r15*4 + 0x800]
mov r15, rcx
shr r15, 0x38
xor r14d, dword [rax + r15*4]
shr rcx, 0x20
movzx ecx, cl
xor r14d, dword [rax + rcx*4 + 0xc00]
mov rcx, rsi
mov rax, rbp
shr rax, 0x31
shl rbp, 0xf
shl rcx, 0xf
shr rsi, 0x31
or rcx, rax
or rsi, rbp
mov rax, rcx
mov qword [rsp + 0x60], rcx
xor edx, r14d
ror r14d, 8
shl rax, 0x1e
xor r14d, edx
shl rdx, 0x20
shr rcx, 0x22
or r14, rdx
mov rdx, rsi
shr rdx, 0x22
xor r14, r12
or rdx, rax
mov rax, rsi
mov qword [rsp + 0x40], r14
shl rax, 0x1e
mov rbp, rdx
mov qword [rsp + 0xa0], rdx
or rcx, rax
shl rbp, 0x20
shr rdx, 0x20
mov rax, rcx
mov qword [rsp + 0xa8], rcx
shl rcx, 0x20
shr rax, 0x20
or rdx, rcx
or rax, rbp
mov rcx, rdx
mov qword [rsp + 0xf8], rdx
mov rbp, rax
shl rcx, 0x11
mov qword [rsp + 0xf0], rax
shl rbp, 0x11
shr rdx, 0x2f
shr rax, 0x2f
or rdx, rbp
or rax, rcx
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x118], rax
mov rdx, r14
mov rax, r13
shl rdx, 0x1e
shr rax, 0x22
shr r14, 0x22
xor r8, rbx
or rdx, rax
mov rax, r13
xor rsi, rbx
shl rax, 0x1e
mov rcx, rdx
mov qword [rsp + 0x80], rdx
or r14, rax
shl rcx, 0x1e
shr rdx, 0x22
mov rax, r14
mov qword [rsp + 0x88], r14
shl r14, 0x1e
shr rax, 0x22
or rdx, r14
xor r13, rbx
or rax, rcx
mov rcx, rdx
mov rbp, rax
mov qword [rsp + 0xd0], rax
shl rcx, 0x33
shl rbp, 0x33
shr rax, 0xd
mov qword [rsp + 0xd8], rdx
shr rdx, 0xd
or rax, rcx
mov qword [rsp + 0x48], r13
or rdx, rbp
cmp r9d, 8
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x68], rsi
jbe 0x5f2752
lea rax, [rsp + 0x88]
mov ecx, 8
mov r8, qword [rax - 0x10]
add ecx, 8
mov rdx, r8
not rdx
and rdx, rbx
shl rdx, 0x20
xor rdx, rbx
mov rbx, r8
and rbx, rdx
shr rbx, 0x20
rol ebx, 1
xor rbx, rdx
xor qword [rax], rbx
xor qword [rax + 0x10], rbx
xor qword [rax + 0x20], rbx
add rax, 0x40
cmp ecx, r9d
jb 0x5f208e
mov r8d, r10d
xor qword [rsp + rcx*8 + 0x30], rbx
test r10d, r10d
mov rdx, qword [rsp + r11*8 + 0x30]
je 0x5f2128
nop word [rax + rax]
lea eax, [r8 + 6]
xor qword [rsp + rax*8 + 0x30], rdx
lea eax, [r8 + 4]
xor qword [rsp + rax*8 + 0x30], rdx
lea eax, [r8 + 2]
xor qword [rsp + rax*8 + 0x30], rdx
mov eax, r8d
mov rcx, qword [rsp + rax*8 + 0x30]
mov rax, rcx
not rax
and rax, rdx
shl rax, 0x20
xor rax, rdx
and rcx, rax
mov rdx, rcx
shr rdx, 0x20
rol edx, 1
xor rdx, rax
sub r8d, 8
jne 0x5f20e0
mov rbp, rdx
mov rax, rdx
mov rcx, rdx
xor rdx, qword [rsp + 0x30]
xor rcx, qword [rsp + 0x40]
xor rax, qword [rsp + 0x50]
xor rbp, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x68]
mov qword [rsp + 0x30], rdx
xor rdx, rcx
mov qword [rsp + 0x40], rcx
mov qword [rdi + 8], rdx
mov rdx, qword [rsp + 0x58]
xor rcx, rax
mov qword [rsp + 0x50], rax
mov qword [rdi + 0x10], r8
xor rax, rbp
mov qword [rsp + 0x60], rbp
mov qword [rdi + 0x18], rcx
xor r8, rdx
xor rdx, rbx
cmp r9d, 8
mov qword [rdi + 0x20], r8
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rdx
jbe 0x5f2760
lea rax, [rsp + 0x30]
mov rdx, rdi
mov r11d, 8
mov rsi, qword [rax + 0x40]
mov r10, qword [rax + 0x50]
add r11d, 8
add rax, 0x40
add rdx, 0x40
mov ecx, esi
mov r8, r10
mov qword [rdx], rsi
not ecx
shr r8, 0x20
and ecx, r10d
xor ecx, r8d
mov r8, rsi
mov rsi, rbx
shr r8, 0x20
shr rsi, 0x20
and r8d, ecx
shl rcx, 0x20
ror r8d, 0x1f
xor r8d, r10d
or r8, rcx
mov rcx, qword [rax + 8]
xor r8, rbp
mov qword [rdx - 8], r8
mov r8d, ecx
mov qword [rdx + 8], rcx
shr rcx, 0x20
not r8d
and r8d, ebx
xor r8d, esi
mov rsi, qword [rax + 0x18]
and ecx, r8d
shl r8, 0x20
ror ecx, 0x1f
xor ecx, ebx
or rcx, r8
mov r8, qword [rax + 0x20]
xor rcx, rsi
mov qword [rdx + 0x10], rcx
mov rcx, qword [rax + 0x28]
xor r10, r8
xor r8, qword [rax + 0x30]
mov qword [rdx + 0x18], r10
xor rsi, rcx
xor rcx, qword [rax + 0x38]
mov qword [rdx + 0x20], rsi
mov qword [rdx + 0x28], r8
mov qword [rdx + 0x30], rcx
cmp r11d, r9d
jae 0x5f2280
mov rbp, qword [rax + 0x30]
mov rbx, qword [rax + 0x38]
jmp 0x5f21a7
mov r10d, 0x18
mov r11d, 0x21
mov r9d, 0x20
jmp 0x5f1998
lea edx, [r11 - 2]
lea eax, [r11 - 1]
mov rbp, qword [rsp + rdx*8 + 0x30]
mov rbx, qword [rsp + rax*8 + 0x30]
xor rbx, qword [rsp + r11*8 + 0x30]
mov qword [rdi + rdx*8 + 8], rbp
mov qword [rdi + rax*8 + 8], rbx
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rbx
mov rax, rbp
mov r10, rbp
shl rax, 0xf
shr rdx, 0x31
shr r10, 0x31
or rdx, rax
mov rax, rbx
mov dword [rcx], 0x18
shl rax, 0xf
mov rcx, rdx
mov qword [rsp + 0x50], rdx
or r10, rax
shl rcx, 0x1e
shr rdx, 0x22
mov rax, r10
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rbx
shr rax, 0x22
or rax, rcx
mov rcx, r10
shl rcx, 0x1e
mov r8, rax
mov qword [rsp + 0x80], rax
or rdx, rcx
shl r8, 0xf
shr rax, 0x31
mov rcx, rdx
mov qword [rsp + 0x88], rdx
shl rdx, 0xf
shr rcx, 0x31
or rax, rdx
or rcx, r8
mov rdx, rax
mov qword [rsp + 0x98], rax
mov r8, rcx
shl rax, 0x11
shr rdx, 0x2f
shl r8, 0x11
shr rcx, 0x2f
or rdx, r8
or rcx, rax
mov rax, rcx
mov r8, rdx
mov qword [rsp + 0xb0], rdx
shl r8, 0x11
shr rax, 0x2f
mov qword [rsp + 0xb8], rcx
or rax, r8
shl rcx, 0x11
shr rdx, 0x2f
or rdx, rcx
mov r8, rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rdx
mov rcx, rdx
shl r8, 0x11
shr rdx, 0x2f
shl rcx, 0x11
or rdx, r8
shr rax, 0x2f
or rax, rcx
movabs rcx, 0xa09e667f3bcc908b
mov qword [rsp + 0xe0], rdx
xor rcx, rbp
mov qword [rsp + 0xe8], rax
lea rax, [0x007b8b20]
mov rdx, rcx
mov r8, rcx
mov r9, rcx
shr rdx, 0x18
shr r8, 0x10
shr r9, 0x28
movzx r8d, r8b
movzx edx, dl
movzx r9d, r9b
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + r8*4 + 0x800]
movzx r8d, cl
xor edx, dword [rax + r8*4]
mov r8, rcx
movzx esi, ch
shr r8, 0x30
xor edx, dword [rax + rsi*4 + 0xc00]
movzx r8d, r8b
mov r8d, dword [rax + r8*4 + 0x400]
xor r8d, dword [rax + r9*4 + 0x800]
mov r9, rcx
shr r9, 0x38
shr rcx, 0x20
xor r8d, dword [rax + r9*4]
movzx ecx, cl
xor r8d, dword [rax + rcx*4 + 0xc00]
xor edx, r8d
ror r8d, 8
mov r9d, r8d
xor r9d, edx
shl rdx, 0x20
or r9, rdx
movabs rdx, 0xb67ae8584caa73b2
xor rdx, rbx
xor rdx, r9
mov rcx, rdx
mov r8, rdx
mov r11, rdx
shr rcx, 0x18
shr r8, 0x10
shr r11, 0x28
movzx r8d, r8b
movzx ecx, cl
movzx r11d, r11b
mov ecx, dword [rax + rcx*4 + 0x400]
xor ecx, dword [rax + r8*4 + 0x800]
movzx r8d, dl
xor ecx, dword [rax + r8*4]
mov r8, rdx
movzx esi, dh
shr r8, 0x30
xor ecx, dword [rax + rsi*4 + 0xc00]
movzx r8d, r8b
mov r8d, dword [rax + r8*4 + 0x400]
xor r8d, dword [rax + r11*4 + 0x800]
mov r11, rdx
shr r11, 0x38
xor r8d, dword [rax + r11*4]
shr rdx, 0x20
movzx edx, dl
xor r8d, dword [rax + rdx*4 + 0xc00]
xor ecx, r8d
ror r8d, 8
mov r11d, r8d
xor r11d, ecx
shl rcx, 0x20
or r11, rcx
movabs rcx, 0xc6ef372fe94f82be
xor rcx, r11
mov rdx, rcx
mov r8, rcx
movzx esi, ch
shr rdx, 0x18
shr r8, 0x10
movzx r8d, r8b
movzx edx, dl
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + r8*4 + 0x800]
movzx r8d, cl
xor edx, dword [rax + r8*4]
mov r8, rcx
xor edx, dword [rax + rsi*4 + 0xc00]
mov rsi, rcx
shr r8, 0x30
shr rsi, 0x28
movzx r8d, r8b
movzx esi, sil
mov r8d, dword [rax + r8*4 + 0x400]
xor r8d, dword [rax + rsi*4 + 0x800]
mov rsi, rcx
shr rcx, 0x20
shr rsi, 0x38
movzx ecx, cl
xor r8d, dword [rax + rsi*4]
xor r8d, dword [rax + rcx*4 + 0xc00]
movabs rcx, 0x54ff53a5f1d36f1c
xor edx, r8d
ror r8d, 8
xor r8d, edx
shl rdx, 0x20
or r8, rdx
xor r8, r9
xor rcx, r8
mov rdx, rcx
mov r9, rcx
movzx esi, ch
shr rdx, 0x18
shr r9, 0x10
movzx r9d, r9b
movzx edx, dl
mov edx, dword [rax + rdx*4 + 0x400]
xor edx, dword [rax + r9*4 + 0x800]
movzx r9d, cl
xor edx, dword [rax + r9*4]
mov r9, rcx
xor edx, dword [rax + rsi*4 + 0xc00]
mov rsi, rcx
shr r9, 0x30
shr rsi, 0x28
movzx r9d, r9b
movzx esi, sil
mov r9d, dword [rax + r9*4 + 0x400]
xor r9d, dword [rax + rsi*4 + 0x800]
mov rsi, rcx
shr rcx, 0x20
shr rsi, 0x38
movzx ecx, cl
xor r9d, dword [rax + rsi*4]
xor r9d, dword [rax + rcx*4 + 0xc00]
mov rax, r8
shr rax, 0x31
xor edx, r9d
ror r9d, 8
xor r9d, edx
shl rdx, 0x20
or r9, rdx
xor r9, r11
mov rdx, r9
mov qword [rsp + 0x40], r9
shr r9, 0x31
shl rdx, 0xf
or rdx, rax
mov rax, r8
shl rax, 0xf
mov rcx, rdx
mov qword [rsp + 0x60], rdx
or r9, rax
shl rcx, 0xf
shr rdx, 0x31
mov rax, r9
shr rax, 0x31
or rax, rcx
mov rcx, r9
shl rcx, 0xf
mov r11, rax
mov qword [rsp + 0x70], rax
or rdx, rcx
shl r11, 0xf
shr rax, 0x31
mov rcx, rdx
mov qword [rsp + 0x78], rdx
shl rdx, 0xf
shr rcx, 0x31
or rax, rdx
or rcx, r11
mov rdx, rax
mov r11, rcx
shr rdx, 0x31
mov qword [rsp + 0x90], rcx
shl r11, 0xf
or rdx, r11
shl rax, 0xf
shr rcx, 0x31
or rcx, rax
mov r11, rdx
mov qword [rsp + 0xa0], rdx
mov rax, rcx
shl r11, 0x22
mov qword [rsp + 0xa8], rcx
shr rax, 0x1e
shl rcx, 0x22
shr rdx, 0x1e
or rax, r11
or rdx, rcx
xor r10, rbx
mov rcx, rdx
mov r11, rax
mov qword [rsp + 0xd0], rax
shl r11, 0x11
mov qword [rsp + 0xd8], rdx
shl rcx, 0x11
shr rdx, 0x2f
shr rax, 0x2f
xor r9, rbx
or rdx, r11
or rax, rcx
xor r8, rbx
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x68], r9
mov r10d, 0x10
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rax
mov r11d, 0x19
mov qword [rsp + 0x48], r8
mov r9d, 0x18
jmp 0x5f2081
mov r8d, r10d
mov ecx, 8
jmp 0x5f20cb
mov r11d, 8
mov edx, 6
mov eax, 7
jmp 0x5f2292
mov rax, r12
mov r10d, 0x18
mov r11d, 0x21
not rax
mov r9d, 0x20
jmp 0x5f19e9