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

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x188
mov rax, qword [rcx + 0x20]
mov rbx, rcx
mov r8d, 0x20
xor edx, edx
mov byte [rax + rcx], 0x80
inc rax
sub r8, rax
add rcx, rax
call fcn.180082af0
mov eax, dword [rbx + 0x28]
mov ecx, dword [rbx + 0x7c]
mov r11d, dword [rbx + 0x40]
mov r9d, dword [rbx + 0x78]
mov edi, dword [rbx + 0x84]
mov esi, dword [rbx + 0xc0]
mov r14d, dword [rbx + 0x2c]
mov r15d, dword [rbx + 0x70]
mov ebp, dword [rbx + 0x74]
mov r13d, dword [rbx + 0xac]
mov r12d, dword [rbx + 0xb8]
mov qword [rsp + 0xc8], rax
mov eax, dword [rbx + 0x30]
mov qword [rsp + 0xb8], rax
mov eax, dword [rbx + 0x34]
mov qword [rsp + 0x68], rcx
mov ecx, dword [rbx + 0x80]
mov qword [rsp + 0xa8], rax
mov eax, dword [rbx + 0x38]
mov qword [rsp + 0xe0], rcx
mov ecx, dword [rbx + 0x88]
mov qword [rsp + 0xa0], rax
mov eax, dword [rbx + 0x3c]
mov qword [rsp + 0xd0], rcx
mov ecx, dword [rbx + 0x8c]
mov qword [rsp + 0x118], rax
mov eax, dword [rbx + 0x44]
mov qword [rsp + 0x60], rcx
mov ecx, dword [rbx + 0x90]
mov qword [rsp + 0x120], rax
mov eax, dword [rbx + 0x48]
mov qword [rsp + 0xc0], rcx
mov ecx, dword [rbx + 0x94]
mov qword [rsp + 0x100], rax
mov eax, dword [rbx + 0x4c]
mov qword [rsp + 0xb0], rcx
mov ecx, dword [rbx + 0x98]
mov qword [rsp + 0x108], rax
mov eax, dword [rbx + 0x50]
mov qword [rsp + 0x88], rcx
mov ecx, dword [rbx + 0x9c]
mov qword [rsp + 0xf0], rax
mov eax, dword [rbx + 0x54]
mov qword [rsp + 0x80], rcx
mov ecx, dword [rbx + 0xa0]
mov qword [rsp + 0x98], rax
mov eax, dword [rbx + 0x58]
mov qword [rsp + 0x70], rcx
mov ecx, dword [rbx + 0xa4]
mov qword [rsp + 0xd8], rax
mov eax, dword [rbx + 0x5c]
mov qword [rsp + 0x50], rcx
mov ecx, dword [rbx + 0xa8]
mov qword [rsp + 0x78], rax
mov eax, dword [rbx + 0x60]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rbx + 0xb0]
mov qword [rsp + 0xf8], rax
mov eax, dword [rbx + 0x64]
mov dword [rsp + 0x1d8], ecx
mov ecx, dword [rbx + 0xb4]
mov qword [rsp + 0x110], rax
mov eax, dword [rbx + 0x68]
mov dword [rsp + 0x3c], ecx
mov ecx, dword [rbx + 0xbc]
mov qword [rsp + 0xe8], rax
mov eax, dword [rbx + 0x6c]
mov qword [rsp + 0x90], r11
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x24], esi
mov r10d, dword [rbx + 0xc4]
mov dword [rsp + 0x1e0], r10d
mov dword [rsp + 0x158], 0
mov edx, dword [rbx]
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 4]
mov dword [rsp + 0x174], r8d
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 8]
mov dword [rsp + 0x144], r8d
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 0xc]
mov dword [rsp + 0x178], r8d
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 0x10]
mov dword [rsp + 0x128], r8d
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 0x14]
mov dword [rsp + 0x12c], r8d
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 0x18]
mov dword [rsp + 0x140], r8d
rol edx, 0x10
mov r8d, edx
mov ecx, edx
shr r8d, 8
shl edx, 8
shl ecx, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, edx
mov edx, dword [rbx + 0x1c]
rol edx, 0x10
mov dword [rsp + 0x16c], r8d
mov r8d, edx
shr r8d, 8
mov ecx, edx
mov ebx, r10d
xor ebx, dword [rsp + 0x50]
mov r10d, r12d
xor r10d, dword [rsp + 0x88]
xor ebx, edi
xor ebx, dword [rsp + 0x110]
xor r10d, r9d
xor ebx, dword [rsp + 0x120]
mov edi, esi
xor edi, dword [rsp + 0x70]
mov esi, ebx
xor edi, dword [rsp + 0xe0]
mov r9d, ebx
xor r9d, dword [rsp + 0x3c]
xor r9d, dword [rsp + 0xb0]
xor edi, dword [rsp + 0xf8]
xor r9d, ebp
xor r10d, dword [rsp + 0xd8]
xor edi, r11d
xor r10d, dword [rsp + 0xa0]
xor r9d, dword [rsp + 0x98]
xor r9d, dword [rsp + 0xa8]
xor esi, dword [rsp + 0x28]
mov r11d, dword [rsp + 0x20]
xor r11d, dword [rsp + 0x80]
xor r11d, dword [rsp + 0x68]
xor r11d, dword [rsp + 0x78]
xor r11d, dword [rsp + 0x118]
xor dword [rsp + 0x90], r11d
xor dword [rsp + 0xf8], r11d
xor dword [rsp + 0xe0], r11d
xor dword [rsp + 0xa0], r9d
xor dword [rsp + 0x118], r10d
xor dword [rsp + 0x120], edi
xor dword [rsp + 0xd8], r9d
xor dword [rsp + 0x78], r10d
xor dword [rsp + 0x110], edi
xor dword [rsp + 0x48], r9d
xor dword [rsp + 0x68], r10d
xor dword [rsp + 0x58], edi
shl ecx, 8
xor r8d, ecx
shl edx, 8
and r8d, 0xff00ff
mov ecx, esi
xor ecx, dword [rsp + 0xd0]
xor r8d, edx
xor ecx, dword [rsp + 0xe8]
mov edx, r13d
xor edx, dword [rsp + 0x60]
xor ecx, dword [rsp + 0x100]
xor edx, eax
xor ecx, dword [rsp + 0xc8]
xor edx, dword [rsp + 0x108]
xor eax, ecx
xor dword [rsp + 0x108], ecx
xor edx, r14d
xor dword [rsp + 0x60], ecx
xor r14d, ecx
xor dword [rsp + 0xc8], ebx
xor dword [rsp + 0x100], ebx
xor dword [rsp + 0xe8], ebx
xor dword [rsp + 0xd0], ebx
mov dword [rsp + 0x170], r8d
mov r8d, ebx
xor r8d, dword [rsp + 0x1d8]
xor r8d, dword [rsp + 0xc0]
xor r8d, r15d
mov qword [rsp + 0x160], r14
xor r8d, dword [rsp + 0xf0]
xor r15d, edx
xor r8d, dword [rsp + 0xb8]
xor dword [rsp + 0xb8], edx
xor ebp, r8d
xor dword [rsp + 0xa8], r8d
xor dword [rsp + 0xf0], edx
xor dword [rsp + 0x98], r8d
xor dword [rsp + 0xc0], edx
mov qword [rsp + 0x148], r15
mov qword [rsp + 0x150], rbp
xor dword [rsp + 0x88], r9d
xor r13d, ecx
xor dword [rsp + 0xb0], r8d
xor r12d, r9d
xor dword [rsp + 0x3c], r8d
mov rcx, qword [rsp + 0x120]
xor dword [rsp + 0x1d8], edx
mov r9, qword [rsp + 0x98]
mov r8, qword [rsp + 0xd8]
xor dword [rsp + 0x70], r11d
xor dword [rsp + 0x50], edi
xor dword [rsp + 0x24], r11d
mov r11d, r8d
xor r8d, dword [rsp + 0x68]
xor r11d, ecx
xor dword [rsp + 0x1e0], edi
mov edi, r9d
mov ebp, dword [rsp + 0x100]
xor edi, ecx
xor dword [rsp + 0x80], r10d
xor ebp, ecx
xor dword [rsp + 0x20], r10d
mov r15d, dword [rsp + 0x108]
xor edi, dword [rsp + 0xb8]
xor r15d, ecx
xor r11d, dword [rsp + 0xa8]
xor r15d, dword [rsp + 0xc8]
mov qword [rsp + 0xd8], r8
mov r8, qword [rsp + 0x58]
mov dword [rsp + 0x168], ebp
mov rbp, qword [rsp + 0xf0]
mov ebx, ebp
mov dword [rsp + 0x38], r13d
mov r13d, dword [rsp + 0xf8]
xor ebx, r14d
mov r14, qword [rsp + 0x110]
xor dword [rsp + 0xf8], r8d
mov edx, r14d
xor r13d, dword [rsp + 0x118]
xor edx, r9d
xor edx, dword [rsp + 0x48]
mov ecx, r14d
xor ecx, dword [rsp + 0x100]
mov r9d, r14d
xor ecx, eax
mov dword [rsp + 0x34], r12d
mov r12d, dword [rsp + 0x78]
xor r9d, ebp
mov rbp, qword [rsp + 0xe8]
mov r10d, r14d
xor r10d, dword [rsp + 0x90]
xor r14d, ebp
xor r12d, dword [rsp + 0xa0]
xor eax, dword [rsp + 0xc0]
mov dword [rsp + 0xe8], ecx
mov rcx, qword [rsp + 0x150]
xor r9d, ecx
mov qword [rsp + 0x110], r14
mov r14, qword [rsp + 0x148]
xor r8d, ecx
mov rcx, qword [rsp + 0x58]
xor dword [rsp + 0x108], r14d
mov dword [rsp + 0x30], r8d
mov r8d, ecx
mov dword [rsp + 0x100], r9d
xor r8d, r14d
mov r9d, ecx
mov dword [rsp + 0x98], edx
xor ecx, dword [rsp + 0xd0]
xor r9d, ebp
xor r9d, dword [rsp + 0x60]
mov rdx, qword [rsp + 0xe0]
xor dword [rsp + 0x78], edx
xor r8d, dword [rsp + 0xb0]
mov qword [rsp + 0x58], rcx
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x150], r9d
mov dword [rsp + 0x130], ebx
mov dword [rsp + 0x134], edi
mov dword [rsp + 0x138], r11d
mov dword [rsp + 0x13c], r10d
xor ecx, dword [rsp + 0x88]
mov rbp, qword [rsp + 0x50]
mov r14, qword [rsp + 0x70]
xor edx, ebp
xor dword [rsp + 0x68], r14d
mov r9d, ebp
xor r14d, dword [rsp + 0x1e0]
xor r9d, dword [rsp + 0xd0]
mov dword [rsp + 0x30], ecx
mov rcx, qword [rsp + 0x80]
xor dword [rsp + 0x48], ecx
mov ecx, ebp
xor ecx, dword [rsp + 0xb0]
xor ecx, dword [rsp + 0x34]
mov dword [rsp + 0xf0], ecx
mov rcx, qword [rsp + 0x88]
xor ecx, dword [rsp + 0x20]
mov qword [rsp + 0x88], rcx
mov ecx, dword [rsp + 0x24]
xor dword [rsp + 0x80], ecx
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x1e0]
mov qword [rsp + 0xe0], rdx
mov edx, ebp
xor edx, dword [rsp + 0xc0]
xor ebp, esi
xor edx, dword [rsp + 0x3c]
mov qword [rsp + 0x50], rbp
mov ebp, r9d
xor ebp, dword [rsp + 0x38]
mov dword [rsp + 0x40], ebp
mov rbp, qword [rsp + 0x60]
xor ebp, dword [rsp + 0x1d8]
mov qword [rsp + 0x70], r14
mov r14d, ecx
xor ecx, dword [rsp + 0x1d8]
xor ecx, dword [rsp + 0xa8]
xor r14d, dword [rsp + 0x3c]
xor r14d, dword [rsp + 0xa0]
mov qword [rsp + 0x60], rbp
mov ebp, dword [rsp + 0x1e0]
xor ebp, esi
mov dword [rsp + 0xa0], r14d
mov rsi, qword [rsp + 0xc8]
xor dword [rsp + 0x1e0], esi
mov esi, ebp
xor esi, dword [rsp + 0x160]
mov dword [rsp + 0x1d8], esi
mov rsi, qword [rsp + 0xb8]
xor dword [rsp + 0x38], esi
mov rsi, qword [rsp + 0x118]
xor dword [rsp + 0x34], esi
mov esi, dword [rsp + 0x20]
xor esi, dword [rsp + 0x90]
mov dword [rsp + 0x20], esi
mov esi, dword [rsp + 0x28]
xor esi, dword [rsp + 0x120]
mov dword [rsp + 0x28], esi
mov esi, r10d
xor esi, dword [rsp + 0x1e0]
mov dword [rsp + 0x24], esi
mov esi, r10d
xor esi, dword [rsp + 0x168]
xor esi, dword [rsp + 0x1d8]
mov dword [rsp + 0xa8], esi
mov esi, r15d
xor esi, dword [rsp + 0x38]
mov dword [rsp + 0xb0], esi
mov esi, r10d
xor r10d, edi
xor esi, ebx
xor r10d, r14d
xor esi, ecx
mov dword [rsp + 0xc0], r10d
mov r10d, r11d
xor r10d, dword [rsp + 0x34]
mov dword [rsp + 0xc8], r10d
mov r10d, r12d
xor r10d, dword [rsp + 0x20]
mov dword [rsp + 0xd0], r10d
mov dword [rsp + 0xb8], esi
mov ebx, dword [rsp + 0x28]
mov r10d, r13d
mov rdi, qword [rsp + 0x50]
xor r10d, ebx
mov r9d, dword [rsp + 0x150]
mov esi, ebx
mov r14d, dword [rsp + 0x20]
xor esi, ecx
mov ebp, dword [rsp + 0x34]
mov ecx, ebx
xor ecx, dword [rsp + 0x1e0]
xor ecx, dword [rsp + 0x40]
xor dword [rsp + 0x40], eax
xor ebp, dword [rsp + 0x80]
mov dword [rsp + 0x90], r10d
mov r10d, ebx
xor r10d, dword [rsp + 0x38]
xor ebx, edi
xor r10d, edx
mov dword [rsp + 0x28], ebx
mov rbx, qword [rsp + 0x60]
xor dword [rsp + 0x1d8], ebx
mov dword [rsp + 0x3c], r10d
mov r10, qword [rsp + 0x88]
xor dword [rsp + 0xa0], r10d
mov r10, qword [rsp + 0x70]
mov dword [rsp + 0x38], ecx
mov r11d, r10d
mov ecx, dword [rsp + 0xf0]
xor r11d, edx
mov edx, r10d
xor esi, ecx
xor edx, ebx
xor r14d, r10d
mov ebx, r10d
mov dword [rsp + 0x148], edx
mov rdx, qword [rsp + 0x58]
xor ebx, edi
xor dword [rsp + 0x148], r8d
xor r10d, edx
mov edi, dword [rsp + 0x30]
xor ebx, r9d
xor r11d, edi
mov qword [rsp + 0x70], r10
mov r10, qword [rsp + 0x48]
xor edi, dword [rsp + 0xd8]
xor ecx, r10d
xor r10d, dword [rsp + 0x78]
mov dword [rsp + 0xf0], ecx
mov rcx, qword [rsp + 0xe0]
xor dword [rsp + 0x80], ecx
mov dword [rsp + 0x2c], ecx
xor dword [rsp + 0x2c], r8d
mov r8d, ecx
xor r8d, eax
mov dword [rsp + 0x60], ebx
mov rbx, qword [rsp + 0x68]
mov eax, ecx
xor dword [rsp + 0x88], ebx
xor eax, edx
mov edx, dword [rsp + 0xe8]
xor eax, edx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x2c]
xor eax, dword [rsp + 0x98]
mov dword [rsp + 0x50], r8d
mov r8, qword [rsp + 0x110]
xor ecx, r8d
mov dword [rsp + 0x2c], eax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0xe0], rcx
mov rcx, qword [rsp + 0x108]
xor r9d, ecx
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x150], r9d
mov edi, eax
mov r9d, dword [rsp + 0x100]
xor dword [rsp + 0x50], r9d
xor ebx, eax
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x68], rbx
xor r13d, dword [rsp + 0x140]
mov ebx, eax
xor dword [rsp + 0xd8], r13d
xor ebx, ecx
mov ecx, dword [rsp + 0x140]
mov r10d, eax
xor dword [rsp + 0xc8], ecx
xor edi, r9d
mov r9d, dword [rsp + 0x178]
xor r10d, r15d
xor dword [rsp + 0xb0], r9d
xor r10d, r8d
mov r8d, dword [rsp + 0x128]
xor dword [rsp + 0xb8], r8d
mov eax, dword [rsp + 0x144]
xor dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x12c]
xor dword [rsp + 0xc0], eax
mov ecx, dword [rsp + 0x16c]
xor dword [rsp + 0xd0], ecx
mov ecx, dword [rsp + 0x170]
xor dword [rsp + 0x90], ecx
mov r15d, dword [rsp + 0x24]
xor r15d, dword [rsp + 0x174]
mov dword [rsp + 0x34], eax
mov eax, ecx
xor eax, r8d
mov r8d, ecx
xor r8d, dword [rsp + 0x174]
xor dword [rsp + 0x150], r8d
xor r10d, r8d
mov dword [rsp + 0x1e0], eax
mov eax, ecx
xor eax, r9d
mov r9d, ecx
xor r9d, dword [rsp + 0xf8]
mov ecx, dword [rsp + 0x130]
xor ecx, dword [rsp + 0x144]
xor r9d, dword [rsp + 0x168]
xor edx, ecx
mov ecx, dword [rsp + 0x134]
xor ecx, eax
mov dword [rsp + 0xe8], edx
mov edx, dword [rsp + 0x34]
xor ebx, ecx
xor dword [rsp + 0x48], edx
xor r12d, edx
xor dword [rsp + 0x98], r12d
mov r12d, dword [rsp + 0x16c]
mov r13d, r12d
mov ecx, dword [rsp + 0x138]
xor r13d, eax
xor ecx, dword [rsp + 0x1e0]
mov eax, r12d
xor eax, dword [rsp + 0x144]
xor edi, ecx
xor dword [rsp + 0x2c], r13d
xor dword [rsp + 0x50], eax
mov ecx, dword [rsp + 0x13c]
xor dword [rsp + 0xe0], r12d
xor ecx, r12d
xor dword [rsp + 0x78], ecx
mov ecx, r12d
xor ecx, dword [rsp + 0x170]
xor dword [rsp + 0x58], ecx
mov dword [rsp + 0x24], r13d
mov r13d, dword [rsp + 0x30]
xor r13d, dword [rsp + 0x1e0]
mov dword [rsp + 0x30], r13d
mov r13d, dword [rsp + 0x140]
mov edx, r13d
xor dword [rsp + 0x68], r13d
xor edx, eax
xor dword [rsp + 0x70], r13d
mov eax, r13d
mov dword [rsp + 0x20], edx
xor eax, r12d
xor dword [rsp + 0x60], eax
mov edx, r13d
xor edx, r8d
xor dword [rsp + 0x40], ecx
xor dword [rsp + 0x1d8], eax
mov r12d, dword [rsp + 0x34]
xor r13d, r12d
xor dword [rsp + 0x28], r12d
mov eax, r12d
xor dword [rsp + 0x38], r13d
xor eax, ecx
xor dword [rsp + 0x3c], eax
mov r8d, dword [rsp + 0x20]
mov rax, qword [rsp + 0x48]
xor dword [rsp + 0x148], edx
rol dword [rsp + 0x2c], 2
rol dword [rsp + 0x30], 2
rol eax, 2
mov dword [rsp + 0x130], eax
mov rax, qword [rsp + 0x68]
rol eax, 2
mov dword [rsp + 0x128], eax
mov eax, r8d
xor r8d, dword [rsp + 0xa0]
xor eax, r11d
rol eax, 3
mov dword [rsp + 0x13c], eax
mov eax, dword [rsp + 0x24]
xor eax, dword [rsp + 0xf0]
rol eax, 3
mov dword [rsp + 0x138], eax
mov eax, dword [rsp + 0x1e0]
mov ecx, eax
xor ecx, dword [rsp + 0x88]
xor eax, r14d
rol eax, 4
rol ecx, 3
mov dword [rsp + 0x1e0], eax
mov dword [rsp + 0x134], ecx
mov ecx, r12d
xor ecx, dword [rsp + 0x80]
xor r12d, edx
xor r12d, esi
rol edi, 1
mov esi, dword [rsp + 0x24]
rol r12d, 4
xor esi, ebp
mov ebp, dword [rsp + 0xe8]
rol ecx, 3
mov eax, r15d
mov r15, qword [rsp + 0x78]
mov dword [rsp + 0x34], r12d
mov r12d, dword [rsp + 0x98]
mov dword [rsp + 0x12c], ecx
mov ecx, edi
mov rdi, qword [rsp + 0xd8]
rol r12d, 1
rol edi, 1
shl rbp, 0x20
shl rbx, 0x20
shl rcx, 0x20
shl r12, 0x20
shl rdi, 0x20
rol r8d, 4
rol esi, 4
mov r13d, r9d
shl r13, 0x20
or r13, rax
mov r14d, r10d
mov eax, dword [rsp + 0xa8]
shl r14, 0x20
or r14, rax
mov dword [rsp + 0x20], r8d
mov eax, dword [rsp + 0xb0]
or rbp, rax
mov dword [rsp + 0x24], esi
mov eax, dword [rsp + 0xb8]
or rbx, rax
mov eax, dword [rsp + 0xc0]
or rcx, rax
mov eax, dword [rsp + 0xc8]
or r12, rax
mov eax, dword [rsp + 0xd0]
or rdi, rax
rol r15d, 1
mov eax, dword [rsp + 0x90]
shl r15, 0x20
or r15, rax
mov qword [rsp + 0x160], 0
nop dword [rax]
nop dword [rax + rax]
xor r15, rcx
mov rax, r14
or rax, r13
not r14
xor rax, rbx
xor rbp, rbx
and rbx, r13
xor r14, rbx
xor rbx, rbp
and rbp, rax
not rax
xor rbp, r14
or r14, rbx
xor r13, r14
xor rbx, rbp
and rbp, r14
mov r9d, r13d
xor r14, rax
rol r9d, 2
mov rax, rdi
not rdi
or rax, r12
xor rax, rcx
and rcx, r12
xor rdi, rcx
xor rcx, r15
and r15, rax
not rax
xor r15, rdi
or rdi, rcx
xor rcx, r15
xor r12, rdi
xor rcx, r13
xor r12, r14
mov r11, rcx
shr r13, 0x20
xor r9d, ecx
shr r11, 0x20
rol ecx, 0xe
mov r8, r12
xor ecx, r9d
shr r8, 0x20
mov r10d, ecx
and r15, rdi
mov ecx, r14d
rol r13d, 2
shr r14, 0x20
xor rdi, rax
rol ecx, 2
xor rdi, rbp
xor ecx, r12d
rol r14d, 2
xor r14d, r8d
rol r12d, 0xe
xor r12d, ecx
rol r8d, 0xe
xor r8d, r14d
mov edx, r12d
mov eax, r8d
xor r13d, r11d
rol ecx, 0xa
xor rcx, rdx
rol r14d, 0xa
xor r14, rax
rol r8d, 1
mov r12d, r8d
mov r8, rdi
shl r14, 0x20
or r14, rcx
rol edx, 1
rol r11d, 0xe
mov ecx, ebp
rol ecx, 2
xor r11d, r13d
shl r12, 0x20
xor ecx, edi
mov eax, edx
rol edi, 0xe
or r12, rax
shr r8, 0x20
xor edi, ecx
xor r15, rbx
rol ecx, 0xa
shr rbp, 0x20
rol ebp, 2
xor ebp, r8d
mov edx, edi
xor rcx, rdx
rol r8d, 0xe
xor r8d, ebp
rol edx, 1
mov eax, r8d
rol r8d, 1
mov edi, r8d
mov r8, r15
shr r8, 0x20
rol r13d, 0xa
rol ebp, 0xa
xor rbp, rax
shl rdi, 0x20
mov eax, edx
or rdi, rax
shl rbp, 0x20
or rbp, rcx
rol r9d, 0xa
mov ecx, ebx
shr rbx, 0x20
rol ecx, 2
xor ecx, r15d
rol ebx, 2
xor ebx, r8d
rol r15d, 0xe
xor r15d, ecx
rol r8d, 0xe
xor r8d, ebx
rol ecx, 0xa
mov edx, r15d
xor rcx, rdx
mov eax, r8d
rol ebx, 0xa
xor rbx, rax
rol edx, 1
mov eax, edx
mov rdx, qword [rsp + 0x160]
rol r8d, 1
mov r15d, r8d
lea r8, [0x180000000]
shl r15, 0x20
or r15, rax
shl rbx, 0x20
or rbx, rcx
mov eax, r11d
xor r13, rax
rol r11d, 1
shl r13, 0x20
mov ecx, r9d
xor rcx, r10
rol r10d, 1
or r13, rcx
mov eax, r10d
xor r13, qword [rdx + r8 + 0xa6bf0]
mov ecx, r11d
shl rcx, 0x20
or rcx, rax
xor rcx, qword [rdx + r8 + 0xa6cf0]
add rdx, 8
mov qword [rsp + 0x160], rdx
cmp rdx, 0x40
jl 0x18004a650
mov r9d, dword [rsp + 0x13c]
mov rax, r13
mov esi, dword [rsp + 0x138]
shr rax, 0x20
mov qword [rsp + 0x100], rax
mov rax, r14
shr rax, 0x20
mov qword [rsp + 0x108], rax
mov rax, rbp
shr rax, 0x20
mov qword [rsp + 0xf0], rax
mov rax, rbx
shr rax, 0x20
mov qword [rsp + 0x98], rax
mov rax, rcx
shr rax, 0x20
mov qword [rsp + 0xd8], rax
mov rax, r12
shr rax, 0x20
mov qword [rsp + 0x78], rax
mov rax, rdi
shr rax, 0x20
mov qword [rsp + 0xa0], rcx
mov ecx, dword [rsp + 0x58]
mov qword [rsp + 0xf8], rax
mov rax, r15
shr rax, 0x20
mov qword [rsp + 0x110], rax
mov eax, dword [rsp + 0xe0]
mov qword [rsp + 0xc8], r13
mov r13d, dword [rsp + 0x70]
mov qword [rsp + 0x120], r15
mov r15d, dword [rsp + 0x40]
mov qword [rsp + 0xb8], rbp
mov ebp, dword [rsp + 0x148]
mov qword [rsp + 0x90], rdi
mov edi, dword [rsp + 0x134]
mov qword [rsp + 0x160], r14
mov r14d, dword [rsp + 0x12c]
shl r13, 0x20
or r13, rax
shl r15, 0x20
mov eax, dword [rsp + 0x60]
shl rax, 0x20
or rax, rcx
shl rbp, 0x20
mov ecx, dword [rsp + 0x150]
or r15, rcx
shl r9, 0x20
mov ecx, dword [rsp + 0x50]
or rbp, rcx
shl rsi, 0x20
mov ecx, dword [rsp + 0x2c]
or r9, rcx
shl rdi, 0x20
mov ecx, dword [rsp + 0x30]
or rsi, rcx
shl r14, 0x20
mov ecx, dword [rsp + 0x130]
or rdi, rcx
mov qword [rsp + 0x118], r12
mov ecx, dword [rsp + 0x128]
mov r12d, dword [rsp + 0x34]
or r14, rcx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x48], 0
nop word [rax + rax]
xor r14, r9
mov rcx, rax
or rcx, r13
not rax
xor rcx, rbp
xor r15, rbp
and rbp, r13
xor rax, rbp
xor rbp, r15
and r15, rcx
not rcx
xor r15, rax
or rax, rbp
xor r13, rax
xor rbp, r15
and r15, rax
mov r10d, r13d
xor rax, rcx
rol r10d, 2
mov edx, eax
mov rcx, rdi
or rcx, rsi
rol edx, 2
xor rcx, r9
not rdi
and r9, rsi
xor rdi, r9
xor r9, r14
and r14, rcx
not rcx
xor r14, rdi
or rdi, r9
xor r9, r14
xor rsi, rdi
xor r9, r13
xor rsi, rax
xor edx, esi
shr rax, 0x20
mov rbx, r9
rol eax, 2
xor r10d, r9d
shr rbx, 0x20
rol r9d, 0xe
and r14, rdi
xor r9d, r10d
shr r13, 0x20
mov r11d, r9d
xor rdi, rcx
mov r9, rsi
rol r13d, 2
shr r9, 0x20
xor rdi, r15
xor eax, r9d
rol esi, 0xe
xor esi, edx
rol r9d, 0xe
xor r9d, eax
mov r8d, esi
mov ecx, r9d
xor r13d, ebx
rol edx, 0xa
xor rdx, r8
rol eax, 0xa
xor rax, rcx
rol r9d, 1
mov esi, r9d
mov r9, rdi
shl rax, 0x20
or rax, rdx
rol r8d, 1
rol ebx, 0xe
mov edx, r15d
rol edx, 2
xor ebx, r13d
shl rsi, 0x20
xor edx, edi
mov ecx, r8d
rol edi, 0xe
or rsi, rcx
shr r9, 0x20
xor edi, edx
xor r14, rbp
rol edx, 0xa
shr r15, 0x20
rol r15d, 2
xor r15d, r9d
mov r8d, edi
xor rdx, r8
rol r9d, 0xe
xor r9d, r15d
rol r8d, 1
mov ecx, r9d
rol r9d, 1
mov edi, r9d
mov r9, r14
shr r9, 0x20
rol r13d, 0xa
rol r15d, 0xa
xor r15, rcx
shl rdi, 0x20
mov ecx, r8d
or rdi, rcx
shl r15, 0x20
or r15, rdx
rol r10d, 0xa
mov edx, ebp
shr rbp, 0x20
rol edx, 2
xor edx, r14d
rol ebp, 2
xor ebp, r9d
rol r14d, 0xe
xor r14d, edx
rol r9d, 0xe
xor r9d, ebp
mov r8d, r14d
mov ecx, r9d
rol edx, 0xa
xor rdx, r8
rol r9d, 1
mov r14d, r9d
rol ebp, 0xa
xor rbp, rcx
rol r8d, 1
mov ecx, r8d
lea r8, [0x180000000]
shl r14, 0x20
or r14, rcx
shl rbp, 0x20
or rbp, rdx
mov ecx, ebx
xor r13, rcx
rol ebx, 1
shl r13, 0x20
mov edx, r10d
xor rdx, r11
mov r9d, ebx
or r13, rdx
shl r9, 0x20
mov rdx, qword [rsp + 0x48]
rol r11d, 1
mov ecx, r11d
or r9, rcx
xor r13, qword [rdx + r8 + 0xa6d50]
xor r9, qword [rdx + r8 + 0xa6d90]
add rdx, 8
mov qword [rsp + 0x48], rdx
cmp rdx, 0x40
jl 0x18004a9a0
mov r10d, dword [rsp + 0x1e0]
mov rcx, r13
mov r11d, dword [rsp + 0x1d8]
mov ebx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x20]
shr rcx, 0x20
mov qword [rsp + 0xd0], rcx
mov rcx, rax
shr rcx, 0x20
mov qword [rsp + 0x60], rcx
mov rcx, r15
shr rcx, 0x20
mov qword [rsp + 0xc0], rcx
mov rcx, rbp
shr rcx, 0x20
mov qword [rsp + 0xb0], rcx
mov rcx, r9
shr rcx, 0x20
mov qword [rsp + 0x88], rcx
mov rcx, rsi
shr rcx, 0x20
mov qword [rsp + 0x80], rcx
mov rcx, rdi
shr rcx, 0x20
mov qword [rsp + 0x70], rcx
mov rcx, r14
shr rcx, 0x20
mov qword [rsp + 0x68], rsi
mov esi, dword [rsp + 0x24]
mov qword [rsp + 0x58], r14
mov r14, qword [rsp + 0x160]
mov qword [rsp + 0xe8], r13
mov r13d, dword [rsp + 0x38]
mov qword [rsp + 0x48], r9
lea r9, [0x180000000]
mov qword [rsp + 0xe0], rdi
xor edi, edi
mov qword [rsp + 0x50], rcx
nop
xor r10d, r12d
xor r11d, ebx
mov ecx, r13d
not r13d
or ecx, edx
xor ecx, ebx
and ebx, edx
xor r13d, ebx
xor ebx, r11d
and r11d, ecx
not ecx
xor r11d, r13d
or r13d, ebx
xor edx, r13d
xor ebx, r11d
and r11d, r13d
xor r13d, ecx
mov ecx, esi
not esi
or ecx, r8d
xor ecx, r12d
and r12d, r8d
xor esi, r12d
xor r12d, r10d
and r10d, ecx
not ecx
xor r10d, esi
or esi, r12d
xor r12d, r10d
xor r8d, esi
xor r12d, edx
and r10d, esi
xor r8d, r13d
rol edx, 2
xor edx, r12d
rol r13d, 2
xor r10d, ebx
rol r12d, 0xe
xor r12d, edx
rol ebx, 2
xor r13d, r8d
rol edx, 0xa
xor edx, dword [rdi + r9 + 0xa6d30]
xor ebx, r10d
xor esi, ecx
rol r8d, 0xe
xor esi, r11d
rol r10d, 0xe
rol r11d, 2
xor r8d, r13d
xor r11d, esi
rol r13d, 0xa
xor r10d, ebx
rol esi, 0xe
xor esi, r11d
rol ebx, 0xa
xor edx, r12d
rol r11d, 0xa
rol r12d, 1
xor r13d, r8d
xor r12d, dword [rdi + r9 + 0xa6c30]
xor r11d, esi
xor ebx, r10d
rol r8d, 1
add rdi, 4
rol esi, 1
rol r10d, 1
cmp rdi, 0x20
jl 0x18004ac50
mov rdi, qword [rsp + 0xe0]
mov r9, qword [rsp + 0x48]
mov dword [rsp + 0x20], r8d
mov r8d, dword [rsp + 0x158]
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x1d8], r11d
mov dword [rsp + 0x1e0], r10d
mov dword [rsp + 0x24], esi
test r8d, r8d
je 0x18004b1c5
sub r8d, 1
je 0x18004afa4
cmp r8d, 1
jne 0x18004b1ed
mov r8d, dword [rsp + 0xe8]
xor r8d, edx
xor r8d, dword [rsp + 0xd0]
xor r8d, dword [rsp + 0x100]
xor r8d, dword [rsp + 0xc8]
rol r8d, 0x10
mov ecx, r8d
mov edx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
mov rcx, qword [rsp + 0x1e8]
and edx, 0xff00ff
xor edx, r8d
mov r8d, eax
xor r8d, r13d
xor r8d, dword [rsp + 0x60]
xor r8d, dword [rsp + 0x108]
mov dword [rcx + 0x20], edx
xor r8d, r14d
rol r8d, 0x10
mov ecx, r8d
mov edx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
mov rcx, qword [rsp + 0x1e8]
and edx, 0xff00ff
xor edx, r8d
mov r8d, r15d
xor r8d, r11d
xor r8d, dword [rsp + 0xc0]
xor r8d, dword [rsp + 0xf0]
xor r8d, dword [rsp + 0xb8]
mov dword [rcx + 0x24], edx
rol r8d, 0x10
mov ecx, r8d
mov edx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
mov rcx, qword [rsp + 0x1e8]
and edx, 0xff00ff
xor edx, r8d
mov r8d, ebp
xor r8d, ebx
mov rbx, qword [rsp + 0x1e8]
xor r8d, dword [rsp + 0xb0]
xor r8d, dword [rsp + 0x98]
xor r8d, dword [rsp + 0xa8]
mov dword [rcx + 0x28], edx
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, r9d
xor r8d, r12d
mov dword [rbx + 0x2c], edx
xor r8d, dword [rsp + 0x88]
xor r8d, dword [rsp + 0xd8]
xor r8d, dword [rsp + 0xa0]
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shr edx, 8
shl r8d, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, dword [rsp + 0x68]
xor r8d, dword [rsp + 0x20]
mov dword [rbx + 0x30], edx
xor r8d, dword [rsp + 0x80]
xor r8d, dword [rsp + 0x78]
xor r8d, dword [rsp + 0x118]
mov r11, qword [rsp + 0x90]
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, edi
mov rdi, qword [rsp + 0x58]
xor r8d, esi
xor r8d, dword [rsp + 0x70]
xor r8d, dword [rsp + 0xf8]
xor r8d, r11d
mov dword [rbx + 0x34], edx
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, edi
xor r8d, r10d
mov dword [rbx + 0x38], edx
xor r8d, dword [rsp + 0x50]
xor r8d, dword [rsp + 0x110]
xor r8d, dword [rsp + 0x120]
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shr edx, 8
shl ecx, 8
xor edx, ecx
shl r8d, 8
and edx, 0xff00ff
xor edx, r8d
mov dword [rbx + 0x3c], edx
jmp 0x18004b1fa
mov r8d, dword [rsp + 0xe8]
xor r8d, edx
xor r8d, dword [rsp + 0xd0]
xor r8d, dword [rsp + 0x100]
xor r8d, dword [rsp + 0xc8]
rol r8d, 0x10
mov ecx, r8d
mov edx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
mov rcx, qword [rsp + 0x1e8]
and edx, 0xff00ff
xor edx, r8d
mov r8d, eax
xor r8d, r13d
xor r8d, dword [rsp + 0x60]
xor r8d, dword [rsp + 0x108]
mov dword [rcx], edx
xor r8d, r14d
rol r8d, 0x10
mov ecx, r8d
mov edx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
mov rcx, qword [rsp + 0x1e8]
and edx, 0xff00ff
xor edx, r8d
mov r8d, r15d
xor r8d, r11d
xor r8d, dword [rsp + 0xc0]
xor r8d, dword [rsp + 0xf0]
xor r8d, dword [rsp + 0xb8]
mov dword [rcx + 4], edx
rol r8d, 0x10
mov ecx, r8d
mov edx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
mov rcx, qword [rsp + 0x1e8]
and edx, 0xff00ff
xor edx, r8d
mov r8d, ebp
xor r8d, ebx
mov rbx, qword [rsp + 0x1e8]
xor r8d, dword [rsp + 0xb0]
xor r8d, dword [rsp + 0x98]
xor r8d, dword [rsp + 0xa8]
mov dword [rcx + 8], edx
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, r9d
xor r8d, r12d
mov dword [rbx + 0xc], edx
xor r8d, dword [rsp + 0x88]
xor r8d, dword [rsp + 0xd8]
xor r8d, dword [rsp + 0xa0]
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shr edx, 8
shl r8d, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, dword [rsp + 0x68]
xor r8d, dword [rsp + 0x20]
mov dword [rbx + 0x10], edx
xor r8d, dword [rsp + 0x80]
xor r8d, dword [rsp + 0x78]
xor r8d, dword [rsp + 0x118]
mov r11, qword [rsp + 0x90]
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, edi
mov rdi, qword [rsp + 0x58]
xor r8d, esi
xor r8d, dword [rsp + 0x70]
xor r8d, dword [rsp + 0xf8]
xor r8d, r11d
mov dword [rbx + 0x14], edx
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shl r8d, 8
shr edx, 8
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
xor edx, r8d
mov r8d, edi
xor r8d, r10d
mov dword [rbx + 0x18], edx
xor r8d, dword [rsp + 0x50]
xor r8d, dword [rsp + 0x110]
xor r8d, dword [rsp + 0x120]
rol r8d, 0x10
mov edx, r8d
mov ecx, r8d
shr edx, 8
shl ecx, 8
xor edx, ecx
shl r8d, 8
and edx, 0xff00ff
xor edx, r8d
mov dword [rbx + 0x1c], edx
jmp 0x18004b1fa
mov rbx, qword [rsp + 0x1d0]
xor ecx, ecx
mov r11, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
mov qword [rbx], rcx
mov qword [rbx + 8], rcx
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rcx
jmp 0x18004b202
mov r11, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x1d0]
mov edx, dword [rsp + 0x158]
inc edx
mov dword [rsp + 0x158], edx
cmp edx, 3
jl 0x180049b31
add rsp, 0x188
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret