Function at 0x14016ebb0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x1c8
mov r9, rdx
mov eax, 0x20
mov rdx, rcx
mov r11, r8
mov rcx, qword [rcx + 0x20]
sub rax, rcx
mov qword [rsp + 0x138], rcx
cmp r8, rax
jae 0x14016ec17
add rcx, rdx
mov rdx, r9
call fcn.140204a90
mov rcx, qword [rsp + 0x1d0]
mov rax, qword [rsp + 0x138]
add rax, qword [rsp + 0x1e0]
mov qword [rcx + 0x20], rax
add rsp, 0x1c8
ret
mov eax, dword [rdx + 0x28]
mov r9d, dword [rdx + 0x88]
mov r8d, dword [rdx + 0x78]
mov r10d, dword [rdx + 0xbc]
mov qword [rsp + 0x98], rax
mov eax, dword [rdx + 0x2c]
mov qword [rsp + 0xe8], rax
mov eax, dword [rdx + 0x30]
mov qword [rsp + 0xf0], rax
mov eax, dword [rdx + 0x34]
mov qword [rsp + 0x110], rax
mov eax, dword [rdx + 0x38]
mov qword [rsp + 0xf8], rax
mov eax, dword [rdx + 0x3c]
mov qword [rsp + 0x50], rax
mov eax, dword [rdx + 0x40]
mov qword [rsp + 0x100], rax
mov eax, dword [rdx + 0x44]
mov qword [rsp + 0x158], rax
mov eax, dword [rdx + 0x48]
mov qword [rsp + 0xe0], rax
mov eax, dword [rdx + 0x4c]
mov qword [rsp + 0x148], rax
mov eax, dword [rdx + 0x50]
mov qword [rsp + 0x140], rax
mov eax, dword [rdx + 0x54]
mov qword [rsp + 0xd8], rax
mov eax, dword [rdx + 0x58]
mov qword [rsp + 0x108], rax
mov eax, dword [rdx + 0x5c]
mov qword [rsp + 0xc0], r9
mov r9d, dword [rdx + 0x8c]
mov qword [rsp + 0x1c0], rbx
mov ebx, dword [rdx + 0xac]
mov qword [rsp + 0xc8], rax
mov eax, dword [rdx + 0x60]
mov qword [rsp + 0x78], r9
mov r9d, dword [rdx + 0x90]
mov qword [rsp + 0x1b8], rbp
mov ebp, dword [rdx + 0xa8]
mov qword [rsp + 0x128], rax
mov eax, dword [rdx + 0x64]
mov qword [rsp + 0x38], r9
mov r9d, dword [rdx + 0x94]
mov qword [rsp + 0x1b0], rsi
mov esi, dword [rdx + 0x80]
mov qword [rsp + 0x150], rax
mov eax, dword [rdx + 0x68]
mov qword [rsp + 0x160], r9
mov r9d, dword [rdx + 0x98]
mov qword [rsp + 0x1a8], rdi
mov edi, dword [rdx + 0x6c]
mov qword [rsp + 0x168], rax
mov eax, dword [rdx + 0x70]
mov qword [rsp + 0xd0], r9
mov r9d, dword [rdx + 0x9c]
mov qword [rsp + 0x1a0], r12
mov r12d, dword [rdx + 0xb0]
mov qword [rsp + 0x68], rax
mov eax, dword [rdx + 0x74]
mov qword [rsp + 0xb0], r9
mov r9d, dword [rdx + 0xa0]
mov qword [rsp + 0x198], r13
mov r13d, dword [rdx + 0xb4]
mov qword [rsp + 0x30], rax
mov eax, dword [rdx + 0x7c]
mov qword [rsp + 0xb8], r9
mov r9d, dword [rdx + 0xa4]
mov qword [rsp + 0x190], r14
mov r14d, dword [rdx + 0xb8]
mov qword [rsp + 0xa0], rax
mov eax, dword [rdx + 0x84]
mov qword [rsp + 0x60], r9
mov r9d, dword [rdx + 0xc0]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x188], r15
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x118], rsi
mov dword [rsp + 0x1e8], r10d
mov dword [rsp + 0x20], r9d
mov r15d, dword [rdx + 0xc4]
test r11, r11
je 0x14017021b
nop word [rax + rax]
mov rdi, r11
mov eax, 0x20
sub rax, rcx
cmp rax, r11
cmovbe rdi, rax
add rcx, rdx
mov rdx, qword [rsp + 0x1d8]
mov r8, rdi
call fcn.140204a90
mov rcx, qword [rsp + 0x138]
mov r11, qword [rsp + 0x1e0]
add rcx, rdi
add qword [rsp + 0x1d8], rdi
sub r11, rdi
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x1e0], r11
cmp rcx, 0x20
jne 0x1401701e8
mov rcx, qword [rsp + 0x1d0]
mov r11d, r15d
xor r11d, dword [rsp + 0x60]
mov r9d, r14d
xor r9d, dword [rsp + 0xd0]
xor r11d, dword [rsp + 0x70]
mov eax, dword [rcx]
xor r9d, dword [rsp + 0x120]
xor r11d, dword [rsp + 0x150]
xor r11d, dword [rsp + 0x158]
xor r9d, dword [rsp + 0x108]
mov r8d, r11d
xor r9d, dword [rsp + 0xf8]
xor r8d, r13d
xor r8d, dword [rsp + 0x160]
mov edx, r11d
mov edi, dword [rsp + 0x20]
xor edx, r12d
xor edx, dword [rsp + 0x38]
xor edx, dword [rsp + 0x68]
xor edx, dword [rsp + 0x140]
xor edx, dword [rsp + 0xf0]
mov r10d, dword [rsp + 0x1e8]
xor r10d, dword [rsp + 0xb0]
bswap eax
mov dword [rsp + 0x170], eax
mov eax, dword [rcx + 4]
bswap eax
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 8]
bswap eax
mov dword [rsp + 0x174], eax
mov eax, dword [rcx + 0xc]
bswap eax
mov dword [rsp + 0x178], eax
mov eax, dword [rcx + 0x10]
bswap eax
mov dword [rsp + 0x88], eax
mov eax, dword [rcx + 0x14]
bswap eax
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x18]
bswap eax
mov dword [rsp + 0xac], eax
mov eax, dword [rcx + 0x1c]
mov rcx, qword [rsp + 0xa0]
xor r10d, ecx
mov rcx, qword [rsp + 0x30]
xor r10d, dword [rsp + 0xc8]
xor r8d, ecx
xor r8d, dword [rsp + 0xd8]
mov ecx, ebx
xor ecx, dword [rsp + 0x78]
xor ecx, dword [rsp + 0x80]
xor r8d, dword [rsp + 0x110]
xor ecx, dword [rsp + 0x148]
xor ecx, dword [rsp + 0xe8]
xor r10d, dword [rsp + 0x50]
xor dword [rsp + 0xf0], ecx
xor dword [rsp + 0x110], edx
xor dword [rsp + 0xf8], r8d
xor dword [rsp + 0x50], r9d
bswap eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xb8]
xor edi, eax
xor edi, esi
mov esi, r11d
xor edi, dword [rsp + 0x128]
xor esi, ebp
mov rbp, qword [rsp + 0x168]
mov eax, esi
xor eax, dword [rsp + 0xc0]
xor edi, dword [rsp + 0x100]
xor eax, ebp
xor eax, dword [rsp + 0xe0]
xor eax, dword [rsp + 0x98]
xor dword [rsp + 0xe8], eax
xor dword [rsp + 0x98], r11d
xor dword [rsp + 0x100], r10d
mov dword [rsp + 0x58], esi
xor dword [rsp + 0x148], eax
xor ebp, r11d
xor dword [rsp + 0x80], eax
xor ebx, eax
xor dword [rsp + 0x78], eax
xor r12d, ecx
xor dword [rsp + 0x140], ecx
xor r15d, edi
xor dword [rsp + 0x150], edi
xor r14d, r8d
xor dword [rsp + 0x108], r8d
xor r13d, edx
xor dword [rsp + 0xc8], r9d
xor dword [rsp + 0x158], edi
xor dword [rsp + 0xe0], r11d
xor dword [rsp + 0x128], r10d
xor dword [rsp + 0x68], ecx
xor dword [rsp + 0x30], edx
xor dword [rsp + 0xd8], edx
xor dword [rsp + 0x120], r8d
xor dword [rsp + 0xa0], r9d
xor dword [rsp + 0xd0], r8d
xor dword [rsp + 0xb0], r9d
xor dword [rsp + 0x1e8], r9d
mov r8, qword [rsp + 0x148]
xor dword [rsp + 0x118], r10d
xor dword [rsp + 0x70], edi
xor dword [rsp + 0x38], ecx
mov rcx, qword [rsp + 0x158]
xor dword [rsp + 0xb8], r10d
xor dword [rsp + 0x60], edi
xor dword [rsp + 0x20], r10d
mov r9, qword [rsp + 0xd8]
xor dword [rsp + 0x160], edx
mov edi, r9d
mov rdx, qword [rsp + 0x150]
xor edi, ecx
xor dword [rsp + 0xc0], r11d
mov eax, dword [rsp + 0xe0]
xor edi, dword [rsp + 0xf0]
xor eax, ecx
mov qword [rsp + 0x168], rbp
mov ebp, r8d
xor r8d, dword [rsp + 0x68]
xor ebp, ecx
xor ebp, dword [rsp + 0x98]
mov dword [rsp + 0xa8], eax
mov rax, qword [rsp + 0x140]
mov r11d, eax
mov dword [rsp + 0x24], r12d
xor r11d, dword [rsp + 0xe8]
mov r12d, dword [rsp + 0x128]
xor r12d, dword [rsp + 0x50]
mov dword [rsp + 0x90], r13d
mov r13d, edx
xor r13d, dword [rsp + 0x100]
mov dword [rsp + 0x2c], r15d
mov r15d, dword [rsp + 0xc8]
xor r15d, dword [rsp + 0xf8]
mov dword [rsp + 0x8c], r14d
mov r14, qword [rsp + 0x108]
mov r10d, r14d
mov qword [rsp + 0x148], r8
mov r8, qword [rsp + 0x30]
xor r10d, ecx
xor r10d, dword [rsp + 0x110]
mov ecx, edx
xor ecx, r9d
mov dword [rsp + 0x17c], r11d
mov r9d, edx
mov dword [rsp + 0x140], edi
xor r9d, eax
mov dword [rsp + 0x138], r10d
mov eax, edx
xor edx, dword [rsp + 0x168]
xor eax, dword [rsp + 0xe0]
xor eax, dword [rsp + 0x80]
xor r9d, r8d
mov qword [rsp + 0x150], rdx
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x130], eax
mov rdx, qword [rsp + 0x120]
mov rax, qword [rsp + 0x118]
xor ecx, edx
xor dword [rsp + 0xc8], eax
xor edx, dword [rsp + 0xb0]
mov r9, qword [rsp + 0xc0]
mov dword [rsp + 0xd8], ecx
mov rcx, qword [rsp + 0xa0]
xor r14d, ecx
mov qword [rsp + 0x120], rdx
mov rcx, qword [rsp + 0x70]
xor dword [rsp + 0x128], ecx
mov esi, ecx
xor esi, dword [rsp + 0x168]
xor esi, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x60]
xor eax, edx
mov qword [rsp + 0x108], r14
mov qword [rsp + 0x118], rax
mov r14d, ecx
xor r14d, r8d
mov eax, edx
xor eax, dword [rsp + 0x160]
mov r8d, ecx
xor eax, dword [rsp + 0x8c]
xor ecx, r9d
xor edx, dword [rsp + 0x38]
xor r8d, dword [rsp + 0x68]
xor r14d, dword [rsp + 0xd0]
xor r8d, dword [rsp + 0x160]
xor edx, dword [rsp + 0x90]
mov dword [rsp + 0xe0], eax
mov rax, qword [rsp + 0xd0]
xor eax, dword [rsp + 0x1e8]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xb0]
xor eax, dword [rsp + 0x20]
mov qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x68], esi
mov esi, dword [rsp + 0x60]
xor esi, r9d
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x1e8]
mov r9, qword [rsp + 0x78]
xor r9d, dword [rsp + 0x24]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x38]
xor dword [rsp + 0x80], ecx
mov rcx, qword [rsp + 0xb8]
xor dword [rsp + 0xa0], ecx
xor ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x38], esi
mov esi, dword [rsp + 0x58]
xor dword [rsp + 0x60], esi
xor dword [rsp + 0x38], ebx
xor ebx, dword [rsp + 0xf0]
mov qword [rsp + 0xb8], rcx
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x20], eax
mov eax, ecx
xor eax, dword [rsp + 0x90]
mov dword [rsp + 0x1e8], eax
mov eax, ecx
xor eax, dword [rsp + 0x24]
xor eax, dword [rsp + 0x110]
mov dword [rsp + 0x24], ecx
xor dword [rsp + 0x24], esi
mov rsi, qword [rsp + 0xe8]
xor dword [rsp + 0x24], esi
mov esi, dword [rsp + 0x1e8]
xor esi, dword [rsp + 0xf8]
xor ecx, dword [rsp + 0x98]
mov dword [rsp + 0x1e8], esi
mov rsi, qword [rsp + 0x50]
xor dword [rsp + 0x20], esi
mov rsi, qword [rsp + 0x100]
xor dword [rsp + 0x2c], esi
mov qword [rsp + 0x78], r9
mov rsi, qword [rsp + 0x158]
xor dword [rsp + 0x40], esi
mov esi, r13d
mov r9d, dword [rsp + 0x38]
xor esi, ecx
mov dword [rsp + 0x58], esi
mov esi, r13d
xor esi, dword [rsp + 0xa8]
xor esi, dword [rsp + 0x24]
mov dword [rsp + 0x100], esi
mov esi, ebp
xor esi, ebx
mov dword [rsp + 0xf8], esi
mov esi, r13d
xor esi, r11d
mov r11d, r13d
xor esi, eax
xor r11d, edi
xor r11d, dword [rsp + 0x1e8]
mov edi, dword [rsp + 0x40]
mov dword [rsp + 0x110], esi
mov esi, dword [rsp + 0x20]
xor r10d, esi
xor esi, dword [rsp + 0xb0]
mov dword [rsp + 0xf0], r10d
mov r10d, r15d
mov dword [rsp + 0x50], r11d
mov r11d, dword [rsp + 0x2c]
xor r10d, r11d
mov dword [rsp + 0xe8], r10d
mov r10d, r12d
xor r10d, edi
mov dword [rsp + 0x20], esi
mov rsi, qword [rsp + 0xa0]
mov dword [rsp + 0x98], r10d
mov r10d, edi
xor r10d, eax
mov eax, edi
xor eax, ebx
mov ebx, edi
xor edi, dword [rsp + 0x60]
xor eax, edx
xor ebx, ecx
mov dword [rsp + 0x40], edi
mov rcx, qword [rsp + 0x78]
xor ebx, r9d
xor dword [rsp + 0x24], ecx
mov rcx, qword [rsp + 0xd0]
xor dword [rsp + 0x1e8], ecx
mov rcx, qword [rsp + 0xb8]
xor dword [rsp + 0xd0], esi
xor r11d, ecx
mov edi, ecx
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0xe0]
xor edi, edx
xor r10d, eax
mov dword [rsp + 0x2c], r11d
mov r11, qword [rsp + 0x70]
mov edx, ecx
xor edx, dword [rsp + 0x78]
xor edi, r14d
mov dword [rsp + 0x8c], r10d
xor edx, r8d
mov r10d, ecx
xor ecx, r11d
xor r10d, dword [rsp + 0x60]
xor r10d, dword [rsp + 0x68]
mov qword [rsp + 0xb8], rcx
mov dword [rsp + 0x60], edx
mov rdx, qword [rsp + 0x120]
xor eax, edx
mov dword [rsp + 0x78], r10d
mov r10, qword [rsp + 0x80]
xor r9d, r10d
mov dword [rsp + 0xe0], eax
mov rax, qword [rsp + 0x118]
xor dword [rsp + 0xb0], eax
mov ecx, eax
xor ecx, r8d
mov dword [rsp + 0x38], r9d
xor edx, dword [rsp + 0xc8]
mov r8d, eax
xor r12d, dword [rsp + 0x48]
xor r8d, r10d
mov r10, qword [rsp + 0x148]
mov r9d, eax
xor dword [rsp + 0x68], r10d
xor r9d, r11d
xor r9d, dword [rsp + 0x130]
xor r15d, dword [rsp + 0x88]
xor ecx, dword [rsp + 0xd8]
xor r14d, dword [rsp + 0x108]
xor dword [rsp + 0x108], r12d
xor dword [rsp + 0xd8], r15d
mov r15d, dword [rsp + 0xac]
xor r13d, r15d
xor dword [rsp + 0xc8], r13d
mov r12d, r15d
mov qword [rsp + 0x120], rdx
mov edx, dword [rsp + 0x174]
xor dword [rsp + 0xf8], edx
mov dword [rsp + 0x70], r8d
mov r8, qword [rsp + 0x150]
xor eax, r8d
mov dword [rsp + 0x80], r9d
mov r9d, dword [rsp + 0x30]
xor dword [rsp + 0x70], r9d
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x128]
xor dword [rsp + 0x118], r15d
xor esi, eax
mov r11d, eax
mov qword [rsp + 0xa0], rsi
mov esi, eax
xor r11d, r10d
mov r10d, eax
xor esi, r9d
mov eax, dword [rsp + 0x28]
xor r10d, ebp
xor dword [rsp + 0x100], eax
xor r10d, r8d
mov eax, dword [rsp + 0x178]
xor dword [rsp + 0x110], eax
mov r8d, dword [rsp + 0x88]
xor dword [rsp + 0x50], r8d
mov r8d, dword [rsp + 0x48]
xor dword [rsp + 0xf0], r8d
mov r8d, dword [rsp + 0xac]
xor dword [rsp + 0xe8], r8d
mov r8d, dword [rsp + 0x44]
xor dword [rsp + 0x98], r8d
mov ebp, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x44]
xor r9d, dword [rsp + 0x128]
xor ebp, dword [rsp + 0x170]
xor r9d, dword [rsp + 0xa8]
mov dword [rsp + 0x30], r8d
xor dword [rsp + 0x30], eax
mov eax, r8d
xor r8d, dword [rsp + 0x170]
xor eax, edx
mov edx, dword [rsp + 0x17c]
xor r12d, eax
xor edx, dword [rsp + 0x28]
xor r10d, r8d
xor dword [rsp + 0x130], edx
mov edx, dword [rsp + 0x140]
xor dword [rsp + 0x68], r8d
xor edx, eax
xor r11d, edx
mov dword [rsp + 0x58], r12d
mov edx, dword [rsp + 0x138]
mov eax, r15d
xor edx, dword [rsp + 0x30]
xor eax, dword [rsp + 0x28]
xor esi, edx
xor dword [rsp + 0x70], eax
mov edx, r15d
xor edx, dword [rsp + 0x44]
xor dword [rsp + 0x80], edx
xor r12d, ecx
mov ecx, dword [rsp + 0x30]
xor dword [rsp + 0x38], edx
xor ecx, r14d
mov r14d, dword [rsp + 0x48]
xor dword [rsp + 0xb8], r14d
mov dword [rsp + 0xac], ecx
mov ecx, dword [rsp + 0x88]
xor ecx, dword [rsp + 0x120]
ror dword [rsp + 0xac], 0x1e
mov dword [rsp + 0xa8], ecx
mov rcx, qword [rsp + 0xa0]
ror dword [rsp + 0xa8], 0x1e
mov dword [rsp + 0x44], r12d
mov r12d, r14d
ror dword [rsp + 0x44], 0x1e
xor r12d, ecx
mov ecx, r14d
mov dword [rsp + 0x48], r12d
mov r12d, dword [rsp + 0x58]
xor ecx, eax
ror dword [rsp + 0x48], 0x1e
mov eax, r14d
xor eax, r15d
mov dword [rsp + 0x28], ecx
xor dword [rsp + 0x78], eax
mov ecx, r14d
xor dword [rsp + 0x24], eax
xor ecx, r8d
mov r8d, dword [rsp + 0x88]
xor r14d, r8d
xor dword [rsp + 0x40], r8d
xor ebx, r14d
xor dword [rsp + 0x60], ecx
mov eax, r8d
mov r14d, dword [rsp + 0x8c]
xor eax, edx
xor dword [rsp + 0x90], eax
mov eax, r8d
xor r8d, dword [rsp + 0xb0]
xor eax, ecx
mov edx, dword [rsp + 0x30]
xor r14d, eax
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x1e8]
xor eax, r12d
xor ecx, dword [rsp + 0x28]
xor r12d, dword [rsp + 0xe0]
mov r15d, dword [rsp + 0x2c]
xor dword [rsp + 0x28], edi
xor r15d, edx
xor edx, dword [rsp + 0xd0]
ror dword [rsp + 0x28], 0x1d
ror r8d, 0x1d
ror eax, 0x1c
ror r14d, 0x1c
mov dword [rsp + 0x88], r8d
mov dword [rsp + 0x20], eax
mov eax, ebp
mov dword [rsp + 0x8c], r14d
mov r14d, dword [rsp + 0x130]
ror r12d, 0x1d
shl r14, 0x20
mov dword [rsp + 0x58], r12d
ror edx, 0x1d
ror ecx, 0x1c
ror r15d, 0x1c
mov r8d, r9d
shl r8, 0x20
or r8, rax
mov ebp, r10d
mov eax, dword [rsp + 0x100]
shl rbp, 0x20
or rbp, rax
mov r12d, r11d
mov eax, dword [rsp + 0xf8]
or r14, rax
mov dword [rsp + 0x138], ebx
shl r12, 0x20
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x1e8], ecx
mov dword [rsp + 0x2c], r15d
mov ecx, dword [rsp + 0xd8]
lea edx, [rsi + rsi]
mov r9, qword [rsp + 0x108]
mov eax, dword [rsp + 0x110]
or r12, rax
shl rdx, 0x1f
mov eax, esi
and rax, 0xffffffff80000000
mov qword [rsp + 0xc0], 0
or rdx, rax
lea edi, [r9 + r9]
mov eax, dword [rsp + 0x50]
add rdx, rdx
or rdx, rax
shl rdi, 0x1f
lea eax, [rcx + rcx]
shl rax, 0x1f
mov qword [rsp + 0x50], rax
mov eax, ecx
mov rcx, qword [rsp + 0x50]
and rax, 0xffffffff80000000
or rcx, rax
mov eax, dword [rsp + 0xf0]
add rcx, rcx
or rcx, rax
mov eax, r9d
mov r9, qword [rsp + 0xc8]
and rax, 0xffffffff80000000
or rdi, rax
mov eax, dword [rsp + 0xe8]
add rdi, rdi
or rdi, rax
mov eax, r9d
and rax, 0xffffffff80000000
lea esi, [r9 + r9]
shl rsi, 0x1f
or rsi, rax
mov eax, dword [rsp + 0x98]
add rsi, rsi
or rsi, rax
jmp 0x14016f915
mov rcx, qword [rsp + 0x50]
xor rsi, rdx
xor r14, r12
mov rax, r8
or rax, rbp
not rbp
xor rax, r12
and r12, r8
xor rbp, r12
xor r12, r14
and r14, rax
not rax
xor r14, rbp
or rbp, r12
xor r8, rbp
xor r12, r14
and r14, rbp
mov r10d, r8d
xor rbp, rax
ror r10d, 0x1e
mov rax, rdi
not rdi
or rax, rcx
xor rax, rdx
and rdx, rcx
xor rdi, rdx
xor rdx, rsi
and rsi, rax
not rax
xor rsi, rdi
or rdi, rdx
xor rdx, rsi
xor rcx, rdi
xor rdx, r8
xor rcx, rbp
xor r10d, edx
shr r8, 0x20
ror r8d, 0x1e
and rsi, rdi
xor rdi, rax
mov rax, rdx
shr rax, 0x20
xor r8d, eax
ror edx, 0x12
ror eax, 0x12
xor edx, r10d
xor eax, r8d
mov r11d, edx
mov r9d, eax
mov edx, ebp
ror edx, 0x1e
mov rax, rcx
xor edx, ecx
shr rax, 0x20
shr rbp, 0x20
ror ebp, 0x1e
xor ebp, eax
ror ecx, 0x12
xor ecx, edx
ror eax, 0x12
xor eax, ebp
ror edx, 0x16
ror ebp, 0x16
mov qword [rsp + 0x98], r8
mov r8d, ecx
mov ecx, eax
mov eax, edx
xor rbp, rcx
xor rax, r8
shl rbp, 0x20
or rbp, rax
mov eax, ecx
and rax, 0xffffffff80000000
lea edx, [rcx + rcx]
shl rdx, 0x1f
lea ecx, [r8 + r8]
or rdx, rax
mov eax, r8d
shr rax, 0x1f
add rdx, rdx
or rdx, rax
or rdx, rcx
xor rdi, r14
mov qword [rsp + 0x50], rdx
xor rsi, r12
ror r10d, 0x16
mov edx, r14d
mov rax, rdi
shr rax, 0x20
ror edx, 0x1e
xor edx, edi
shr r14, 0x20
ror edi, 0x12
xor edi, edx
ror r14d, 0x1e
xor r14d, eax
mov r8d, edi
ror eax, 0x12
xor eax, r14d
ror edx, 0x16
mov ecx, eax
mov eax, edx
mov edx, r12d
xor rax, r8
shr r12, 0x20
ror r12d, 0x1e
ror r14d, 0x16
lea edi, [rcx + rcx]
xor r14, rcx
shl rdi, 0x1f
ror edx, 0x1e
xor edx, esi
shl r14, 0x20
or r14, rax
mov eax, ecx
and rax, 0xffffffff80000000
lea ecx, [r8 + r8]
or rdi, rax
mov eax, r8d
shr rax, 0x1f
add rdi, rdi
or rdi, rax
mov rax, rsi
shr rax, 0x20
or rdi, rcx
xor r12d, eax
ror esi, 0x12
ror eax, 0x12
xor esi, edx
xor eax, r12d
mov r8d, esi
mov ecx, eax
ror r12d, 0x16
xor r12, rcx
ror edx, 0x16
mov eax, edx
lea edx, [r9 + r9]
xor rax, r8
shl r12, 0x20
or r12, rax
lea esi, [rcx + rcx]
shl rsi, 0x1f
mov eax, ecx
and rax, 0xffffffff80000000
lea ecx, [r8 + r8]
or rsi, rax
mov eax, r8d
mov r8, qword [rsp + 0x98]
add rsi, rsi
shr rax, 0x1f
ror r8d, 0x16
or rsi, rax
xor r8, r9
mov eax, r10d
mov r10, qword [rsp + 0xc0]
xor rax, r11
shl r8, 0x20
or rsi, rcx
or r8, rax
lea rax, [0x140000000]
xor r8, qword [r10 + rax + 0x231450]
mov qword [rsp + 0x98], r8
shl rdx, 0x1f
mov eax, r9d
lea ecx, [r11 + r11]
and rax, 0xffffffff80000000
or rdx, rax
mov eax, r11d
add rdx, rdx
shr rax, 0x1f
or rdx, rax
lea rax, [0x140000000]
or rdx, rcx
xor rdx, qword [r10 + rax + 0x231570]
add r10, 8
mov qword [rsp + 0xc0], r10
cmp r10, 0x40
jl 0x14016f910
mov r15, qword [rsp + 0xb8]
mov rax, r8
mov ebx, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
mov qword [rsp + 0xe0], rax
mov rax, rbp
shr rax, 0x20
mov qword [rsp + 0x148], rax
mov rax, r14
shr rax, 0x20
mov qword [rsp + 0x140], rax
mov rax, r12
shr rax, 0x20
mov qword [rsp + 0xd8], rax
mov rax, rdx
shr rax, 0x20
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x50]
shr rax, 0x20
mov qword [rsp + 0xc8], rax
mov rax, rdi
shr rax, 0x20
mov qword [rsp + 0x128], rax
mov rax, rsi
shr rax, 0x20
mov qword [rsp + 0x150], rax
mov eax, dword [rsp + 0x118]
mov qword [rsp + 0x100], rdi
mov edi, dword [rsp + 0x78]
mov qword [rsp + 0x158], rsi
mov esi, dword [rsp + 0x30]
mov qword [rsp + 0xe8], rbp
mov ebp, dword [rsp + 0x88]
mov r15d, r15d
shl r15, 0x20
or r15, rax
shl rdi, 0x20
mov eax, dword [rsp + 0x80]
or rdi, rax
shl rbx, 0x20
mov eax, dword [rsp + 0x68]
or rbx, rax
shl r13, 0x20
mov eax, dword [rsp + 0x70]
or r13, rax
shl r8, 0x20
mov eax, dword [rsp + 0x44]
or r8, rax
shl rcx, 0x20
mov eax, dword [rsp + 0xac]
or rcx, rax
shl rsi, 0x20
mov eax, dword [rsp + 0xa8]
or rsi, rax
shl rbp, 0x20
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0xf0], r14
or rbp, rax
mov r14d, dword [rsp + 0x8c]
mov qword [rsp + 0x110], r12
mov r12d, dword [rsp + 0x24]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xc0], 0
jmp 0x14016fcd8
mov rcx, qword [rsp + 0xa0]
mov rax, rdi
xor rbp, r8
or rax, r15
not rdi
xor rax, r13
xor rbx, r13
and r13, r15
xor rdi, r13
xor r13, rbx
and rbx, rax
not rax
xor rbx, rdi
or rdi, r13
xor r15, rdi
xor r13, rbx
and rbx, rdi
mov r10d, r15d
xor rdi, rax
ror r10d, 0x1e
mov edx, edi
mov rax, rsi
or rax, rcx
ror edx, 0x1e
xor rax, r8
not rsi
and r8, rcx
xor rsi, r8
xor r8, rbp
and rbp, rax
not rax
xor rbp, rsi
or rsi, r8
xor rcx, rsi
xor r8, rbp
xor rcx, rdi
xor r8, r15
xor edx, ecx
shr rdi, 0x20
ror edi, 0x1e
xor r10d, r8d
shr r15, 0x20
and rbp, rsi
xor rsi, rax
ror r15d, 0x1e
mov rax, r8
ror r8d, 0x12
shr rax, 0x20
xor r8d, r10d
xor r15d, eax
mov r11d, r8d
ror eax, 0x12
xor eax, r15d
mov r9d, eax
mov rax, rcx
shr rax, 0x20
xor edi, eax
ror ecx, 0x12
xor ecx, edx
ror eax, 0x12
xor eax, edi
ror edx, 0x16
mov r8d, ecx
mov ecx, eax
mov eax, edx
xor rax, r8
ror edi, 0x16
xor rdi, rcx
shl rdi, 0x20
lea edx, [rcx + rcx]
or rdi, rax
shl rdx, 0x1f
mov eax, ecx
lea ecx, [r8 + r8]
and rax, 0xffffffff80000000
or rdx, rax
mov eax, r8d
shr rax, 0x1f
add rdx, rdx
or rdx, rax
or rdx, rcx
mov qword [rsp + 0xa0], rdx
xor rsi, rbx
ror r15d, 0x16
xor rbp, r13
ror r10d, 0x16
mov edx, ebx
mov rax, rsi
shr rax, 0x20
xor r15, r9
ror edx, 0x1e
xor edx, esi
shr rbx, 0x20
ror esi, 0x12
xor esi, edx
ror ebx, 0x1e
xor ebx, eax
mov r8d, esi
ror eax, 0x12
xor eax, ebx
ror edx, 0x16
mov ecx, eax
mov eax, edx
mov edx, r13d
xor rax, r8
shr r13, 0x20
ror r13d, 0x1e
ror ebx, 0x16
lea esi, [rcx + rcx]
xor rbx, rcx
shl rsi, 0x1f
ror edx, 0x1e
xor edx, ebp
shl rbx, 0x20
or rbx, rax
shl r15, 0x20
mov eax, ecx
lea ecx, [r8 + r8]
and rax, 0xffffffff80000000
or rsi, rax
mov eax, r8d
shr rax, 0x1f
add rsi, rsi
or rsi, rax
mov rax, rbp
shr rax, 0x20
or rsi, rcx
xor r13d, eax
ror ebp, 0x12
ror eax, 0x12
xor ebp, edx
xor eax, r13d
mov r8d, ebp
mov ecx, eax
ror r13d, 0x16
xor r13, rcx
ror edx, 0x16
mov eax, edx
mov rdx, qword [rsp + 0xc0]
lea ebp, [rcx + rcx]
xor rax, r8
shl rbp, 0x1f
shl r13, 0x20
or r13, rax
mov eax, ecx
and rax, 0xffffffff80000000
lea ecx, [r8 + r8]
or rbp, rax
mov eax, r8d
shr rax, 0x1f
lea r8d, [r9 + r9]
add rbp, rbp
shl r8, 0x1f
or rbp, rax
mov eax, r10d
xor rax, r11
lea r10, [0x140000000]
or r15, rax
or rbp, rcx
xor r15, qword [rdx + r10 + 0x2315d0]
mov eax, r9d
and rax, 0xffffffff80000000
or r8, rax
add r8, r8
lea ecx, [r11 + r11]
mov eax, r11d
shr rax, 0x1f
or r8, rax
or r8, rcx
xor r8, qword [rdx + r10 + 0x231610]
add rdx, 8
mov qword [rsp + 0xc0], rdx
cmp rdx, 0x40
jl 0x14016fcd0
mov r9d, dword [rsp + 0x20]
mov rax, r15
mov r10d, dword [rsp + 0x1e8]
shr rax, 0x20
mov qword [rsp + 0xc0], rax
mov rax, rdi
shr rax, 0x20
mov qword [rsp + 0x78], rax
mov rax, rbx
shr rax, 0x20
mov qword [rsp + 0x38], rax
mov rax, r13
shr rax, 0x20
mov qword [rsp + 0x160], rax
mov rax, r8
shr rax, 0x20
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xa0]
shr rax, 0x20
mov qword [rsp + 0xb0], rax
mov rax, rsi
shr rax, 0x20
mov qword [rsp + 0xb8], rax
mov rax, rbp
shr rax, 0x20
mov qword [rsp + 0x168], r15
xor r11d, r11d
mov r15d, dword [rsp + 0x2c]
mov qword [rsp + 0x68], rbx
mov ebx, dword [rsp + 0x138]
mov qword [rsp + 0x30], r13
mov r13d, dword [rsp + 0x90]
mov qword [rsp + 0x70], rbp
mov ebp, dword [rsp + 0x40]
mov qword [rsp + 0x80], rdi
lea rdi, [0x140000000]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x118], rsi
nop word [rax + rax]
xor r12d, r13d
xor r15d, r14d
mov eax, ebx
not ebx
or eax, ebp
xor eax, r13d
and r13d, ebp
xor ebx, r13d
xor r13d, r12d
and r12d, eax
not eax
xor r12d, ebx
or ebx, r13d
xor r13d, r12d
xor ebp, ebx
and r12d, ebx
xor ebx, eax
mov eax, r9d
not r9d
or eax, r10d
xor eax, r14d
and r14d, r10d
xor r9d, r14d
xor r14d, r15d
and r15d, eax
not eax
xor r15d, r9d
or r9d, r14d
xor r14d, r15d
xor r10d, r9d
xor r14d, ebp
xor r10d, ebx
and r15d, r9d
ror ebx, 0x1e
xor r9d, eax
ror ebp, 0x1e
xor r9d, r12d
xor r15d, r13d
xor ebp, r14d
ror r12d, 0x1e
xor ebx, r10d
ror r13d, 0x1e
xor r12d, r9d
ror r14d, 0x12
xor r13d, r15d
ror r10d, 0x12
xor r10d, ebx
ror r9d, 0x12
xor r9d, r12d
ror ebx, 0x16
xor r14d, ebp
ror r12d, 0x16
xor ebx, r10d
ror ebp, 0x16
xor ebp, dword [r11 + rdi + 0x2314b0]
lea eax, [r10 + r10]
xor ebp, r14d
ror r15d, 0x12
xor r15d, r13d
ror r14d, 0x1f
xor r14d, dword [r11 + rdi + 0x231490]
xor r12d, r9d
ror r13d, 0x16
mov ecx, r10d
xor r13d, r15d
shr ecx, 0x1f
or ecx, eax
xor r12d, r13d
lea eax, [r9 + r9]
mov edx, r9d
shr edx, 0x1f
or edx, eax
mov eax, ebx
or eax, ebp
not ebx
xor eax, r13d
and r13d, ebp
xor ebx, r13d
xor r13d, r12d
and r12d, eax
xor r12d, ebx
or ebx, r13d
ror r15d, 0x1f
xor r15d, r14d
xor ebp, ebx
xor r13d, r12d
not eax
and r12d, ebx
xor ebx, eax
mov eax, edx
not edx
or eax, ecx
xor eax, r14d
and r14d, ecx
xor edx, r14d
xor r14d, r15d
and r15d, eax
not eax
xor r15d, edx
or edx, r14d
xor r14d, r15d
xor ecx, edx
and r15d, edx
xor r14d, ebp
xor r15d, r13d
ror ebp, 0x1e
xor edx, eax
ror r13d, 0x1e
xor ebp, r14d
xor ecx, ebx
xor edx, r12d
ror ebx, 0x1e
xor r13d, r15d
ror r12d, 0x1e
xor ebx, ecx
ror r14d, 0x12
xor r14d, ebp
ror r15d, 0x12
xor r15d, r13d
ror ebp, 0x16
xor ebp, dword [r11 + rdi + 0x2314b4]
xor r12d, edx
xor ebp, r14d
ror ecx, 0x12
xor ecx, ebx
ror edx, 0x12
xor edx, r12d
ror r13d, 0x16
xor r13d, r15d
ror r14d, 0x1f
xor r14d, dword [r11 + rdi + 0x231494]
mov r10d, ecx
lea eax, [rcx + rcx]
shr r10d, 0x1f
or r10d, eax
ror ebx, 0x16
lea eax, [rdx + rdx]
ror r12d, 0x16
mov r9d, edx
xor ebx, ecx
shr r9d, 0x1f
xor r12d, edx
or r9d, eax
add r11, 8
mov eax, r15d
shr r15d, 0x1f
add eax, eax
or r15d, eax
cmp r11, 0x20
jl 0x14016fff0
mov r11, qword [rsp + 0x1e0]
xor ecx, ecx
mov qword [rsp + 0x138], rcx
mov dword [rsp + 0x1e8], r10d
mov dword [rsp + 0x20], r9d
jmp 0x1401701fd
mov r8, qword [rsp + 0x120]
mov r9d, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x1e8]
mov rdi, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x1d0]
test r11, r11
jne 0x14016ee20
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x98]
mov dword [rdx + 0x28], ecx
mov rcx, qword [rsp + 0xe8]
mov dword [rdx + 0x2c], ecx
mov rcx, qword [rsp + 0xf0]
mov dword [rdx + 0x30], ecx
mov rcx, qword [rsp + 0x110]
mov dword [rdx + 0x34], ecx
mov rcx, qword [rsp + 0xf8]
mov dword [rdx + 0x38], ecx
mov rcx, qword [rsp + 0x50]
mov dword [rdx + 0x3c], ecx
mov rcx, qword [rsp + 0x100]
mov dword [rdx + 0x40], ecx
mov rcx, qword [rsp + 0x158]
mov dword [rdx + 0x44], ecx
mov rcx, qword [rsp + 0xe0]
mov dword [rdx + 0x48], ecx
mov rcx, qword [rsp + 0x148]
mov dword [rdx + 0x4c], ecx
mov rcx, qword [rsp + 0x140]
mov dword [rdx + 0x50], ecx
mov rcx, qword [rsp + 0xd8]
mov dword [rdx + 0x54], ecx
mov rcx, qword [rsp + 0x108]
mov dword [rdx + 0x84], eax
mov rax, qword [rsp + 0xc0]
mov dword [rdx + 0x58], ecx
mov rcx, qword [rsp + 0xc8]
mov dword [rdx + 0x88], eax
mov rax, qword [rsp + 0x78]
mov dword [rdx + 0x5c], ecx
mov rcx, qword [rsp + 0x128]
mov dword [rdx + 0x8c], eax
mov rax, qword [rsp + 0x38]
mov dword [rdx + 0x60], ecx
mov rcx, qword [rsp + 0x150]
mov dword [rdx + 0x90], eax
mov rax, qword [rsp + 0x160]
mov dword [rdx + 0x64], ecx
mov rcx, qword [rsp + 0x168]
mov dword [rdx + 0x94], eax
mov rax, qword [rsp + 0xd0]
mov dword [rdx + 0x68], ecx
mov rcx, qword [rsp + 0x68]
mov dword [rdx + 0x98], eax
mov rax, qword [rsp + 0xb0]
mov dword [rdx + 0x70], ecx
mov rcx, qword [rsp + 0x30]
mov dword [rdx + 0x9c], eax
mov rax, qword [rsp + 0xb8]
mov dword [rdx + 0x74], ecx
mov rcx, qword [rsp + 0xa0]
mov dword [rdx + 0xa0], eax
mov rax, qword [rsp + 0x60]
mov dword [rdx + 0x7c], ecx
mov rcx, qword [rsp + 0x138]
mov dword [rdx + 0x6c], edi
mov dword [rdx + 0x80], esi
mov dword [rdx + 0xa8], ebp
mov dword [rdx + 0xac], ebx
mov dword [rdx + 0xb0], r12d
mov dword [rdx + 0xb4], r13d
mov dword [rdx + 0xb8], r14d
mov dword [rdx + 0xc4], r15d
mov dword [rdx + 0x78], r8d
mov dword [rdx + 0xa4], eax
mov dword [rdx + 0xbc], r10d
mov dword [rdx + 0xc0], r9d
mov qword [rdx + 0x20], rcx
mov r15, qword [rsp + 0x188]
mov r14, qword [rsp + 0x190]
mov r13, qword [rsp + 0x198]
mov r12, qword [rsp + 0x1a0]
mov rdi, qword [rsp + 0x1a8]
mov rsi, qword [rsp + 0x1b0]
mov rbp, qword [rsp + 0x1b8]
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret