Function at 0x40cc60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov rax, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x48]
mov r11, qword [rcx + 0x58]
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x150], r8
mov qword [rsp + 0x40], rax
mov rax, qword [rcx + 0x20]
mov rdx, rbx
mov qword [rsp + 0x158], r9
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x58], r11
mov rdi, rax
mov rax, qword [rcx + 0x28]
mov r10, rdi
mov rbp, rax
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x20], rbp
mov r12, rax
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], r12
mov r13, rax
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x30], r13
mov r14, rax
mov rax, qword [rcx + 0x50]
mov qword [rsp + 0x50], rax
mov rax, r9
add rax, qword [rcx + 0x10]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0xa0], rax
nop word cs:[rax + rax]
mov rbp, r10
xor r10, qword [rsp + 0x20]
movabs rax, 0x1bd11bdaa9fc1a22
mov r15, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x50]
mov r13, rdx
mov r12, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xa0]
mov r8d, 8
xor r10, rax
xor r10, qword [rsp + 0x28]
mov rax, r15
xor r10, qword [rsp + 0x30]
xor rax, qword [rsp + 0x40]
xor r10, r14
mov rdi, rax
xor r10, rdx
mov rdx, qword [rsp + 0x148]
xor r10, rbx
xor r10, r12
mov rsi, r10
call fcn.0040cbd0
mov rax, r13
add rax, qword [rsp + 0xd8]
mov qword [rsp + 0x38], r15
mov r10, rbp
mov rcx, qword [rsp + 0x20]
add r10, qword [rsp + 0xb0]
add rcx, qword [rsp + 0xb8]
mov r8, r14
add r8, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rax, r15
mov r15, qword [rsp + 0x40]
add rdx, qword [rsp + 0xc8]
add r9, qword [rsp + 0xc0]
add qword [rsp + 0x148], 0x40
add r10, rcx
add r8, rax
ror rcx, 0x12
add r15, rbx
rol rax, 0x13
xor rcx, r10
mov r11, r15
mov r15, r12
add r15, qword [rsp + 0xe8]
mov qword [rsp + 0x48], r11
xor rax, r8
add r9, rdx
add r11, qword [rsp + 0xe0]
ror rdx, 0x1c
mov qword [rsp + 0x50], rdi
xor rdx, r9
mov qword [rsp + 0x58], rbp
add r11, r15
ror r15, 0x1b
xor r15, r11
add r9, rcx
add r11, rax
add r8, r15
ror rcx, 0x1f
rol r15, 0x1b
rol rax, 0xe
xor rcx, r9
xor r15, r8
xor rax, r11
add r10, rdx
ror rdx, 0x16
xor rdx, r10
add r9, r15
add r10, rax
add r8, rcx
ror rax, 0x1c
rol rcx, 0x11
ror r15, 0x19
add r11, rdx
xor rax, r10
xor r15, r9
xor rcx, r8
ror rdx, 0xf
add r10, r15
add r9, rax
xor rdx, r11
rol r15, 9
add r11, rcx
ror rax, 0xa
ror rcx, 0x14
xor r15, r10
xor rax, r9
xor rcx, r11
add r8, rdx
add rcx, qword [rsp + 0x28]
add rax, qword [rsp + 0x48]
add r10, qword [rsp + 0x20]
add rdi, r12
add r9, qword [rsp + 0x30]
lea r15, [rsi + r15 + 1]
ror rdx, 8
xor rdx, r8
add r11, rdi
add r8, r13
add rdx, r14
add r11, r15
rol r15, 0x18
add r10, rcx
add r8, rax
ror rcx, 0x19
ror rax, 0x1e
xor rcx, r10
add r9, rdx
xor rax, r8
xor r15, r11
rol rdx, 0x1e
add r8, r15
add r11, rax
xor rdx, r9
ror r15, 0xe
add r9, rcx
rol rax, 0xa
rol rcx, 0xd
xor r15, r8
xor rax, r11
xor rcx, r9
add r10, rdx
rol rdx, 0x11
xor rdx, r10
add r10, rax
ror rax, 0x19
add r8, rcx
xor rax, r10
add r9, r15
rol rcx, 0x19
ror r15, 0x15
add r11, rdx
xor rcx, r8
xor r15, r9
rol rdx, 0x1d
add r9, rax
ror rax, 8
xor rdx, r11
add r10, r15
add r11, rcx
xor rax, r9
rol rcx, 8
ror r15, 0x1d
add rax, rdi
xor r15, r10
xor rcx, r11
add r10, qword [rsp + 0x28]
add rcx, qword [rsp + 0x30]
mov qword [rsp + 0x60], rdi
add r8, rdx
mov rdi, qword [rsp + 0x38]
rol rdx, 0x16
add r9, r14
xor rdx, r8
lea r15, [r15 + rbp + 2]
add r8, rbx
add rdx, r13
add rdi, rsi
add r11, rdi
add r10, rcx
add r9, rdx
add r8, rax
ror rcx, 0x12
ror rdx, 0x1c
rol rax, 0x13
xor rcx, r10
xor rdx, r9
xor rax, r8
add r11, r15
ror r15, 0x1b
xor r15, r11
add r9, rcx
add r11, rax
add r10, rdx
ror rcx, 0x1f
rol rax, 0xe
ror rdx, 0x16
xor rcx, r9
add r8, r15
xor rax, r11
xor rdx, r10
rol r15, 0x1b
xor r15, r8
add r11, rdx
add r8, rcx
add r10, rax
rol rcx, 0x11
ror rdx, 0xf
ror rax, 0x1c
xor rcx, r8
xor rdx, r11
xor rax, r10
add r9, r15
ror r15, 0x19
xor r15, r9
add r9, rax
ror rax, 0xa
xor rax, r9
mov qword [rsp + 0x68], rdi
add r10, r15
add rax, rdi
mov rdi, qword [rsp + 0x40]
rol r15, 9
xor r15, r10
add r10, qword [rsp + 0x30]
add r11, rcx
add r8, rdx
ror rcx, 0x14
ror rdx, 8
add rdi, rbp
mov rbp, qword [rsp + 0x20]
xor rcx, r11
xor rdx, r8
add rcx, r14
add r9, r13
add rdx, rbx
add r8, r12
add r10, rcx
lea r15, [r15 + rbp + 3]
add r9, rdx
add r8, rax
add r11, rdi
ror rcx, 0x19
rol rdx, 0x1e
ror rax, 0x1e
xor rcx, r10
xor rdx, r9
xor rax, r8
add r11, r15
rol r15, 0x18
xor r15, r11
add r9, rcx
rol rcx, 0xd
add r8, r15
ror r15, 0xe
xor rcx, r9
xor r15, r8
add r11, rax
add r10, rdx
rol rax, 0xa
rol rdx, 0x11
add r8, rcx
xor rax, r11
xor rdx, r10
add r9, r15
rol rcx, 0x19
ror r15, 0x15
add r11, rdx
xor rcx, r8
add r10, rax
xor r15, r9
rol rdx, 0x1d
ror rax, 0x19
mov qword [rsp + 0x70], rdi
xor rdx, r11
xor rax, r10
add r11, rcx
add r10, r15
rol rcx, 8
ror r15, 0x1d
xor rcx, r11
xor r15, r10
add r9, rax
ror rax, 8
add r8, rdx
rol rdx, 0x16
xor rax, r9
add rcx, r13
xor rdx, r8
add rax, rdi
mov rdi, qword [rsp + 0x50]
add r10, r14
add rdx, r12
add r10, rcx
add r9, rbx
add r8, rsi
ror rcx, 0x12
add r9, rdx
add rdi, rbp
mov rbp, qword [rsp + 0x28]
xor rcx, r10
add r11, rdi
add r8, rax
ror rdx, 0x1c
rol rax, 0x13
xor rdx, r9
add r9, rcx
lea r15, [r15 + rbp + 4]
xor rax, r8
ror rcx, 0x1f
xor rcx, r9
mov rbp, qword [rsp + 0x58]
mov qword [rsp + 0x58], rdi
add r11, r15
ror r15, 0x1b
xor r15, r11
add r11, rax
add r8, r15
rol r15, 0x1b
xor r15, r8
rol rax, 0xe
add r10, rdx
ror rdx, 0x16
xor rax, r11
add r8, rcx
xor rdx, r10
rol rcx, 0x11
add r10, rax
add r11, rdx
ror rdx, 0xf
xor rcx, r8
xor rdx, r11
add r9, r15
ror rax, 0x1c
ror r15, 0x19
xor rax, r10
add r11, rcx
xor r15, r9
add r8, rdx
ror rcx, 0x14
ror rdx, 8
add r10, r15
add r9, rax
xor rcx, r11
rol r15, 9
ror rax, 0xa
xor rdx, r8
add rcx, rbx
xor r15, r10
add rdx, rsi
xor rax, r9
add r10, r13
add r9, r12
add r8, rbp
add rax, rdi
mov qword [rsp + 0x78], r8
mov r8, qword [rsp + 0x30]
add r10, rcx
mov rdi, qword [rsp + 0x38]
add rdi, qword [rsp + 0x28]
add r9, rdx
ror rcx, 0x19
rol rdx, 0x1e
lea r15, [r15 + r8 + 5]
mov r8, qword [rsp + 0x78]
xor rcx, r10
xor rdx, r9
add r9, rcx
rol rcx, 0xd
add r11, rdi
add r10, rdx
rol rdx, 0x11
add r8, rax
add r11, r15
ror rax, 0x1e
rol r15, 0x18
xor rax, r8
xor rcx, r9
xor r15, r11
xor rdx, r10
add r11, rax
add r8, r15
rol rax, 0xa
ror r15, 0xe
xor r15, r8
xor rax, r11
add r8, rcx
add r11, rdx
rol rcx, 0x19
rol rdx, 0x1d
xor rcx, r8
xor rdx, r11
add r10, rax
ror rax, 0x19
add r9, r15
ror r15, 0x15
xor rax, r10
xor r15, r9
add r8, rdx
add r9, rax
ror rax, 8
rol rdx, 0x16
xor rax, r9
mov qword [rsp + 0x78], rdi
add r11, rcx
add rax, rdi
mov rdi, qword [rsp + 0x40]
add rdi, qword [rsp + 0x30]
add r10, r15
xor rdx, r8
rol rcx, 8
ror r15, 0x1d
add r8, qword [rsp + 0x20]
xor rcx, r11
xor r15, r10
add rcx, r12
add rdx, rbp
add r10, rbx
add r9, rsi
lea r15, [r15 + r14 + 6]
add r10, rcx
add r9, rdx
add r11, rdi
ror rcx, 0x12
ror rdx, 0x1c
mov qword [rsp + 0x80], rdi
xor rcx, r10
xor rdx, r9
add r8, rax
add r11, r15
rol rax, 0x13
ror r15, 0x1b
xor rax, r8
xor r15, r11
add r9, rcx
ror rcx, 0x1f
add r8, r15
add r11, rax
xor rcx, r9
add r10, rdx
rol r15, 0x1b
rol rax, 0xe
ror rdx, 0x16
xor r15, r8
xor rax, r11
xor rdx, r10
add r8, rcx
rol rcx, 0x11
add r11, rdx
add r9, r15
xor rcx, r8
add r10, rax
ror rdx, 0xf
ror rax, 0x1c
ror r15, 0x19
xor rdx, r11
xor rax, r10
add r11, rcx
xor r15, r9
ror rcx, 0x14
xor rcx, r11
add r10, r15
add r9, rax
ror rax, 0xa
add r8, rdx
ror rdx, 8
xor rax, r9
xor rdx, r8
rol r15, 9
add rax, rdi
mov rdi, qword [rsp + 0x50]
add rdx, qword [rsp + 0x20]
add r8, qword [rsp + 0x28]
xor r15, r10
add rcx, rsi
add r10, r12
lea r15, [r15 + r13 + 7]
add r9, rbp
add rdi, r14
add r10, rcx
ror rcx, 0x19
add r11, rdi
xor rcx, r10
add r9, rdx
add r8, rax
add r11, r15
rol rdx, 0x1e
ror rax, 0x1e
rol r15, 0x18
xor rdx, r9
xor rax, r8
add r9, rcx
xor r15, r11
rol rcx, 0xd
add r8, r15
mov qword [rsp + 0x88], rdi
xor rcx, r9
ror r15, 0xe
add r11, rax
rol rax, 0xa
add r10, rdx
rol rdx, 0x11
xor rax, r11
xor r15, r8
xor rdx, r10
add r8, rcx
add r10, rax
rol rcx, 0x19
ror rax, 0x19
xor rcx, r8
add r11, rdx
xor rax, r10
add r9, r15
rol rdx, 0x1d
ror r15, 0x15
xor rdx, r11
add r11, rcx
xor r15, r9
rol rcx, 8
add r9, rax
ror rax, 8
add r10, r15
add r8, rdx
xor rax, r9
xor rcx, r11
ror r15, 0x1d
rol rdx, 0x16
xor r15, r10
add r10, rsi
xor rdx, r8
add rcx, rbp
add rax, rdi
mov rdi, qword [rsp + 0x38]
add rdx, qword [rsp + 0x28]
lea r15, [r15 + rbx + 8]
add r9, qword [rsp + 0x20]
add r8, qword [rsp + 0x30]
add r10, rcx
ror rcx, 0x12
mov qword [rsp + 0x50], rbp
add rdi, r13
xor rcx, r10
add r11, rdi
mov qword [rsp + 0x90], rdi
add r9, rdx
add r8, rax
add r11, r15
ror rdx, 0x1c
rol rax, 0x13
ror r15, 0x1b
xor rdx, r9
xor rax, r8
xor r15, r11
add r9, rcx
ror rcx, 0x1f
add r8, r15
xor rcx, r9
add r11, rax
rol r15, 0x1b
rol rax, 0xe
xor r15, r8
add r10, rdx
xor rax, r11
add r8, rcx
ror rdx, 0x16
rol rcx, 0x11
xor rdx, r10
xor rcx, r8
add r10, rax
ror rax, 0x1c
add r11, rdx
xor rax, r10
add r9, r15
ror rdx, 0xf
ror r15, 0x19
xor rdx, r11
xor r15, r9
add r11, rcx
add r9, rax
ror rcx, 0x14
ror rax, 0xa
add r8, rdx
xor rcx, r11
xor rax, r9
add rcx, qword [rsp + 0x20]
ror rdx, 8
add r10, r15
add rax, rdi
xor rdx, r8
mov rdi, qword [rsp + 0x48]
add r9, qword [rsp + 0x28]
add rdx, qword [rsp + 0x30]
rol r15, 9
xor r15, r10
add r10, rbp
add r8, r14
lea r15, [r15 + r12 + 9]
add r10, rcx
add r11, rdi
ror rcx, 0x19
xor rcx, r10
add r9, rdx
rol rdx, 0x1e
add r8, rax
add r11, r15
ror rax, 0x1e
rol r15, 0x18
xor rax, r8
xor rdx, r9
xor r15, r11
add r9, rcx
add r11, rax
add r8, r15
rol rcx, 0xd
ror r15, 0xe
rol rax, 0xa
xor rcx, r9
xor r15, r8
xor rax, r11
add r10, rdx
rol rdx, 0x11
xor rdx, r10
add r8, rcx
add r10, rax
add r9, r15
rol rcx, 0x19
ror rax, 0x19
ror r15, 0x15
add r11, rdx
xor rax, r10
xor r15, r9
xor rcx, r8
rol rdx, 0x1d
xor rdx, r11
add r11, rcx
rol rcx, 8
add r10, r15
add r9, rax
ror r15, 0x1d
ror rax, 8
xor rcx, r11
xor r15, r10
add rcx, qword [rsp + 0x28]
xor rax, r9
add r10, qword [rsp + 0x20]
add rax, rdi
add r9, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x60]
add r8, rdx
rol rdx, 0x16
lea r15, [rsi + r15 + 0xa]
xor rdx, r8
add r8, r13
add rdx, r14
add r10, rcx
add r11, rdi
ror rcx, 0x12
add r9, rdx
add r11, r15
xor rcx, r10
add r8, rax
ror rdx, 0x1c
rol rax, 0x13
ror r15, 0x1b
xor rdx, r9
xor rax, r8
add r9, rcx
xor r15, r11
ror rcx, 0x1f
xor rcx, r9
add r8, r15
add r11, rax
add r10, rdx
rol r15, 0x1b
rol rax, 0xe
ror rdx, 0x16
xor r15, r8
xor rax, r11
xor rdx, r10
add r8, rcx
add r10, rax
add r11, rdx
add r9, r15
rol rcx, 0x11
ror rdx, 0xf
ror rax, 0x1c
ror r15, 0x19
xor rcx, r8
xor rdx, r11
xor rax, r10
xor r15, r9
add r11, rcx
add r9, rax
add r8, rdx
add r10, r15
ror rcx, 0x14
rol r15, 9
ror rax, 0xa
ror rdx, 8
xor rcx, r11
xor rax, r9
xor rdx, r8
xor r15, r10
add r10, qword [rsp + 0x28]
add rcx, qword [rsp + 0x30]
add rax, rdi
mov rdi, qword [rsp + 0x68]
lea r15, [r15 + rbp + 0xb]
add rdx, r13
add r9, r14
add r8, rbx
add r9, rdx
rol rdx, 0x1e
add r8, rax
add r10, rcx
add r11, rdi
ror rcx, 0x19
xor rcx, r10
add r11, r15
rol r15, 0x18
xor rdx, r9
xor r15, r11
add r9, rcx
ror rax, 0x1e
rol rcx, 0xd
add r10, rdx
xor rax, r8
xor rcx, r9
add r8, r15
ror r15, 0xe
add r11, rax
rol rdx, 0x11
xor r15, r8
rol rax, 0xa
add r8, rcx
rol rcx, 0x19
xor rax, r11
xor rdx, r10
xor rcx, r8
add r9, r15
ror r15, 0x15
add r10, rax
xor r15, r9
ror rax, 0x19
xor rax, r10
add r10, r15
ror r15, 0x1d
add r11, rdx
add r9, rax
xor r15, r10
rol rdx, 0x1d
add r10, qword [rsp + 0x30]
ror rax, 8
xor rdx, r11
mov rbp, qword [rsp + 0x20]
add r11, rcx
xor rax, r9
rol rcx, 8
add r8, rdx
add rax, rdi
xor rcx, r11
mov rdi, qword [rsp + 0x70]
rol rdx, 0x16
add rcx, r14
add r9, r13
xor rdx, r8
add r10, rcx
add r8, r12
add rdx, rbx
lea r15, [r15 + rbp + 0xc]
ror rcx, 0x12
xor rcx, r10
add r11, rdi
add r9, rdx
ror rdx, 0x1c
add r8, rax
rol rax, 0x13
xor rax, r8
add r11, r15
ror r15, 0x1b
xor rdx, r9
xor r15, r11
add r9, rcx
add r11, rax
ror rcx, 0x1f
rol rax, 0xe
xor rcx, r9
add r8, r15
xor rax, r11
add r10, rdx
rol r15, 0x1b
ror rdx, 0x16
xor r15, r8
xor rdx, r10
add r8, rcx
add r10, rax
rol rcx, 0x11
ror rax, 0x1c
add r11, rdx
xor rax, r10
add r9, r15
xor rcx, r8
ror rdx, 0xf
ror r15, 0x19
xor rdx, r11
xor r15, r9
add r11, rcx
ror rcx, 0x14
add r9, rax
ror rax, 0xa
mov rbp, qword [rsp + 0x28]
xor rax, r9
add r10, r15
add rax, rdi
rol r15, 9
mov rdi, qword [rsp + 0x58]
add r8, rdx
xor rcx, r11
xor r15, r10
ror rdx, 8
add rcx, r13
add r10, r14
xor rdx, r8
lea r15, [r15 + rbp + 0xd]
add r10, rcx
add rdx, r12
add r9, rbx
add r8, rsi
add r11, rdi
ror rcx, 0x19
add r9, rdx
xor rcx, r10
add r11, r15
add r8, rax
rol rdx, 0x1e
ror rax, 0x1e
rol r15, 0x18
xor rdx, r9
xor rax, r8
add r9, rcx
xor r15, r11
rol rcx, 0xd
mov rbp, qword [rsp + 0x50]
xor rcx, r9
add r8, r15
add r11, rax
add r10, rdx
ror r15, 0xe
rol rax, 0xa
rol rdx, 0x11
xor r15, r8
xor rax, r11
xor rdx, r10
add r8, rcx
add r10, rax
add r11, rdx
add r9, r15
rol rcx, 0x19
rol rdx, 0x1d
ror rax, 0x19
ror r15, 0x15
xor rcx, r8
xor rdx, r11
xor rax, r10
xor r15, r9
add r11, rcx
add r9, rax
add r8, rdx
add r10, r15
rol rcx, 8
ror r15, 0x1d
ror rax, 8
rol rdx, 0x16
xor rcx, r11
xor rax, r9
xor rdx, r8
xor r15, r10
add r10, r13
add r8, rbp
mov qword [rsp + 0x50], r8
mov r8, qword [rsp + 0x30]
add rax, rdi
mov rdi, qword [rsp + 0x78]
add rcx, rbx
add rdx, rsi
add r10, rcx
add r9, r12
ror rcx, 0x12
lea r15, [r15 + r8 + 0xe]
mov r8, qword [rsp + 0x50]
xor rcx, r10
add r11, rdi
add r9, rdx
ror rdx, 0x1c
add r11, r15
ror r15, 0x1b
xor rdx, r9
add r8, rax
xor r15, r11
add r9, rcx
rol rax, 0x13
ror rcx, 0x1f
add r10, rdx
xor rax, r8
xor rcx, r9
add r8, r15
ror rdx, 0x16
rol r15, 0x1b
add r11, rax
xor r15, r8
xor rdx, r10
add r8, rcx
rol rax, 0xe
rol rcx, 0x11
mov qword [rsp + 0x50], rbx
xor rax, r11
xor rcx, r8
add r11, rdx
add r9, r15
ror rdx, 0xf
ror r15, 0x19
xor rdx, r11
add r10, rax
xor r15, r9
ror rax, 0x1c
add r11, rcx
add r8, rdx
xor rax, r10
ror rcx, 0x14
add r10, r15
ror rdx, 8
rol r15, 9
xor rcx, r11
xor r15, r10
xor rdx, r8
add r10, rbx
add r8, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x80]
add r9, rax
add rcx, r12
ror rax, 0xa
add rdx, rbp
add r10, rcx
xor rax, r9
lea r15, [r15 + r14 + 0xf]
add r9, rsi
ror rcx, 0x19
add rax, rdi
xor rcx, r10
add r11, rbx
add r9, rdx
rol rdx, 0x1e
add r8, rax
add r11, r15
xor rdx, r9
ror rax, 0x1e
rol r15, 0x18
xor rax, r8
xor r15, r11
add r9, rcx
add r10, rdx
rol rcx, 0xd
rol rdx, 0x11
xor rcx, r9
add r8, r15
add r11, rax
xor rdx, r10
ror r15, 0xe
rol rax, 0xa
xor r15, r8
xor rax, r11
add r8, rcx
add r11, rdx
rol rcx, 0x19
rol rdx, 0x1d
xor rdx, r11
add r10, rax
add r9, r15
xor rcx, r8
ror rax, 0x19
ror r15, 0x15
xor rax, r10
xor r15, r9
add r11, rcx
rol rcx, 8
add r8, rdx
rol rdx, 0x16
add r10, r15
add r9, rax
mov rdi, qword [rsp + 0x88]
xor rdx, r8
ror r15, 0x1d
add rdx, qword [rsp + 0x20]
add r8, qword [rsp + 0x28]
ror rax, 8
xor r15, r10
xor rcx, r11
xor rax, r9
add r10, r12
add rcx, rsi
add rax, rbx
lea rbx, [r15 + r13 + 0x10]
add r10, rcx
add r9, rbp
add r11, rdi
ror rcx, 0x12
add r9, rdx
add r11, rbx
xor rcx, r10
add r8, rax
ror rdx, 0x1c
rol rax, 0x13
ror rbx, 0x1b
xor rdx, r9
xor rax, r8
add r9, rcx
xor rbx, r11
ror rcx, 0x1f
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x58], r12
xor rcx, r9
add r8, rbx
add r11, rax
add r10, rdx
rol rbx, 0x1b
rol rax, 0xe
ror rdx, 0x16
xor rbx, r8
xor rax, r11
xor rdx, r10
add r8, rcx
add r10, rax
add r11, rdx
add r9, rbx
rol rcx, 0x11
ror rdx, 0xf
ror rax, 0x1c
ror rbx, 0x19
xor rcx, r8
xor rdx, r11
xor rax, r10
xor rbx, r9
add r11, rcx
add r9, rax
add r8, rdx
add r10, rbx
ror rcx, 0x14
rol rbx, 9
ror rax, 0xa
ror rdx, 8
xor rcx, r11
xor rax, r9
xor rdx, r8
xor rbx, r10
add r10, rsi
add rdx, qword [rsp + 0x28]
add r9, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x90]
add rcx, rbp
add r8, qword [rsp + 0x30]
lea rbx, [rbx + r15 + 0x11]
add r10, rcx
ror rcx, 0x19
add rax, rdi
mov r12, qword [rsp + 0x28]
add r11, rsi
xor rcx, r10
mov rdi, rbp
add r9, rdx
add r11, rbx
rol rdx, 0x1e
rol rbx, 0x18
xor rdx, r9
add r8, rax
xor rbx, r11
add r9, rcx
ror rax, 0x1e
rol rcx, 0xd
xor rax, r8
add r8, rbx
xor rcx, r9
ror rbx, 0xe
add r11, rax
xor rbx, r8
add r10, rdx
add r8, rcx
rol rax, 0xa
rol rdx, 0x11
rol rcx, 0x19
xor rax, r11
xor rdx, r10
xor rcx, r8
add r9, rbx
ror rbx, 0x15
add r11, rdx
add r10, rax
xor rbx, r9
mov rbp, qword [rsp + 0x20]
rol rdx, 0x1d
ror rax, 0x19
xor rdx, r11
xor rax, r10
add r11, rcx
add r10, rbx
rol rcx, 8
add r9, rax
xor rcx, r11
ror rbx, 0x1d
add rdi, r10
xor rbx, r10
add rbp, rcx
add r12, r9
xor rbp, qword [rsp + 0xb8]
xor r12, qword [rsp + 0xc0]
mov r10, rdi
xor r10, qword [rsp + 0xb0]
mov r15, rbx
mov rbx, qword [rsp + 0x140]
add r8, rdx
rol rdx, 0x16
ror rax, 8
xor rdx, r8
add r14, r8
xor rax, r9
mov qword [rbx + 0x28], rbp
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x20], r10
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x28], r12
mov r13, qword [rsp + 0x30]
xor r14, qword [rsp + 0xd0]
add r13, rdx
xor r13, qword [rsp + 0xc8]
mov qword [rbx + 0x40], r14
mov qword [rbx + 0x38], r13
lea rbx, [rax + rsi]
xor rbx, qword [rsp + 0xd8]
add r11, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x140]
xor r11, qword [rsp + 0xe0]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x30], r13
mov qword [rsi + 0x48], rbx
mov rdx, rbx
mov qword [rsi + 0x50], r11
lea rsi, [r15 + rax + 0x12]
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x50], r11
mov rbx, rsi
xor rbx, qword [rsp + 0xe8]
mov qword [rax + 0x58], rbx
movabs rax, 0xbfffffffffffffff
and qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x158]
add qword [rsp + 0x38], rax
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x58], rbx
jne 0x40cd20
mov rax, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x140]
sub rax, 1
imul rax, qword [rsp + 0x158]
add rax, qword [rsp + 0xa8]
mov qword [rsi + 0x10], rax
mov rax, rsi
mov rsi, qword [rsp + 0x40]
mov qword [rax + 0x18], rsi
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret