Function at 0x1403d70ea
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x278
mov qword [rsp + 0x2c0], rcx
mov r10d, edx
mov edx, pe_nt_image_headers64
mov qword [rsp + 0x2d8], r9
mov r9, qword [rcx + 0x80]
mov ecx, r8d
sar edx, cl
mov eax, edx
neg eax
and eax, r10d
or eax, edx
mov byte [rsp + 0x1e8], al
mov rax, qword [rsp + 0x2c0]
mov rax, qword [rax + 0x108]
cmp r9, 0x77
ja 0x1403d7155
mov r8d, pe_nt_image_headers64
lea rdx, [rax + 1]
sub r8, r9
jmp 0x1403d7162
mov r8d, 0x100
lea rdx, [rax + 2]
sub r8, r9
lea r9, [rsp + 0x1e9]
xor eax, eax
lea rcx, [r8 - 9]
mov rdi, r9
lea r10, [rsp + 0x1e8]
rep stosb byte [rdi], al
mov rax, rdx
bswap rax
mov rcx, qword [rsp + 0x2c0]
mov rdx, r10
mov qword [rsp + r8 + 0x1e0], rax
call fcn.1403d3c7b
mov rbx, qword [rsp + 0x2c0]
lea rax, [rsp + 0xe8]
mov ecx, 0x20
mov rdi, rax
lea r10, [0x1407035a0]
lea r9, [0x140705da0]
lea rsi, [rbx + 0x88]
lea r8, [0x1407055a0]
rep movsd dword [rdi], dword [rsi]
mov rsi, rax
mov ecx, 0x20
lea rdi, [rsp + 0x168]
lea rbx, [0x140706da0]
lea r11, [0x140703da0]
rep movsd dword [rdi], dword [rsi]
lea rsi, [0x1407065a0]
lea rcx, [0x140704da0]
mov rax, qword [rsp + 0x168]
mov r14, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1c8]
mov r12, qword [rsp + 0x1d0]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x170]
mov rbp, qword [rsp + 0x1d8]
mov rdi, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x80], rax
xor eax, eax
lea r15, [rax + 0x10]
xor r15, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x28], r15
lea r15, [rax + 0x20]
xor r15, qword [rsp + 0x30]
mov qword [rsp + 0x30], r15
lea r15, [rax + 0x30]
xor r15, qword [rsp + 0x38]
xor rdx, rax
mov qword [rsp + 0x38], r15
lea r15, [rax + 0x40]
xor r15, qword [rsp + 0x40]
mov qword [rsp + 0x40], r15
lea r15, [rax + 0x50]
xor r15, qword [rsp + 0x48]
mov qword [rsp + 0x48], r15
lea r15, [rax + 0x60]
xor r15, qword [rsp + 0x60]
mov qword [rsp + 0x50], r15
lea r15, [rax + 0x70]
xor r15, qword [rsp + 0x68]
mov qword [rsp + 0x58], r15
lea r15, [rax + 0x80]
xor r15, qword [rsp + 0x70]
mov qword [rsp + 0x60], r15
lea r15, [rax + 0x90]
xor r15, qword [rsp + 0x78]
mov qword [rsp + 0x68], r15
lea r15, [rax + 0xa0]
xor r15, qword [rsp + 0x80]
mov qword [rsp + 0x70], r15
lea r15, [rax + 0xb0]
xor r14, r15
lea r15, [rax + 0xc0]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x28]
xor r15, r13
lea r13, [rax + 0xd0]
xor r12, r13
lea r13, [rax + 0xe0]
xor r13, rbp
lea rbp, [rax + 0xf0]
xor rbp, rdi
lea rdi, [rax + 1]
mov qword [rsp + 0x78], r13
lea r13, [0x1407045a0]
mov qword [rsp + 0x80], rbp
movzx ebp, byte [rsp + 0x20]
xor rdi, qword [rbx + rbp*8]
mov rbp, r14
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x30]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x38]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x48]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x28]
mov qword [rsp + 0x88], rdi
mov rdi, r15
shr rdi, 0x38
mov rbp, qword [rbx + rbp*8]
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x11]
xor rdi, rbp
movzx ebp, dh
mov rdx, qword [rsp + 0x38]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x38]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x40]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x48]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x30]
mov qword [rsp + 0x90], rdi
mov rdi, r12
shr rdi, 0x38
mov rbp, qword [rbx + rbp*8]
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x21]
xor rdi, rbp
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x40]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x48]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x40]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x60]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x38]
mov qword [rsp + 0x98], rdi
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rbx + rbp*8]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x31]
xor rdi, rbp
movzx ebp, dh
mov rdx, qword [rsp + 0x48]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x48]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x60]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x68]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x40]
mov qword [rsp + 0xa0], rdi
mov rdi, qword [rsp + 0x80]
mov rbp, qword [rbx + rbp*8]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x41]
xor rdi, rbp
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x60]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x68]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x70]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0x20]
mov qword [rsp + 0xa8], rdi
lea rdi, [rax + 0x51]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, byte [rsp + 0x48]
xor rdi, qword [rbx + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0x58]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x60]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x68]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x70]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, r14
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x50]
mov qword [rsp + 0xb0], rdi
mov rdi, qword [rsp + 0x28]
mov rbp, qword [rbx + rbp*8]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x61]
xor rdi, rbp
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x60]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x68]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x70]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, r14
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, r15
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x58]
mov qword [rsp + 0xb8], rdi
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rbx + rbp*8]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x71]
xor rdi, rbp
movzx ebp, dh
mov rdx, qword [rsp + 0x68]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x68]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x70]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, r14
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, r15
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, r12
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x60]
mov qword [rsp + 0xc0], rdi
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rbx + rbp*8]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x81]
xor rdi, rbp
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x70]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, r14
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, r15
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, r12
mov rdx, qword [rsp + 0x70]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x78]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x68]
mov qword [rsp + 0xc8], rdi
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rbx + rbp*8]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
lea rdi, [rax + 0x91]
xor rdi, rbp
movzx ebp, dh
mov rdx, r14
xor rdi, qword [rsi + rbp*8]
mov rbp, r14
movzx r14d, r14b
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, r15
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, r12
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x78]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov rbp, qword [rsp + 0x80]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0x20]
mov qword [rsp + 0xd0], rdi
movzx edi, byte [rsp + 0x70]
shr rbp, 0x30
movzx ebp, bpl
mov rbp, qword [r11 + rbp*8]
xor rbp, qword [rbx + rdi*8]
lea rdi, [rax + 0xa1]
xor rdi, rbp
mov rbp, qword [rsp + 0x48]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, r15
xor rdi, qword [rsi + rbp*8]
mov rbp, r15
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, r12
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x78]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x80]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r13 + rbp*8]
mov qword [rsp + 0xd8], rdi
mov rdi, qword [rsp + 0x20]
shr rdi, 0x28
movzx edi, dil
mov rbp, qword [r13 + rdi*8]
lea rdi, [rax + 0xb1]
xor rbp, qword [rbx + r14*8]
movzx r14d, r15b
xor rdi, rbp
mov rbp, qword [rsp + 0x50]
lea r15, [0x1407045a0]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, r12
xor rdi, qword [rsi + rbp*8]
mov rbp, r12
movzx r12d, r12b
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x78]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x80]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x28]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov r13, rdi
mov rdi, qword [rsp + 0x20]
shr rdi, 0x20
movzx edi, dil
mov rbp, qword [rcx + rdi*8]
lea rdi, [rax + 0xc1]
xor rbp, qword [rbx + r14*8]
xor rdi, rbp
mov rbp, qword [rsp + 0x58]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x78]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x80]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x28]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r15 + rbp*8]
mov rbp, qword [rsp + 0x30]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov qword [rsp + 0x50], rdi
mov rdi, qword [rsp + 0x20]
shr rdi, 0x18
movzx edi, dil
mov rbp, qword [r8 + rdi*8]
lea rdi, [rax + 0xd1]
xor rbp, qword [rbx + r12*8]
xor rdi, rbp
mov rbp, qword [rsp + 0x60]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
mov rdx, qword [rsp + 0x78]
movzx r14d, byte [rsp + 0x78]
movzx ebp, dh
mov rdx, qword [rsp + 0x80]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x80]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x28]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x30]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r15 + rbp*8]
mov rbp, qword [rsp + 0x38]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov r12, rdi
mov rdi, qword [rsp + 0x20]
shr rdi, 0x10
movzx edi, dil
mov rbp, qword [r9 + rdi*8]
lea rdi, [rax + 0xe1]
xor rbp, qword [rbx + r14*8]
movzx r14d, byte [rsp + 0x80]
xor rdi, rbp
mov rbp, qword [rsp + 0x68]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0x20]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x28]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x30]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x38]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r15 + rbp*8]
mov rbp, qword [rsp + 0x40]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov qword [rsp + 0x58], rdi
movzx edi, dh
mov rbp, qword [rsi + rdi*8]
lea rdi, [rax + 0xf1]
xor rbp, qword [rbx + r14*8]
mov r14, r15
xor rdi, rbp
mov rbp, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x90]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
mov rbp, qword [rsp + 0x28]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x30]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x38]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x40]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r15 + rbp*8]
mov rbp, qword [rsp + 0x48]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, r13
mov r15, rdi
mov rdi, qword [rsp + 0xb0]
shr rbp, 0x38
shr rdi, 0x28
movzx edi, dil
mov rdi, qword [r14 + rdi*8]
xor rdi, qword [r10 + rbp*8]
movzx ebp, byte [rsp + 0x88]
xor rdi, qword [rbx + rbp*8]
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x98]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xa0]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0xa8]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0xb8]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x90]
mov qword [rsp + 0x20], rdi
mov rdi, qword [rsp + 0xb0]
shr rdi, 0x20
movzx edi, dil
mov rdi, qword [rcx + rdi*8]
xor rdi, qword [rbx + rbp*8]
mov rbp, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0xa0]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xa0]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xa8]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0xb8]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0xc0]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0x98]
mov qword [rsp + 0x28], rdi
mov rdi, qword [rsp + 0xb0]
shr rdi, 0x18
movzx edi, dil
mov rdi, qword [r8 + rdi*8]
xor rdi, qword [rbx + rbp*8]
mov rbp, r12
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xa8]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xb8]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0xc0]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0xc8]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0xa0]
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0xb0]
shr rdi, 0x10
movzx edi, dil
mov rdi, qword [r9 + rdi*8]
xor rdi, qword [rbx + rbp*8]
mov rbp, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xa8]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0xb0]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xb8]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0xc0]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0xc8]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0xd0]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0xa8]
mov qword [rsp + 0x38], rdi
movzx edi, dh
mov rdi, qword [rsi + rdi*8]
xor rdi, qword [rbx + rbp*8]
mov rbp, r15
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
mov rbp, qword [rsp + 0xb8]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xc0]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0xc8]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0xd0]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0xd8]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0x88]
mov qword [rsp + 0x40], rdi
movzx edi, byte [rsp + 0xb0]
shr rbp, 0x38
mov rdi, qword [rbx + rdi*8]
mov rdx, qword [rsp + 0xb8]
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0xc0]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xc0]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xc8]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0xd0]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0xd8]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, r13
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0x90]
mov qword [rsp + 0x48], rdi
movzx edi, byte [rsp + 0xb8]
shr rbp, 0x38
mov rdi, qword [rbx + rdi*8]
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xc8]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xd0]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0xd8]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, r13
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0x98]
mov qword [rsp + 0x60], rdi
movzx edi, byte [rsp + 0xc0]
shr rbp, 0x38
mov rdi, qword [rbx + rdi*8]
mov rdx, qword [rsp + 0xc8]
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0xd0]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xd0]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0xd8]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, r13
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, r12
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0xa0]
mov qword [rsp + 0x68], rdi
movzx edi, byte [rsp + 0xc8]
shr rbp, 0x38
mov rdi, qword [rbx + rdi*8]
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0xd8]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, r13
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, r12
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
mov rbp, qword [rsp + 0xa8]
mov qword [rsp + 0x70], rdi
movzx edi, byte [rsp + 0xd0]
shr rbp, 0x38
mov rdi, qword [rbx + rdi*8]
xor rdi, qword [r10 + rbp*8]
mov rdx, qword [rsp + 0xd8]
movzx ebp, dh
mov rdx, r13
xor rdi, qword [rsi + rbp*8]
mov rbp, r13
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, r12
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, r15
shr rbp, 0x30
movzx ebp, bpl
xor rdi, qword [r11 + rbp*8]
movzx ebp, byte [rsp + 0xd8]
mov qword [rsp + 0x78], rdi
mov rdi, qword [rsp + 0x88]
shr rdi, 0x30
movzx edi, dil
mov rdi, qword [r11 + rdi*8]
xor rdi, qword [rbx + rbp*8]
mov rbp, qword [rsp + 0xb0]
shr rbp, 0x38
xor rdi, qword [r10 + rbp*8]
movzx ebp, dh
mov rdx, qword [rsp + 0x50]
xor rdi, qword [rsi + rbp*8]
mov rbp, qword [rsp + 0x50]
shr rbp, 0x10
movzx ebp, bpl
xor rdi, qword [r9 + rbp*8]
mov rbp, r12
shr rbp, 0x18
movzx ebp, bpl
xor rdi, qword [r8 + rbp*8]
mov rbp, qword [rsp + 0x58]
shr rbp, 0x20
movzx ebp, bpl
xor rdi, qword [rcx + rbp*8]
mov rbp, r15
shr rbp, 0x28
movzx ebp, bpl
xor rdi, qword [r14 + rbp*8]
mov rbp, qword [rsp + 0x88]
mov qword [rsp + 0x80], rdi
movzx edi, r13b
shr rbp, 0x28
movzx ebp, bpl
mov r14, qword [r14 + rbp*8]
xor r14, qword [rbx + rdi*8]
mov rdi, qword [rsp + 0xb8]
shr rdi, 0x38
xor r14, qword [r10 + rdi*8]
movzx edi, dh
mov rdx, r12
xor r14, qword [rsi + rdi*8]
mov rdi, r12
shr rdi, 0x10
movzx edi, dil
xor r14, qword [r9 + rdi*8]
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x88]
shr rdi, 0x18
movzx edi, dil
shr rbp, 0x20
xor r14, qword [r8 + rdi*8]
mov rdi, r15
movzx ebp, bpl
shr rdi, 0x20
mov r13, qword [rcx + rbp*8]
mov rbp, qword [rsp + 0x88]
movzx edi, dil
xor r14, qword [rcx + rdi*8]
mov rdi, qword [rsp + 0x90]
shr rbp, 0x18
movzx ebp, bpl
shr rdi, 0x30
movzx edi, dil
xor r14, qword [r11 + rdi*8]
movzx edi, byte [rsp + 0x50]
xor r13, qword [rbx + rdi*8]
mov rdi, qword [rsp + 0xc0]
shr rdi, 0x38
xor r13, qword [r10 + rdi*8]
movzx edi, dh
lea rdx, [0x1407045a0]
xor r13, qword [rsi + rdi*8]
mov rdi, qword [rsp + 0x58]
shr rdi, 0x10
movzx edi, dil
xor r13, qword [r9 + rdi*8]
mov rdi, r15
shr rdi, 0x18
movzx edi, dil
xor r13, qword [r8 + rdi*8]
mov rdi, qword [rsp + 0x90]
shr rdi, 0x28
movzx edi, dil
xor r13, qword [rdx + rdi*8]
mov rdi, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x58]
shr rdi, 0x30
movzx edi, dil
xor r13, qword [r11 + rdi*8]
movzx edi, r12b
mov r12, qword [r8 + rbp*8]
xor r12, qword [rbx + rdi*8]
mov rdi, qword [rsp + 0xc8]
shr rdi, 0x38
xor r12, qword [r10 + rdi*8]
movzx edi, dh
lea rdx, [0x1407045a0]
xor r12, qword [rsi + rdi*8]
mov rdi, r15
shr rdi, 0x10
movzx edi, dil
xor r12, qword [r9 + rdi*8]
mov rdi, qword [rsp + 0x90]
shr rdi, 0x20
movzx edi, dil
xor r12, qword [rcx + rdi*8]
mov rdi, qword [rsp + 0x98]
shr rdi, 0x28
movzx edi, dil
xor r12, qword [rdx + rdi*8]
mov rdi, qword [rsp + 0xa0]
mov rdx, r15
movzx r15d, r15b
shr rdi, 0x30
movzx edi, dil
xor r12, qword [r11 + rdi*8]
mov rbp, qword [rsp + 0x88]
movzx edi, byte [rsp + 0x58]
shr rbp, 0x10
movzx ebp, bpl
mov rbp, qword [r9 + rbp*8]
xor rbp, qword [rbx + rdi*8]
mov rdi, qword [rsp + 0xd0]
shr rdi, 0x38
xor rbp, qword [r10 + rdi*8]
movzx edi, dh
lea rdx, [0x1407045a0]
xor rbp, qword [rsi + rdi*8]
mov rdi, qword [rsp + 0x90]
shr rdi, 0x18
movzx edi, dil
xor rbp, qword [r8 + rdi*8]
mov rdi, qword [rsp + 0x98]
shr rdi, 0x20
movzx edi, dil
xor rbp, qword [rcx + rdi*8]
mov rdi, qword [rsp + 0xa0]
shr rdi, 0x28
movzx edi, dil
xor rbp, qword [rdx + rdi*8]
mov rdi, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x88]
shr rdi, 0x30
movzx edi, dil
xor rbp, qword [r11 + rdi*8]
movzx edi, dh
lea rdx, [0x1407045a0]
mov rdi, qword [rsi + rdi*8]
xor rdi, qword [rbx + r15*8]
mov r15, qword [rsp + 0xb0]
shr r15, 0x30
movzx r15d, r15b
xor rdi, qword [r11 + r15*8]
mov r15, qword [rsp + 0xd8]
shr r15, 0x38
xor rdi, qword [r10 + r15*8]
mov r15, qword [rsp + 0x90]
shr r15, 0x10
movzx r15d, r15b
xor rdi, qword [r9 + r15*8]
mov r15, qword [rsp + 0x98]
shr r15, 0x18
movzx r15d, r15b
xor rdi, qword [r8 + r15*8]
mov r15, qword [rsp + 0xa0]
shr r15, 0x20
movzx r15d, r15b
xor rdi, qword [rcx + r15*8]
mov r15, qword [rsp + 0xa8]
shr r15, 0x28
movzx r15d, r15b
xor rdi, qword [rdx + r15*8]
add rax, 2
cmp rax, 0xe
jne 0x1403d72bb
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x1c0], r14
xor ecx, ecx
lea r8, [rsp + 0x168]
mov qword [rsp + 0x1c8], r13
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x1d0], r12
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1d8], rbp
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x1e0], rdi
mov qword [rsp + 0x180], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x1b8], rax
lea rdx, [rsp + 0xe8]
mov rax, qword [rdx + rcx*8]
xor rax, qword [r8 + rcx*8]
mov qword [rdx + rcx*8], rax
inc rcx
cmp rcx, 0x10
jne 0x1403d8579
lea rax, [rsp + 0x1e8]
lea rsi, [rsp + 0x128]
mov rbx, qword [rsp + 0x2c0]
mov rdi, rax
sub rax, qword [rsp + 0x2e0]
rep movsd dword [rdi], dword [rsi]
lea rsi, [rax + 0x40]
mov rax, qword [rsp + 0x2c0]
mov ecx, dword [rsp + 0x2e0]
mov rdi, qword [rsp + 0x2d8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rax + 0x88]
mov ecx, 0x1e
mov qword [rax + 0x80], 0
mov rdi, rdx
xor eax, eax
mov edx, 0xff
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x2e0]
shl rdx, 0x30
mov qword [rbx + 0x108], 0
shl rax, 0x2b
and rdx, rax
mov rax, qword [rsp + 0x2e0]
shl rax, 0x3b
or rax, rdx
mov qword [rbx + 0x100], rax
add rsp, 0x278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret