Function at 0x180105890
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r15
sub rsp, 0xe0
mov rax, qword [rcx]
mov rbp, r9
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
call qword [rax + 0x20]
test al, al
jne 0x1801058c0
mov rcx, rdi
call fcn.1800a53c0
mov r11, qword [rdi + 0x20]
mov r15, qword [rdi + 8]
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x98], r15
test rbp, rbp
je 0x1801070e7
sub rbx, rsi
mov qword [rsp + 0x118], r12
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xd0], r14
lea r14, [rsi + 0x18]
mov qword [rsp + 0x80], r14
lea rax, [rbx - 0x10]
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0xb8], rax
lea rax, [rbx - 8]
mov qword [rsp + 0xc0], rax
lea rax, [rbx - 0x18]
mov qword [rsp + 0xb0], rax
mov r10, qword [r15]
mov rbp, qword [r14]
mov r9, qword [r14 + 0x10]
mov r12, qword [r14 - 0x10]
add r9, r10
mov rax, qword [r14 - 0x18]
mov r8, qword [r14 - 8]
mov rcx, qword [r11 + 0x18]
mov rbx, qword [r11 + 8]
add rbp, rcx
mov rsi, qword [r11 + 0x10]
add r12, rbx
mov rdx, qword [r11 + 0x20]
add r8, rsi
mov r13, qword [r11 + 0x28]
add r8, rbp
mov rdi, qword [r11]
add r9, r13
mov qword [rsp + 0x58], rcx
add rax, rdi
mov rcx, qword [r11 + 0x38]
add rax, r12
mov r11, qword [r11 + 0x30]
ror r12, 0x12
xor r12, rax
mov qword [rsp + 0x50], rcx
add rcx, qword [r14 + 0x20]
mov r14, qword [r14 + 8]
mov qword [rsp + 0x68], rbx
add r14, rdx
add r14, r9
ror rbp, 0x1c
xor rbp, r8
mov qword [rsp + 0x110], r9
mov r9, qword [r15 + 8]
add r8, r12
mov r15, qword [rsp + 0x80]
add rax, rbp
mov rbx, qword [rsp + 0x110]
ror r12, 0x1f
xor r12, r8
ror rbx, 0x2d
mov r15, qword [r15 + 0x18]
xor rbx, r14
add r15, r9
ror rbp, 0x16
xor rbp, rax
mov qword [rsp + 0x70], rsi
add r15, r11
mov qword [rsp + 0x60], rdx
add r15, rcx
ror rcx, 0x1b
xor rcx, r15
add r15, rbx
add r14, rcx
ror rbx, 0x32
xor rbx, r15
ror rcx, 0x25
xor rcx, r14
add r15, rbp
add r14, r12
ror rbp, 0xf
ror r12, 0x2f
add rax, rbx
xor r12, r14
ror rbx, 0x1c
add r8, rcx
xor rbp, r15
add r15, r12
ror rcx, 0x19
ror r12, 0x14
xor rbx, rax
xor rcx, r8
xor r12, r15
add r12, rsi
add rax, rcx
add r8, rbx
mov qword [rsp + 0x30], r12
add r14, rbp
mov qword [rsp + 0x38], rax
ror rbp, 8
mov rsi, qword [rsp + 0x38]
lea rax, [r9 + r11]
mov qword [rsp + 0x90], rax
xor rbp, r14
add rbp, rdx
ror rcx, 0x37
xor rcx, rsi
mov qword [rsp + 0x28], rbp
mov rdx, rbx
inc rcx
mov rbx, qword [rsp + 0x28]
ror rdx, 0xa
xor rdx, r8
add rdx, rax
mov rax, qword [rsp + 0x78]
mov rbp, qword [rax + 0x40]
mov rax, qword [rsp + 0x68]
add rcx, rbp
add rax, r12
mov r12, qword [rsp + 0x50]
add rsi, rax
mov rax, qword [rsp + 0x58]
add rax, rbx
mov qword [rsp + 0x38], rsi
add r8, rax
ror rbx, 0x22
lea rax, [rdx + r13]
mov qword [rsp + 0x20], r8
mov r8, qword [rsp + 0x98]
add r14, rax
ror rdx, 0x1e
xor rdx, r14
mov qword [rsp + 0x110], rdx
mov r8, qword [r8 + 0x10]
add r12, r8
mov qword [rsp + 0x88], r12
lea rax, [r12 + rcx]
mov r12, qword [rsp + 0x110]
add r15, rax
ror rcx, 0x28
mov rax, qword [rsp + 0x30]
xor rcx, r15
add r15, rdx
ror rax, 0x19
mov rdx, qword [rsp + 0x38]
xor rax, rsi
add r14, rcx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x20]
xor rbx, rax
ror rcx, 0xe
mov qword [rsp + 0x28], rbx
xor rcx, r14
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x28]
add rax, rbx
add rdx, rsi
ror rbx, 0x33
xor rbx, rax
ror r12, 0x36
xor r12, r15
ror rsi, 0x2f
xor rsi, rdx
add rax, rcx
add rdx, r12
ror rcx, 0x15
add r15, rsi
ror r12, 0x19
add r14, rbx
ror rsi, 0x23
xor r12, rdx
ror rbx, 0x27
xor rcx, rax
xor rbx, r14
add rdx, rcx
xor rsi, r15
add r15, rbx
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], r15
mov rdx, r12
add rax, r12
mov r12, qword [rsp + 0x38]
add r14, rsi
mov qword [rsp + 0x20], rax
ror rbx, 0x38
xor r15, rbx
ror rcx, 0x1d
add r15, qword [rsp + 0x58]
xor rcx, r12
mov rbx, rsi
mov qword [rsp + 0x30], r15
ror rbx, 0x2a
add rcx, 2
xor rbx, r14
ror rdx, 8
xor rdx, rax
add rbx, r13
add rdx, qword [rsp + 0x88]
add rcx, rdi
mov rax, qword [rsp + 0x70]
add rax, r15
mov qword [rsp + 0x110], rdx
mov rsi, qword [rsp + 0x110]
lea r15, [r10 + rbp]
mov rdx, qword [rsp + 0x60]
add r12, rax
mov qword [rsp + 0xa0], r15
lea rax, [rdx + rbx]
ror rbx, 0x1c
add qword [rsp + 0x20], rax
lea rax, [r11 + rsi]
xor rbx, qword [rsp + 0x20]
add r14, rax
lea rax, [r15 + rcx]
ror rsi, 0x2d
add qword [rsp + 0x40], rax
xor rsi, r14
mov rax, qword [rsp + 0x30]
ror rax, 0x12
xor rax, r12
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
ror rcx, 0x1b
xor rcx, rax
mov qword [rsp + 0x110], rsi
mov r15, qword [rsp + 0x110]
add rax, rsi
mov rsi, qword [rsp + 0x28]
add r14, rcx
add r12, rsi
ror rbx, 0x1f
xor rbx, qword [rsp + 0x20]
ror rsi, 0x16
xor rsi, r12
ror rcx, 0x25
xor rcx, r14
ror r15, 0x32
add qword [rsp + 0x20], rcx
xor r15, rax
add r14, rbx
ror rcx, 0x19
xor rcx, qword [rsp + 0x20]
add rax, rsi
add r12, r15
ror rbx, 0x2f
xor rbx, r14
ror rsi, 0xf
xor rsi, rax
ror r15, 0x1c
add rax, rbx
xor r15, r12
add qword [rsp + 0x20], r15
add r12, rcx
ror rbx, 0x14
add r14, rsi
mov qword [rsp + 0x40], rax
xor rax, rbx
add rax, rdx
mov qword [rsp + 0x30], rax
add rax, qword [rsp + 0x58]
mov rdx, rsi
ror rdx, 8
xor rdx, r14
ror rcx, 0x37
add rdx, r11
xor rcx, r12
mov qword [rsp + 0x28], rdx
add r12, rax
mov rbx, qword [rsp + 0x28]
mov rdx, r15
ror rdx, 0xa
lea r15, [r10 + rbp]
xor rdx, qword [rsp + 0x20]
add rdx, r15
lea rax, [rbx + r13]
mov qword [rsp + 0x110], rdx
add qword [rsp + 0x20], rax
mov r15, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x50]
add rdx, 3
add rax, r15
ror rbx, 0x22
xor rbx, qword [rsp + 0x20]
add rdx, rcx
mov rcx, qword [rsp + 0x40]
add r14, rax
mov qword [rsp + 0x28], rbx
mov rsi, qword [rsp + 0x28]
ror r15, 0x1e
mov qword [rsp + 0x48], r14
lea r14, [r9 + rdi]
lea rax, [r14 + rdx]
ror rdx, 0x28
add rcx, rax
mov rax, qword [rsp + 0x30]
xor rdx, rcx
ror rax, 0x19
xor rax, r12
add r12, rsi
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x48]
xor r15, rax
ror rbx, 0x33
xor rbx, qword [rsp + 0x20]
add rax, rdx
add rcx, r15
ror rdx, 0xe
xor rdx, rax
ror rsi, 0x2f
add qword [rsp + 0x20], rdx
add rax, rbx
xor rsi, r12
ror rbx, 0x27
xor rbx, rax
ror r15, 0x36
xor r15, rcx
ror rdx, 0x15
xor rdx, qword [rsp + 0x20]
add rcx, rsi
add r12, r15
ror rsi, 0x23
xor rsi, rcx
ror r15, 0x19
add rcx, rbx
xor r15, r12
add qword [rsp + 0x20], r15
add rax, rsi
ror rbx, 0x38
add r12, rdx
xor rbx, rcx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x30], rbx
mov rbx, rsi
add qword [rsp + 0x30], r13
ror rbx, 0x2a
xor rbx, rax
mov qword [rsp + 0x48], rax
add rbx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x60]
add rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
add rcx, 4
ror r15, 8
add rsi, r8
xor r15, qword [rsp + 0x20]
add r15, r14
ror rdx, 0x1d
xor rdx, r12
add r12, rax
lea rax, [r11 + rbx]
mov qword [rsp + 0x38], r12
add qword [rsp + 0x20], rax
add rcx, rdx
mov rdx, qword [rsp + 0x48]
lea rax, [r15 + rbp]
add rdx, rax
ror rbx, 0x1c
xor rbx, qword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
lea rax, [rsi + rcx]
add qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
ror r15, 0x2d
xor r15, rdx
ror rax, 0x12
xor rax, r12
mov qword [rsp + 0x110], r15
ror qword [rsp + 0x110], 0x32
mov r12, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
ror rbx, 0x1f
xor rbx, qword [rsp + 0x20]
ror rcx, 0x1b
xor rcx, rax
add rax, r15
xor qword [rsp + 0x110], rax
add rdx, rcx
mov r15, qword [rsp + 0x38]
add r15, r12
ror rcx, 0x25
xor rcx, rdx
ror r12, 0x16
add qword [rsp + 0x20], rcx
xor r12, r15
add r15, qword [rsp + 0x110]
add rdx, rbx
ror qword [rsp + 0x110], 0x1c
add rax, r12
xor qword [rsp + 0x110], r15
ror rbx, 0x2f
xor rbx, rdx
ror r12, 0xf
xor r12, rax
ror rcx, 0x19
xor rcx, qword [rsp + 0x20]
add rax, rbx
ror rbx, 0x14
add r15, rcx
mov qword [rsp + 0x38], r15
add rdx, r12
mov r15, qword [rsp + 0x110]
add qword [rsp + 0x20], r15
mov qword [rsp + 0x40], rax
xor rax, rbx
ror r15, 0xa
add rax, r11
xor r15, qword [rsp + 0x20]
mov rbx, r12
ror rbx, 8
xor rbx, rdx
mov qword [rsp + 0x48], rdx
add rbx, rbp
mov qword [rsp + 0x30], rax
add r15, rsi
mov r12, qword [rsp + 0x38]
add rax, r13
mov rdx, qword [rsp + 0x58]
ror rcx, 0x37
add rdx, 5
xor rcx, r12
add r12, rax
mov rax, qword [rsp + 0x50]
add rdx, rcx
mov rcx, qword [rsp + 0x48]
add rax, rbx
add qword [rsp + 0x20], rax
lea rax, [rdi + r15]
mov rdi, qword [rsp + 0x70]
add rcx, rax
ror rbx, 0x22
add rdi, r10
xor rbx, qword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
ror r15, 0x1e
xor r15, rcx
mov qword [rsp + 0x38], r12
lea rax, [rdi + rdx]
mov qword [rsp + 0x110], r15
add qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
ror qword [rsp + 0x110], 0x36
ror rax, 0x19
xor rax, r12
ror rdx, 0x28
mov r12, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x40]
xor rdx, rax
ror rbx, 0x33
xor rbx, qword [rsp + 0x20]
add rax, r15
xor qword [rsp + 0x110], rax
add rcx, rdx
mov r15, qword [rsp + 0x38]
add r15, r12
ror rdx, 0xe
xor rdx, rcx
ror r12, 0x2f
add qword [rsp + 0x20], rdx
add rcx, rbx
xor r12, r15
ror rbx, 0x27
add r15, qword [rsp + 0x110]
xor rbx, rcx
ror qword [rsp + 0x110], 0x19
add rax, r12
xor qword [rsp + 0x110], r15
ror r12, 0x23
xor r12, rax
ror rdx, 0x15
xor rdx, qword [rsp + 0x20]
add rax, rbx
ror rbx, 0x38
add r15, rdx
xor rbx, rax
mov qword [rsp + 0x38], r15
mov r15, qword [rsp + 0x110]
add rcx, r12
add qword [rsp + 0x20], r15
mov qword [rsp + 0x30], rbx
mov rbx, r12
ror rbx, 0x2a
xor rbx, rcx
ror r15, 8
xor r15, qword [rsp + 0x20]
mov qword [rsp + 0x48], rcx
add r15, rdi
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x50]
add qword [rsp + 0x30], rax
add rbx, qword [rcx]
ror rdx, 0x1d
mov r12, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
xor rdx, r12
mov rcx, qword [rsp + 0x60]
add rax, r11
mov r11, qword [rsp + 0x58]
add r12, rax
lea rax, [rbx + rbp]
mov qword [rsp + 0x38], r12
add qword [rsp + 0x20], rax
add r11, r9
mov r9, qword [rsp + 0x40]
add rcx, 6
mov rax, qword [rsp + 0x68]
add rcx, rdx
mov rdx, qword [rsp + 0x48]
add rax, r15
add rdx, rax
ror rbx, 0x1c
ror r15, 0x2d
xor r15, rdx
lea rax, [r11 + rcx]
add r9, rax
mov qword [rsp + 0x110], r15
ror qword [rsp + 0x110], 0x32
mov rax, qword [rsp + 0x30]
ror rax, 0x12
xor rax, r12
ror rcx, 0x1b
xor rcx, r9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x20]
add r9, r15
xor qword [rsp + 0x110], r9
xor rbx, rax
mov r15, qword [rsp + 0x38]
add rdx, rcx
mov qword [rsp + 0x28], rbx
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
add r15, r12
add rax, rbx
ror r12, 0x16
ror rbx, 0x1f
xor r12, r15
add r15, qword [rsp + 0x110]
xor rbx, rax
ror qword [rsp + 0x110], 0x1c
add r9, r12
xor qword [rsp + 0x110], r15
ror rcx, 0x25
xor rcx, rdx
ror r12, 0xf
add rdx, rbx
xor r12, r9
ror rbx, 0x2f
add rax, rcx
xor rbx, rdx
ror rcx, 0x19
add r9, rbx
xor rcx, rax
ror rbx, 0x14
add r15, rcx
add rdx, r12
mov qword [rsp + 0x38], r15
mov r15, qword [rsp + 0x110]
add rax, r15
mov qword [rsp + 0x40], r9
xor r9, rbx
ror r15, 0xa
add r9, rbp
mov qword [rsp + 0x20], rax
mov rbx, r12
mov qword [rsp + 0x48], rdx
ror rbx, 8
xor rbx, rdx
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], rbx
mov rbx, qword [rsp + 0x68]
add qword [rsp + 0x28], rbx
xor r15, rax
mov r12, qword [rsp + 0x38]
add r15, r11
mov rbx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x50]
add rax, r9
ror rcx, 0x37
mov r9, qword [rsp + 0x60]
xor rcx, r12
add r12, rax
add r9, r8
mov rax, qword [rsp + 0x78]
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x38], r12
lea rdx, [rcx + 7]
add rdx, r13
mov qword [rsp + 0xa8], r9
mov rcx, qword [rax]
lea rax, [rcx + rbx]
ror rbx, 0x22
add qword [rsp + 0x20], rax
xor rbx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x70]
add rax, r15
mov qword [rsp + 0x28], rbx
add qword [rsp + 0x48], rax
lea rax, [r9 + rdx]
add r8, rax
ror r15, 0x1e
mov rax, qword [rsp + 0x30]
ror rax, 0x19
xor rax, r12
ror rdx, 0x28
mov r12, qword [rsp + 0x28]
xor rdx, r8
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x48]
xor r15, rax
ror rbx, 0x33
xor rbx, qword [rsp + 0x20]
add r8, r15
mov qword [rsp + 0x110], r15
add rax, rdx
ror qword [rsp + 0x110], 0x36
xor qword [rsp + 0x110], r8
mov r15, qword [rsp + 0x38]
add r15, r12
ror rdx, 0xe
xor rdx, rax
ror r12, 0x2f
add qword [rsp + 0x20], rdx
add rax, rbx
ror rbx, 0x27
xor r12, r15
add r15, qword [rsp + 0x110]
xor rbx, rax
ror qword [rsp + 0x110], 0x19
add r8, r12
xor qword [rsp + 0x110], r15
ror r12, 0x23
xor r12, r8
ror rdx, 0x15
xor rdx, qword [rsp + 0x20]
add r8, rbx
ror rbx, 0x38
add r15, rdx
xor rbx, r8
mov qword [rsp + 0x38], r15
mov r15, qword [rsp + 0x110]
add rax, r12
add qword [rsp + 0x20], r15
mov qword [rsp + 0x30], rbx
mov rbx, r12
add qword [rsp + 0x30], rcx
ror rbx, 0x2a
xor rbx, rax
mov qword [rsp + 0x40], r8
add rbx, qword [rsp + 0x70]
ror r15, 8
mov qword [rsp + 0x48], rax
mov r8, qword [rsp + 0x20]
mov rax, qword [rsp + 0x30]
xor r15, r8
mov r12, qword [rsp + 0x38]
add rax, rbp
mov rcx, qword [rsp + 0x78]
add r15, r9
ror rdx, 0x1d
mov r9, r15
xor rdx, r12
ror r9, 0x2d
add r12, rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rcx + 0x30]
add rax, rbx
add r8, rax
ror rbx, 0x1c
mov rax, qword [rsp + 0x58]
add rcx, 8
add rax, r15
mov qword [rsp + 0x38], r12
mov r15, qword [rsp + 0x38]
add rcx, rdx
mov rdx, qword [rsp + 0x48]
add rdx, rax
mov qword [rsp + 0x20], r8
xor r9, rdx
lea r8, [r10 + r13]
mov r10, qword [rsp + 0x40]
lea rax, [r8 + rcx]
add r10, rax
ror rcx, 0x1b
mov rax, qword [rsp + 0x30]
xor rcx, r10
add r10, r9
ror rax, 0x12
xor rax, r12
ror r9, 0x32
xor r9, r10
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x20]
add rdx, rcx
xor rbx, rax
ror rcx, 0x25
mov qword [rsp + 0x28], rbx
xor rcx, rdx
mov rbx, qword [rsp + 0x30]
mov r12, qword [rsp + 0x28]
add rax, rbx
ror rbx, 0x1f
add r15, r12
xor rbx, rax
ror r12, 0x16
add rdx, rbx
xor r12, r15
ror rbx, 0x2f
add r10, r12
xor rbx, rdx
ror r12, 0xf
xor r12, r10
add r15, r9
add r10, rbx
ror r9, 0x1c
ror rbx, 0x14
add rax, rcx
xor r9, r15
mov qword [rsp + 0x40], r10
xor r10, rbx
ror rcx, 0x19
add r10, qword [rsp + 0x68]
xor rcx, rax
add rdx, r12
mov qword [rsp + 0x30], r10
add rax, r9
mov rbx, r12
ror rbx, 8
add r15, rcx
xor rbx, rdx
mov qword [rsp + 0x20], rax
add rbx, qword [rsp + 0x58]
ror r9, 0xa
xor r9, rax
ror rcx, 0x37
mov rax, qword [rsp + 0x50]
xor rcx, r15
add rax, 9
add r9, r8
add rcx, rax
mov r12, r15
mov r15, qword [rsp + 0x78]
mov rax, qword [r15]
add rax, r10
mov r10, qword [rsp + 0x70]
add r12, rax
mov qword [rsp + 0x38], r12
mov r15, qword [rsp + 0x38]
lea rax, [r10 + rbx]
ror rbx, 0x22
add qword [rsp + 0x20], rax
xor rbx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x60]
add rax, r9
mov qword [rsp + 0x28], rbx
add rdx, rax
ror r9, 0x1e
mov qword [rsp + 0x48], rdx
mov rdx, qword [rsp + 0x90]
lea rax, [rdx + rcx]
ror rcx, 0x28
add qword [rsp + 0x40], rax
xor rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
ror rax, 0x19
xor rax, r12
mov r12, qword [rsp + 0x28]
add r15, r12
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
mov rax, qword [rsp + 0x48]
xor r9, rax
ror rbx, 0x33
xor rbx, qword [rsp + 0x20]
add rax, rcx
add qword [rsp + 0x40], r9
ror r9, 0x36
xor r9, qword [rsp + 0x40]
ror rcx, 0xe
xor rcx, rax
ror r12, 0x2f
add qword [rsp + 0x20], rcx
add rax, rbx
ror rbx, 0x27
xor r12, r15
add qword [rsp + 0x40], r12
xor rbx, rax
add r15, r9
ror rcx, 0x15
xor rcx, qword [rsp + 0x20]
ror r9, 0x19
xor r9, r15
ror r12, 0x23
xor r12, qword [rsp + 0x40]
add r15, rcx
add qword [rsp + 0x40], rbx
add rax, r12
add qword [rsp + 0x20], r9
ror rbx, 0x38
xor rbx, qword [rsp + 0x40]
add rbx, r10
ror r9, 8
xor r9, qword [rsp + 0x20]
mov qword [rsp + 0x30], rbx
add r9, rdx
mov rbx, r12
ror rcx, 0x1d
ror rbx, 0x2a
lea rdx, [rbp + 0xa]
xor rbx, rax
mov qword [rsp + 0x48], rax
add rbx, qword [rsp + 0x60]
xor rcx, r15
mov r12, qword [rsp + 0x30]
add rdx, rcx
add r12, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
add r12, r15
mov rax, qword [rsp + 0x58]
add rax, rbx
mov qword [rsp + 0x38], r12
add qword [rsp + 0x20], rax
lea rax, [r9 + r13]
mov r15, qword [rsp + 0x38]
add rcx, rax
mov r12, qword [rsp + 0x88]
ror rbx, 0x1c
xor rbx, qword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
lea rax, [r12 + rdx]
ror r9, 0x2d
add qword [rsp + 0x40], rax
xor r9, rcx
mov rax, qword [rsp + 0x30]
ror rax, 0x12
xor rax, r15
ror rdx, 0x1b
add r15, qword [rsp + 0x28]
ror qword [rsp + 0x28], 0x16
xor qword [rsp + 0x28], r15
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
xor rdx, rax
add qword [rsp + 0x20], rbx
add rax, r9
add rcx, rdx
ror rbx, 0x1f
xor rbx, qword [rsp + 0x20]
ror r9, 0x32
xor r9, rax
ror rdx, 0x25
add rax, qword [rsp + 0x28]
xor rdx, rcx
add qword [rsp + 0x20], rdx
add rcx, rbx
ror qword [rsp + 0x28], 0xf
add r15, r9
xor qword [rsp + 0x28], rax
ror rbx, 0x2f
xor rbx, rcx
ror r9, 0x1c
add rcx, qword [rsp + 0x28]
add rax, rbx
xor r9, r15
ror rbx, 0x14
mov qword [rsp + 0x40], rax
xor rax, rbx
add rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x28]
ror rdx, 0x19
xor rdx, qword [rsp + 0x20]
add qword [rsp + 0x20], r9
add r15, rdx
ror r9, 0xa
xor r9, qword [rsp + 0x20]
add r9, r12
ror rbx, 8
xor rbx, rcx
mov qword [rsp + 0x30], rax
add rax, r10
ror rdx, 0x37
xor rdx, r15
mov qword [rsp + 0x38], r15
add qword [rsp + 0x38], rax
add rbx, r13
mov r15, qword [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x110], r9
mov r12, qword [r15]
lea rcx, [r12 + 0xb]
add rcx, rdx
add rax, rbx
add qword [rsp + 0x20], rax
mov r10, qword [r15 + 0x30]
mov r15, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x48]
ror rbx, 0x22
xor rbx, qword [rsp + 0x20]
lea rax, [r10 + r9]
mov r9, qword [rsp + 0x38]
add rdx, rax
lea rax, [r15 + rcx]
mov qword [rsp + 0x28], rbx
add qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
ror rax, 0x19
xor rax, r9
ror rcx, 0x28
add r9, qword [rsp + 0x28]
ror qword [rsp + 0x28], 0x2f
xor qword [rsp + 0x28], r9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x30]
add qword [rsp + 0x20], rbx
ror rax, 0x1e
xor rax, rdx
ror rbx, 0x33
xor rbx, qword [rsp + 0x20]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x40]
xor rcx, rax
add rax, qword [rsp + 0x110]
ror qword [rsp + 0x110], 0x36
add rdx, rcx
xor qword [rsp + 0x110], rax
add rax, qword [rsp + 0x28]
add r9, qword [rsp + 0x110]
ror qword [rsp + 0x110], 0x19
xor qword [rsp + 0x110], r9
ror qword [rsp + 0x28], 0x23
xor qword [rsp + 0x28], rax
ror rcx, 0xe
xor rcx, rdx
add rdx, rbx
add qword [rsp + 0x20], rcx
ror rbx, 0x27
xor rbx, rdx
ror rcx, 0x15
xor rcx, qword [rsp + 0x20]
add rax, rbx
add rdx, qword [rsp + 0x28]
add r9, rcx
ror rbx, 0x38
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0x110]
add qword [rsp + 0x20], r9
mov qword [rsp + 0x40], rax
xor rax, rbx
add rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
add rax, qword [rsp + 0x58]
ror r9, 8
xor r9, qword [rsp + 0x20]
add r9, r15
ror rbx, 0x2a
mov r15, qword [rsp + 0x38]
xor rbx, rdx
mov qword [rsp + 0x48], rdx
add rbx, r10
mov rdx, qword [rsp + 0x68]
ror rcx, 0x1d
add rdx, 0xc
xor rcx, r15
mov qword [rsp + 0x110], r9
add r15, rax
add rdx, rcx
lea rax, [rbx + r13]
mov qword [rsp + 0x38], r15
add qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x50]
add rax, r9
mov r9, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
add r15, rax
ror rbx, 0x1c
lea rax, [r14 + rdx]
ror rdx, 0x1b
add rcx, rax
mov rax, qword [rsp + 0x30]
xor rdx, rcx
ror rax, 0x12
xor rax, r9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x20]
xor rbx, rax
mov qword [rsp + 0x28], rbx
add r9, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x110]
ror qword [rsp + 0x28], 0x16
xor qword [rsp + 0x28], r9
ror rbx, 0x2d
xor rbx, r15
add r15, rdx
mov qword [rsp + 0x110], rbx
add rcx, qword [rsp + 0x110]
ror qword [rsp + 0x110], 0x32
xor qword [rsp + 0x110], rcx
add r9, qword [rsp + 0x110]
add rcx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
ror qword [rsp + 0x110], 0x1c
add rax, rbx
xor qword [rsp + 0x110], r9
ror qword [rsp + 0x28], 0xf
xor qword [rsp + 0x28], rcx
ror rbx, 0x1f
xor rbx, rax
ror rdx, 0x25
xor rdx, r15
add r15, rbx
add rax, rdx
ror rbx, 0x2f
xor rbx, r15
ror rdx, 0x19
add r15, qword [rsp + 0x28]
xor rdx, rax
add rcx, rbx
add r9, rdx
ror rbx, 0x14
xor rbx, rcx
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0x110]
add rax, r9
mov qword [rsp + 0x30], rbx
add qword [rsp + 0x30], r13
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
ror r9, 0xa
xor r9, rax
ror rbx, 8
mov rax, qword [rsp + 0x60]
add r9, r14
add rax, qword [rsp + 0x30]
xor rbx, r15
add rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x70]
ror rdx, 0x37
xor rdx, qword [rsp + 0x38]
add qword [rsp + 0x38], rax
lea rax, [r10 + rbx]
add qword [rsp + 0x20], rax
lea rax, [r9 + rbp]
mov qword [rsp + 0x40], rcx
add r15, rax
lea rcx, [r14 + 0xd]
mov qword [rsp + 0x110], r9
add rcx, rdx
mov rdx, qword [rsp + 0x40]
lea rax, [rsi + rcx]
add rdx, rax
mov rax, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
ror rbx, 0x22
ror rax, 0x19
xor rax, r9
ror rcx, 0x28
xor rcx, rdx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x20]
xor rbx, rax
mov qword [rsp + 0x28], rbx
add r9, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x110]
ror qword [rsp + 0x28], 0x2f
xor qword [rsp + 0x28], r9
ror rbx, 0x1e
xor rbx, r15
add r15, rcx
mov qword [rsp + 0x110], rbx
add rdx, qword [rsp + 0x110]
ror qword [rsp + 0x110], 0x36
xor qword [rsp + 0x110], rdx
add r9, qword [rsp + 0x110]
add rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
ror qword [rsp + 0x110], 0x19
add rax, rbx
xor qword [rsp + 0x110], r9
ror qword [rsp + 0x28], 0x23
xor qword [rsp + 0x28], rdx
ror rbx, 0x33
xor rbx, rax
ror rcx, 0xe
xor rcx, r15
add r15, rbx
add rax, rcx
ror rbx, 0x27
xor rbx, r15
ror rcx, 0x15
add r15, qword [rsp + 0x28]
xor rcx, rax
add r9, rcx
add rdx, rbx
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0x110]
add rax, r9
ror rbx, 0x38
xor rbx, rdx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rbx
add qword [rsp + 0x30], r10
mov rbx, qword [rsp + 0x28]
ror r9, 8
xor r9, rax
mov qword [rsp + 0x40], rdx
mov rax, qword [rsp + 0x30]
add r9, rsi
mov rsi, qword [rsp + 0x38]
add rax, r13
mov rdx, qword [rsp + 0x58]
ror rcx, 0x1d
add rdx, 0xe
xor rcx, rsi
ror rbx, 0x2a
add rsi, rax
mov qword [rsp + 0x110], r9
mov rax, qword [rsp + 0x50]
add rdx, rcx
mov rcx, qword [rsp + 0x20]
xor rbx, r15
mov qword [rsp + 0x38], rsi
add rbx, rbp
mov rsi, qword [rsp + 0x40]
add rax, rbx
add rcx, rax
lea rax, [r12 + r9]
mov r9, qword [rsp + 0x38]
add r15, rax
lea rax, [rdi + rdx]
add rsi, rax
mov rax, qword [rsp + 0x30]
ror rax, 0x12
ror qword [rsp + 0x110], 0x2d
xor rax, r9
xor qword [rsp + 0x110], r15
ror rdx, 0x1b
xor rdx, rsi
ror rbx, 0x1c
add rsi, qword [rsp + 0x110]
xor rbx, rcx
ror qword [rsp + 0x110], 0x32
add rcx, rax
xor qword [rsp + 0x110], rsi
add r9, rbx
ror rax, 0x1f
add r15, rdx
xor rax, rcx
ror rdx, 0x25
xor rdx, r15
ror rbx, 0x16
add r15, rax
xor rbx, r9
add r9, qword [rsp + 0x110]
add rcx, rdx
ror qword [rsp + 0x110], 0x1c
add rsi, rbx
xor qword [rsp + 0x110], r9
ror rax, 0x2f
xor rax, r15
ror rdx, 0x19
xor rdx, rcx
ror rbx, 0xf
add r9, rdx
xor rbx, rsi
add rsi, rax
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0x110]
add r15, rbx
add rcx, r9
ror rax, 0x14
xor rax, rsi
mov qword [rsp + 0x20], rcx
add rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
add rax, r10
ror r9, 0xa
xor r9, rcx
ror rdx, 0x37
xor rdx, qword [rsp + 0x38]
add r9, rdi
add qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x60]
ror rbx, 8
add rcx, 0xf
add rcx, rdx
mov qword [rsp + 0x110], r9
ror qword [rsp + 0x110], 0x1e
xor rbx, r15
mov rdx, qword [rsp + 0x20]
add rbx, r12
mov qword [rsp + 0x28], rbx
ror qword [rsp + 0x28], 0x22
lea rax, [rbx + rbp]
mov rbx, qword [rsp + 0x68]
add rdx, rax
xor qword [rsp + 0x28], rdx
lea rax, [rbx + r9]
mov r9, qword [rsp + 0x38]
add r15, rax
lea rax, [r11 + rcx]
xor qword [rsp + 0x110], r15
add rsi, rax
mov rax, qword [rsp + 0x30]
ror rax, 0x19
xor rax, r9
ror rcx, 0x28
add r9, qword [rsp + 0x28]
xor rcx, rsi
add rsi, qword [rsp + 0x110]
add rdx, rax
ror rax, 0x33
add r15, rcx
xor rax, rdx
ror qword [rsp + 0x110], 0x36
xor qword [rsp + 0x110], rsi
ror qword [rsp + 0x28], 0x2f
xor qword [rsp + 0x28], r9
add r9, qword [rsp + 0x110]
add rsi, qword [rsp + 0x28]
ror qword [rsp + 0x110], 0x19
xor qword [rsp + 0x110], r9
ror qword [rsp + 0x28], 0x23
xor qword [rsp + 0x28], rsi
ror rcx, 0xe
xor rcx, r15
add r15, rax
add rdx, rcx
ror rax, 0x27
xor rax, r15
ror rcx, 0x15
add r15, qword [rsp + 0x28]
add rsi, rax
xor rcx, rdx
ror rax, 0x38
xor rax, rsi
add r9, rcx
add rax, rbp
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0x110]
mov qword [rsp + 0x30], rax
add rdx, r9
mov rax, qword [rsp + 0x28]
ror rax, 0x2a
xor rax, r15
ror rcx, 0x1d
add rax, rbx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x50]
ror r9, 8
xor r9, rdx
add r9, r11
mov r11, qword [rsp + 0x38]
xor rcx, r11
mov qword [rsp + 0x110], r9
ror qword [rsp + 0x110], 0x2d
lea rdx, [rcx + 0x10]
mov rcx, qword [rsp + 0x28]
add rdx, r13
mov r13, qword [rsp + 0x30]
add rax, r13
ror r13, 0x12
add r11, rax
lea rax, [r12 + rcx]
mov qword [rsp + 0x38], r11
mov r11, qword [rsp + 0x20]
add r11, rax
ror rcx, 0x1c
xor rcx, r11
lea rax, [r14 + r9]
mov r9, qword [rsp + 0xa8]
add r15, rax
xor qword [rsp + 0x110], r15
lea rax, [r9 + rdx]
ror rdx, 0x1b
add rsi, rax
mov rax, qword [rsp + 0x38]
xor rdx, rsi
xor r13, rax
add rsi, qword [rsp + 0x110]
add r15, rdx
ror qword [rsp + 0x110], 0x32
add r11, r13
xor qword [rsp + 0x110], rsi
add rax, rcx
ror r13, 0x1f
ror rcx, 0x16
xor r13, r11
ror rdx, 0x25
xor rcx, rax
xor rdx, r15
add rsi, rcx
add r15, r13
add rax, qword [rsp + 0x110]
ror qword [rsp + 0x110], 0x1c
add r11, rdx
xor qword [rsp + 0x110], rax
ror rcx, 0xf
xor rcx, rsi
ror r13, 0x2f
xor r13, r15
ror rdx, 0x19
add r15, rcx
xor rdx, r11
add r11, qword [rsp + 0x110]
add rax, rdx
ror rcx, 8
add rsi, r13
xor rcx, r15
ror r13, 0x14
add rcx, r14
ror rdx, 0x37
xor rdx, rax
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x110]
xor r13, rsi
ror rcx, 0xa
add r13, r12
xor rcx, r11
mov qword [rsp + 0x38], rax
add rcx, r9
mov rax, r13
mov r9, qword [rsp + 0x58]
add rax, rbp
mov qword [rsp + 0x110], rcx
lea rcx, [r10 + 0x11]
mov rbp, qword [rsp + 0x110]
add rcx, rdx
mov rdx, qword [rsp + 0x28]
mov r10, qword [rsp + 0x38]
add r10, rax
ror r13, 0x19
xor r13, r10
lea rax, [rbx + rdx]
ror rdx, 0x22
add r11, rax
lea rax, [r9 + rbp]
xor rdx, r11
ror rbp, 0x1e
add r11, r13
add r10, rdx
add r15, rax
ror r13, 0x33
lea rax, [r8 + rcx]
ror rdx, 0x2f
xor rbp, r15
ror rcx, 0x28
add rsi, rax
xor r13, r11
xor rcx, rsi
xor rdx, r10
add rsi, rbp
add r15, rcx
ror rcx, 0xe
xor rcx, r15
ror rbp, 0x36
xor rbp, rsi
add r11, rcx
add r10, rbp
ror rcx, 0x15
add rsi, rdx
ror rbp, 0x19
xor rcx, r11
ror rdx, 0x23
add r15, r13
xor rbp, r10
add r10, rcx
ror r13, 0x27
xor r13, r15
xor rdx, rsi
add rsi, r13
add r11, rbp
add r15, rdx
lea rax, [r12 + r10]
mov r12, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xb0]
ror r13, 0x38
ror rdx, 0x2a
xor r13, rsi
add r13, rbx
ror rbp, 8
mov rbx, qword [rsp + 0xc0]
xor rdx, r15
mov qword [rdi + r12], rax
xor rbp, r11
mov rax, qword [rsp + 0xb8]
add rdx, r9
ror rcx, 0x1d
add rbp, r8
xor rcx, r10
mov qword [rax + r12], r13
lea rax, [r14 + r11]
mov r11, qword [rsp + 0x78]
lea r14, [r12 + 0x40]
mov qword [rbx + r12], rax
mov rbx, qword [rsp + 0x120]
mov rax, qword [rsp + 0x60]
add rax, r15
mov qword [rsp + 0x80], r14
mov r15, qword [rsp + 0x98]
mov qword [rbx + r12 + 8], rax
mov rax, qword [rsp + 0x90]
add rax, rsi
mov qword [rbx + r12], rdx
mov qword [rbx + r12 + 0x18], rax
mov rax, qword [rsp + 0x50]
add rax, 0x12
mov qword [rbx + r12 + 0x10], rbp
add rax, rcx
sub qword [rsp + 0x128], 1
mov qword [rbx + r12 + 0x20], rax
jne 0x180105931
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xd8]
mov r12, qword [rsp + 0x118]
add rsp, 0xe0
pop r15
pop rdi
pop rsi
pop rbp
pop rbx
ret