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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
mov qword [rsp + 0x180], rcx
mov r10d, edx
mov edx, pe_nt_image_headers64
mov rsi, qword [rsp + 0x180]
mov qword [rsp + 0x198], r9
mov r9, qword [rcx + 0x20]
mov ecx, r8d
mov r8d, 0x20
sar edx, cl
mov eax, edx
lea rcx, [r9 + 1]
neg eax
sub r8, rcx
and eax, r10d
or eax, edx
xor edx, edx
mov byte [rsi + r9], al
mov rax, rcx
add rax, rsi
mov rcx, rax
call fcn.140197fc0
mov rax, qword [rsp + 0x180]
pxor xmm0, xmm0
mov eax, dword [rax + 0x28]
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x30]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x34]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x38]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x3c]
mov dword [rsp + 0xec], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x54], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0xf0], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x74], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0xf4], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x58]
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x5c]
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x60]
mov dword [rsp + 0x84], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x64]
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x68]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x6c]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x70]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x74]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x78]
mov dword [rsp + 0xa8], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x7c]
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0x180]
mov dword [rsp + 0x120], 0
mov r15, qword [rsp + 0x180]
mov eax, dword [rax + 0x80]
mov dword [rsp + 0xbc], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x84]
mov dword [rsp + 0xc8], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x88]
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x8c]
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x90]
mov dword [rsp + 0x98], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x94]
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x98]
mov dword [rsp + 0xac], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x9c]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0xa0]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0xa4]
mov dword [rsp + 0xcc], eax
mov r13d, dword [r15]
bswap r13d
mov dword [rsp + 0xd0], r13d
mov esi, dword [r15 + 4]
bswap esi
mov dword [rsp + 0xd8], esi
mov eax, dword [r15 + 8]
bswap eax
mov r10d, dword [r15 + 0xc]
bswap r10d
mov dword [rsp + 0xe0], r10d
mov esi, dword [r15 + 0x10]
bswap esi
mov dword [rsp + 0x20], esi
mov esi, dword [r15 + 0x14]
bswap esi
mov dword [rsp + 0x40], esi
mov esi, dword [r15 + 0x18]
bswap esi
mov dword [rsp + 0x48], esi
mov r8d, dword [r15 + 0x1c]
bswap r8d
mov edi, dword [rsp + 0x74]
mov ebp, dword [rsp + 0x34]
mov dword [rsp + 0x28], r8d
mov r14d, dword [rsp + 0x60]
mov r10d, dword [rsp + 0x7c]
xor ebp, edi
mov edi, dword [rsp + 0x50]
mov edx, dword [rsp + 0x90]
mov r11d, dword [rsp + 0xa8]
xor ebp, r14d
mov r14d, dword [rsp + 0xec]
xor edi, r10d
xor ebp, edx
mov edx, dword [rsp + 0xac]
mov r10d, dword [rsp + 0xb8]
xor edi, r11d
mov r11d, dword [rsp + 0x80]
mov ebx, r14d
mov r12d, dword [rsp + 0x88]
xor edi, edx
mov edx, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xc8]
xor ebx, r11d
mov r11d, dword [rsp + 0xc0]
mov r13d, dword [rsp + 0xcc]
mov esi, ebx
mov ebx, dword [rsp + 0x84]
xor esi, edx
mov edx, dword [rsp + 0x54]
xor esi, r10d
mov r10d, dword [rsp + 0xbc]
xor edx, ebx
mov ebx, dword [rsp + 0xf0]
xor edx, r10d
mov r10d, dword [rsp + 0x38]
mov ecx, ebx
xor edx, r11d
mov r11d, dword [rsp + 0x3c]
xor ecx, r12d
mov r12d, dword [rsp + 0xe8]
mov r8d, ecx
mov ecx, dword [rsp + 0xf4]
xor r8d, r9d
xor r11d, ecx
xor r8d, r13d
mov r13d, dword [rsp + 0xa0]
mov r9d, r11d
mov r11d, dword [rsp + 0x68]
xor r9d, r11d
mov r11d, dword [rsp + 0x78]
xor r9d, r13d
mov r13d, dword [rsp + 0x98]
xor r10d, r11d
mov r11d, dword [rsp + 0x64]
xor r9d, r8d
xor r10d, r11d
mov r11d, r12d
xor r12d, r8d
xor r10d, r13d
mov r13d, dword [rsp + 0x70]
xor r10d, r8d
xor r11d, r13d
mov r13d, dword [rsp + 0x58]
xor r11d, r13d
mov r13d, dword [rsp + 0x8c]
mov dword [rsp + 0xe8], r12d
mov r12d, dword [rsp + 0x34]
xor r11d, r13d
xor r11d, r8d
xor r12d, r11d
mov dword [rsp + 0xec], r12d
mov r12d, dword [rsp + 0x38]
xor r12d, ebp
mov dword [rsp + 0xf0], r12d
mov r12d, dword [rsp + 0x3c]
xor r12d, r10d
mov dword [rsp + 0xf4], r12d
mov r12d, dword [rsp + 0x50]
xor r12d, r9d
xor r14d, edi
xor ebx, edx
xor ecx, r10d
mov dword [rsp + 0x34], r12d
mov r12d, dword [rsp + 0x54]
mov dword [rsp + 0x50], ebx
mov ebx, dword [rsp + 0x74]
mov dword [rsp + 0x74], ecx
mov ecx, dword [rsp + 0x7c]
xor r12d, esi
xor ebx, r11d
mov dword [rsp + 0x3c], r12d
mov r12d, dword [rsp + 0x78]
xor ecx, r9d
mov dword [rsp + 0x54], ebx
mov ebx, dword [rsp + 0x80]
mov dword [rsp + 0x78], ecx
mov ecx, dword [rsp + 0x60]
xor r12d, ebp
xor ebx, edi
mov dword [rsp + 0x38], r14d
mov r14d, dword [rsp + 0x70]
xor ecx, r11d
mov dword [rsp + 0x7c], ebx
mov ebx, dword [rsp + 0x84]
mov dword [rsp + 0x100], ecx
mov ecx, dword [rsp + 0x64]
xor r14d, r8d
xor ebx, esi
mov dword [rsp + 0x70], r12d
mov r12d, dword [rsp + 0x58]
xor ecx, ebp
mov dword [rsp + 0xf8], ebx
mov ebx, dword [rsp + 0x88]
mov dword [rsp + 0x58], ecx
mov ecx, dword [rsp + 0x68]
xor r12d, r8d
mov r13d, dword [rsp + 0xa8]
xor ebx, edx
xor ecx, r10d
xor r13d, r9d
mov dword [rsp + 0x60], ecx
mov ecx, dword [rsp + 0xb0]
mov dword [rsp + 0x64], r13d
mov r13d, dword [rsp + 0x8c]
xor ecx, edi
xor r13d, r8d
mov r8d, dword [rsp + 0x90]
mov dword [rsp + 0x68], ecx
mov ecx, dword [rsp + 0xbc]
mov dword [rsp + 0x80], r13d
xor r8d, r11d
mov r11d, dword [rsp + 0x98]
xor ecx, esi
mov dword [rsp + 0x90], r8d
xor r11d, ebp
mov dword [rsp + 0x88], ecx
mov ebp, dword [rsp + 0xa0]
mov dword [rsp + 0x84], r11d
mov r11d, dword [rsp + 0xac]
mov ecx, dword [rsp + 0xc8]
xor ebp, r10d
mov r10d, dword [rsp + 0x88]
xor r11d, r9d
mov r9d, dword [rsp + 0xb8]
mov dword [rsp + 0x98], ebp
xor ecx, edx
mov ebp, dword [rsp + 0xc0]
mov dword [rsp + 0xa0], r11d
mov r11d, r14d
xor r9d, edi
mov edi, dword [rsp + 0xcc]
xor r11d, ecx
xor ebp, esi
mov dword [rsp + 0xa8], r9d
xor edx, edi
mov edi, r12d
mov dword [rsp + 0xac], ebp
xor edi, edx
mov dword [rsp + 0xb0], edi
mov edi, r10d
xor edi, r9d
mov r9d, dword [rsp + 0xf8]
mov dword [rsp + 0xb8], edi
mov edi, ebp
mov ebp, dword [rsp + 0x68]
xor edi, ecx
mov dword [rsp + 0xbc], edi
mov edi, r9d
xor edi, ebp
mov ebp, dword [rsp + 0xe8]
xor r10d, ebx
xor r14d, ebx
mov dword [rsp + 0xc0], r10d
xor r12d, ecx
xor ebp, ebx
mov dword [rsp + 0xc8], ebp
mov ebp, dword [rsp + 0x7c]
mov r10d, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x28]
mov dword [rsp + 0x12c], eax
mov r13d, dword [rsp + 0xd0]
xor r10d, ebp
mov esi, r10d
mov r10d, dword [rsp + 0x50]
xor r9d, r10d
mov r10d, dword [rsp + 0xe0]
mov ebp, r9d
mov r9d, eax
mov eax, r8d
xor r13d, eax
xor r10d, r8d
xor r9d, r8d
mov r8d, dword [rsp + 0x70]
xor r14d, r13d
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x88], r14d
mov r14d, dword [rsp + 0x34]
xor r8d, ebx
xor ebx, r10d
xor r8d, r9d
xor ebx, r14d
mov r14d, dword [rsp + 0x74]
mov dword [rsp + 0x8c], r8d
mov r8d, r13d
mov r13d, dword [rsp + 0x48]
xor r14d, ebx
mov ebx, dword [rsp + 0x38]
mov dword [rsp + 0xcc], r14d
mov r14d, dword [rsp + 0x78]
xor r9d, r13d
xor ebx, eax
mov eax, dword [rsp + 0x40]
xor r14d, ebx
mov ebx, esi
mov esi, dword [rsp + 0xd8]
mov dword [rsp + 0xf8], r14d
mov r14d, dword [rsp + 0x28]
xor ebx, eax
mov dword [rsp + 0x108], ebx
mov ebx, r13d
xor esi, r13d
xor r14d, r13d
xor ebx, ebp
xor r12d, r14d
mov ebp, r14d
mov r14d, r13d
mov dword [rsp + 0x110], ebx
xor r14d, r11d
mov r11d, dword [rsp + 0x54]
mov ebx, esi
mov esi, dword [rsp + 0x58]
mov dword [rsp + 0x118], r14d
mov r14d, dword [rsp + 0x100]
xor r11d, r12d
xor esi, ecx
xor ecx, r9d
mov dword [rsp + 0x124], r11d
mov r11d, dword [rsp + 0x70]
mov r12d, r14d
xor esi, ebx
xor r11d, r8d
xor r12d, r11d
mov dword [rsp + 0x100], r12d
mov r12d, dword [rsp + 0x74]
xor r12d, esi
mov dword [rsp + 0x128], r12d
mov r12d, dword [rsp + 0x78]
mov esi, dword [rsp + 0x60]
xor ecx, r12d
mov r12d, dword [rsp + 0x7c]
xor ecx, esi
mov esi, dword [rsp + 0x20]
xor r8d, eax
xor ebx, eax
xor r12d, r10d
xor ebx, edx
rol ecx, 2
xor edi, esi
mov esi, dword [rsp + 0xb0]
mov r11d, r12d
mov r12d, dword [rsp + 0x64]
rol edi, 2
xor esi, eax
xor r11d, r12d
mov r12d, dword [rsp + 0xc0]
mov dword [rsp + 0xb0], esi
mov esi, r13d
mov r13d, dword [rsp + 0x80]
xor esi, eax
xor r12d, eax
mov eax, dword [rsp + 0x98]
xor esi, r13d
mov r13d, dword [rsp + 0x84]
rol r12d, 2
xor esi, edx
xor r14d, esi
xor r8d, r13d
mov r13d, dword [rsp + 0x64]
mov dword [rsp + 0xc0], r14d
mov r14d, dword [rsp + 0x58]
xor r8d, edx
xor ebx, r13d
mov r13d, dword [rsp + 0x20]
xor r14d, ebp
xor ebx, eax
mov esi, r14d
mov r14d, dword [rsp + 0x90]
mov ebp, r14d
xor ebp, esi
mov esi, dword [rsp + 0x60]
mov dword [rsp + 0x60], ecx
mov ecx, r11d
rol ecx, 2
mov r11d, dword [rsp + 0x50]
xor esi, r8d
mov r8d, dword [rsp + 0x68]
mov dword [rsp + 0x64], ecx
mov ecx, ebx
mov dword [rsp + 0x58], esi
mov esi, dword [rsp + 0xa0]
rol ecx, 3
xor r8d, r9d
mov r9d, dword [rsp + 0xb8]
mov dword [rsp + 0x68], ecx
xor r8d, esi
mov ecx, r8d
xor r10d, r9d
mov r9d, dword [rsp + 0xbc]
mov r8d, dword [rsp + 0xc8]
rol ecx, 3
mov dword [rsp + 0x90], ecx
mov ecx, r10d
xor r9d, r13d
mov r13d, dword [rsp + 0xd0]
rol ecx, 3
mov dword [rsp + 0x98], ecx
mov ecx, r9d
rol ecx, 3
mov dword [rsp + 0xa0], ecx
mov ecx, dword [rsp + 0x80]
mov r10d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0xd8]
xor ecx, r11d
mov ebx, dword [rsp + 0xf0]
xor r8d, r10d
xor ecx, r13d
mov r10d, dword [rsp + 0xec]
mov r13d, dword [rsp + 0x84]
shl r8, 0x20
or rcx, r8
mov r8d, dword [rsp + 0xe8]
xor r8d, r11d
xor r8d, r9d
xor r9d, ebx
xor r8d, r14d
mov r14d, dword [rsp + 0x88]
xor r14d, r10d
shl r14, 0x20
or r14, r8
mov r8d, r9d
mov r9d, dword [rsp + 0x54]
xor r8d, r9d
mov r9d, dword [rsp + 0x12c]
shl r8, 0x20
xor r9d, r13d
mov r13d, dword [rsp + 0x28]
mov dword [rsp + 0x28], edi
xor r9d, r10d
or r9, r8
mov r8d, ebx
mov ebx, dword [rsp + 0xf4]
xor r8d, r11d
mov r10d, r8d
mov r8d, dword [rsp + 0xe0]
xor r10d, r8d
mov r8d, dword [rsp + 0x8c]
xor r10d, eax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x20], ebp
xor r8d, ebx
shl r8, 0x20
xor eax, r11d
mov r11d, dword [rsp + 0x34]
or r8, r10
mov r10d, dword [rsp + 0xcc]
xor eax, ebx
mov ebx, dword [rsp + 0xac]
xor eax, esi
mov esi, dword [rsp + 0x40]
rol r10d, 1
shl r10, 0x20
or rax, r10
mov r10d, dword [rsp + 0xa8]
xor r10d, esi
mov esi, dword [rsp + 0x48]
xor r10d, r11d
mov r11d, dword [rsp + 0xf8]
rol r11d, 1
shl r11, 0x20
or r10, r11
mov r11d, dword [rsp + 0x38]
xor r11d, ebx
mov ebx, dword [rsp + 0x108]
xor r11d, esi
mov esi, dword [rsp + 0x3c]
rol ebx, 1
xor edx, esi
shl rbx, 0x20
lea rsi, [0x1402f9380]
xor edx, r13d
mov r13d, dword [rsp + 0x110]
or r11, rbx
lea rbx, [0x1402f93c0]
rol r13d, 1
shl r13, 0x20
or r13, rdx
mov rdx, r14
nop dword [rax]
mov r14, rcx
xor r9, r8
xor r13, rax
or r14, rdx
mov rdi, r9
xor r14, r8
and r8, rcx
mov rbp, r8
xor rdx, r8
mov r8, r13
and rdi, r14
xor rbp, r9
mov r9, r10
not rdx
or r9, r11
xor rdi, rdx
or rdx, rbp
xor r9, rax
and rax, r10
xor rcx, rdx
xor r14, rdx
xor r11, rax
and r8, r9
xor rax, r13
xor rbp, rdi
not r11
and rdi, rdx
mov rdx, r14
mov r14d, ecx
xor r8, r11
or r11, rax
rol r14d, 2
not rdx
xor rax, r8
xor r10, r11
and r8, r11
mov r13, rax
xor r13, rcx
xor r14d, r13d
mov rax, r13
rol r13d, 0xe
xor r13d, r14d
shr rax, 0x20
rol r14d, 0xa
shr rcx, 0x20
xor r10, rdx
rol ecx, 2
xor r14d, r13d
rol r13d, 1
xor ecx, eax
rol eax, 0xe
xor eax, ecx
rol ecx, 0xa
xor ecx, eax
rol eax, 1
shl rcx, 0x20
shl rax, 0x20
or rcx, r14
or rax, r13
mov r14, r10
mov r13d, edx
shr rdx, 0x20
shr r14, 0x20
rol edx, 2
rol r13d, 2
xor edx, r14d
rol r14d, 0xe
xor r13d, r10d
xor r14d, edx
rol r10d, 0xe
rol edx, 0xa
xor r10d, r13d
rol r13d, 0xa
xor edx, r14d
xor r13d, r10d
rol r14d, 1
shl rdx, 0x20
or rdx, r13
shl r14, 0x20
xor r9, r11
mov r13, r9
rol r10d, 1
xor r13, rdi
or r10, r14
mov r14d, edi
shr rdi, 0x20
rol edi, 2
not r13
rol r14d, 2
mov r11, r13
xor r14d, r13d
rol r13d, 0xe
shr r11, 0x20
xor r13d, r14d
rol r14d, 0xa
xor edi, r11d
rol r11d, 0xe
xor r14d, r13d
xor r11d, edi
rol edi, 0xa
xor edi, r11d
rol r11d, 1
shl rdi, 0x20
rol r13d, 1
or rdi, r14
mov r14d, ebp
shl r11, 0x20
mov r9, rdi
mov rdi, r8
rol r14d, 2
or r11, r13
xor rdi, rbp
xor r14d, edi
mov r13, rdi
rol edi, 0xe
xor edi, r14d
shr r13, 0x20
rol r14d, 0xa
shr rbp, 0x20
xor rcx, qword [rbx]
add rbx, 8
rol ebp, 2
xor r14d, edi
rol edi, 1
xor rax, qword [rsi]
xor ebp, r13d
rol r13d, 0xe
add rsi, 8
xor r13d, ebp
rol ebp, 0xa
xor ebp, r13d
rol r13d, 1
shl rbp, 0x20
shl r13, 0x20
mov r8, rbp
or r13, rdi
lea rdi, [0x1402f9400]
or r8, r14
cmp rbx, rdi
jne 0x14012c210
mov dword [rsp + 0x54], r11d
shr r11, 0x20
mov ebp, dword [rsp + 0x20]
mov r14, rdx
mov dword [rsp + 0x50], eax
shr rax, 0x20
shr r14, 0x20
mov rbx, qword [rsp + 0xc0]
mov qword [rsp + 0xe0], r11
mov edi, dword [rsp + 0x28]
mov dword [rsp + 0x84], r11d
mov r11, qword [rsp + 0xb0]
shl rbx, 0x20
mov qword [rsp + 0xd0], rax
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x118]
shl r11, 0x20
mov dword [rsp + 0xe8], ecx
shr rcx, 0x20
or r11, rax
mov eax, dword [rsp + 0x124]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x70], ecx
mov rcx, rbp
lea rbp, [0x1402f92c0]
or rbx, rax
mov eax, dword [rsp + 0x100]
shl rcx, 0x20
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x38], r9d
mov edx, dword [rsp + 0x128]
shr r9, 0x20
or rcx, rax
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0x3c], r8d
shr r8, 0x20
mov dword [rsp + 0xec], r10d
shr r10, 0x20
mov dword [rsp + 0xf0], r13d
shr r13, 0x20
shl rax, 0x20
mov qword [rsp + 0x28], r9
or rax, rdx
mov dword [rsp + 0x78], r9d
mov qword [rsp + 0x40], r8
mov dword [rsp + 0xf4], r8d
mov dword [rsp + 0x74], r14d
mov qword [rsp + 0xd8], r10
mov dword [rsp + 0x80], r10d
mov qword [rsp + 0xf8], r13
mov dword [rsp + 0x88], r13d
mov r10, qword [rsp + 0x68]
mov edx, dword [rsp + 0x60]
mov rsi, qword [rsp + 0x90]
shl r10, 0x20
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
or r10, rdx
mov edx, dword [rsp + 0x64]
shl rsi, 0x20
shl r8, 0x20
shl r9, 0x20
or rsi, rdx
mov edx, edi
lea rdi, [0x1402f9300]
or r8, rdx
mov edx, r12d
or r9, rdx
mov rdx, rbx
nop word [rax + rax]
mov rbx, r11
xor rcx, rax
xor r9, r10
or rbx, rdx
xor rbx, rax
and rax, r11
mov r13, rax
xor rdx, rax
mov rax, rsi
xor r13, rcx
and rcx, rbx
or rax, r8
not rdx
mov r12, rcx
mov rcx, r10
xor rax, r10
and rcx, rsi
xor r12, rdx
or rdx, r13
xor r8, rcx
xor rbx, rdx
xor rcx, r9
and r9, rax
not r8
xor r11, rdx
not rbx
xor r13, r12
xor r9, r8
and r12, rdx
or r8, rcx
mov rdx, rbx
xor rcx, r9
mov ebx, r11d
xor rsi, r8
and r9, r8
xor rcx, r11
rol ebx, 2
xor ebx, ecx
mov r10, rcx
rol ecx, 0xe
xor ecx, ebx
shr r10, 0x20
rol ebx, 0xa
shr r11, 0x20
xor rsi, rdx
rol r11d, 2
xor ebx, ecx
rol ecx, 1
xor r11d, r10d
rol r10d, 0xe
xor r10d, r11d
rol r11d, 0xa
xor r11d, r10d
rol r10d, 1
shl r11, 0x20
shl r10, 0x20
or r11, rbx
or r10, rcx
mov rbx, rsi
mov ecx, edx
shr rdx, 0x20
shr rbx, 0x20
rol edx, 2
rol ecx, 2
xor edx, ebx
rol ebx, 0xe
xor ecx, esi
xor ebx, edx
rol esi, 0xe
rol edx, 0xa
xor esi, ecx
rol ecx, 0xa
xor edx, ebx
xor ecx, esi
rol ebx, 1
shl rdx, 0x20
or rdx, rcx
shl rbx, 0x20
xor rax, r8
mov ecx, r12d
rol ecx, 2
xor rax, r12
shr r12, 0x20
xor r9, r13
rol esi, 1
not rax
rol r12d, 2
mov r8, rax
xor ecx, eax
or rsi, rbx
rol eax, 0xe
shr r8, 0x20
mov ebx, ecx
xor eax, ecx
xor r12d, r8d
rol r8d, 0xe
xor r8d, r12d
rol ebx, 0xa
rol r12d, 0xa
mov ecx, ebx
xor r12d, r8d
xor ecx, eax
rol r8d, 1
shl r12, 0x20
rol eax, 1
or rcx, r12
mov r12d, r13d
shl r8, 0x20
rol r12d, 2
or r8, rax
mov rax, r9
xor r12d, r9d
rol r9d, 0xe
mov ebx, r9d
shr rax, 0x20
xor ebx, r12d
rol r12d, 0xa
mov r9d, eax
shr r13, 0x20
rol r9d, 0xe
xor r12d, ebx
xor r11, qword [rdi]
rol r13d, 2
rol ebx, 1
add rdi, 8
xor r10, qword [rbp]
xor r13d, eax
add rbp, 8
mov eax, r13d
xor r9d, r13d
rol eax, 0xa
xor eax, r9d
rol r9d, 1
shl r9, 0x20
shl rax, 0x20
or r9, rbx
lea rbx, [0x1402f9340]
or rax, r12
cmp rdi, rbx
jne 0x14012c540
mov r13, r10
mov r12, rdx
mov dword [rsp + 0x60], edx
mov rbx, rdx
shr r13, 0x20
mov rdi, r11
mov rdx, rcx
mov rbp, rax
mov qword [rsp + 0x100], r13
shr rdx, 0x20
shr rdi, 0x20
mov dword [rsp + 0xac], r13d
shr r12, 0x20
mov r13, rsi
shr rbp, 0x20
shr r13, 0x20
mov dword [rsp + 0x58], r11d
mov qword [rsp + 0x108], r13
mov dword [rsp + 0xb8], r13d
mov r13, r8
shr r13, 0x20
mov dword [rsp + 0x8c], edi
mov qword [rsp + 0x110], r13
mov dword [rsp + 0xc0], r13d
mov r13, r9
shr r13, 0x20
mov dword [rsp + 0x90], r12d
mov qword [rsp + 0x118], r13
mov dword [rsp + 0xcc], r13d
mov r13d, dword [rsp + 0x120]
mov dword [rsp + 0x64], ecx
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x98], edx
mov dword [rsp + 0x68], eax
mov dword [rsp + 0xa0], ebp
mov dword [rsp + 0xa8], r10d
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0xbc], r8d
mov dword [rsp + 0xc8], r9d
cmp r13d, 1
je 0x14012c7f8
cmp r13d, 2
je 0x14012c918
mov dword [rsp + 0x120], 1
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm0
jmp 0x14012bac4
mov r13d, dword [rsp + 0x20]
mov edx, dword [rsp + 0xe8]
xor r13d, edx
xor r11d, r13d
xor edi, r11d
bswap edi
mov r11d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x198]
xor r11d, r14d
mov dword [rdx], edi
xor r11d, ebx
xor r11d, r12d
bswap r11d
mov edi, dword [rsp + 0x38]
mov dword [rdx + 4], r11d
mov r11d, dword [rsp + 0x28]
xor r11d, edi
mov edi, dword [rsp + 0x48]
xor r11d, ecx
xor r11d, edi
bswap r11d
mov dword [rdx + 8], r11d
mov edi, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x40]
xor edx, edi
xor edx, eax
xor edx, ebp
bswap edx
mov rax, qword [rsp + 0x198]
mov edi, dword [rsp + 0x50]
mov dword [rax + 0xc], edx
mov eax, dword [rsp + 0xd0]
xor eax, edi
mov edi, dword [rsp + 0x100]
xor eax, r10d
xor eax, edi
bswap eax
mov rdi, qword [rsp + 0x198]
mov dword [rdi + 0x10], eax
mov eax, dword [rsp + 0xd8]
mov edi, dword [rsp + 0xec]
xor eax, edi
xor eax, esi
mov esi, dword [rsp + 0x108]
xor eax, esi
bswap eax
mov rsi, qword [rsp + 0x198]
mov dword [rsi + 0x14], eax
mov esi, dword [rsp + 0x54]
mov eax, dword [rsp + 0xe0]
xor eax, esi
mov esi, dword [rsp + 0x110]
xor eax, r8d
xor eax, esi
bswap eax
mov rsi, qword [rsp + 0x198]
mov dword [rsi + 0x18], eax
mov esi, dword [rsp + 0xf0]
mov eax, dword [rsp + 0xf8]
xor eax, esi
mov esi, dword [rsp + 0x118]
xor eax, r9d
xor eax, esi
bswap eax
mov rsi, qword [rsp + 0x198]
mov dword [rsp + 0x120], 2
mov dword [rsi + 0x1c], eax
jmp 0x14012bac4
mov r15, rdi
mov eax, dword [rsp + 0xe8]
mov edi, dword [rsp + 0x20]
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
xor eax, edi
mov edi, dword [rsp + 0x58]
xor eax, edi
xor eax, r15d
bswap eax
mov rdi, qword [rsp + 0x198]
mov dword [rdi + 0x20], eax
mov eax, dword [rsp + 0x34]
mov edi, dword [rsp + 0x60]
xor eax, r14d
xor eax, edi
xor eax, r12d
bswap eax
mov rdi, qword [rsp + 0x198]
mov dword [rdi + 0x24], eax
mov edi, dword [rsp + 0x28]
mov eax, dword [rsp + 0x38]
xor eax, edi
mov edi, dword [rsp + 0x64]
xor eax, edi
xor eax, edx
bswap eax
mov rdi, qword [rsp + 0x198]
mov dword [rdi + 0x28], eax
mov eax, dword [rsp + 0x3c]
xor eax, esi
mov esi, dword [rsp + 0x68]
xor eax, esi
xor eax, ebp
bswap eax
mov dword [rdi + 0x2c], eax
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret