Function at 0x1801ae970
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push r15
sub rsp, 0x50
mov r11d, dword [rcx + 4]
mov r10, r8
mov r8, rdx
mov r15, rcx
lea rax, [r10*8]
add qword [rcx + 0xa0], rax
mov eax, dword [rcx]
cmp r11d, 4
jae 0x1801ae9fa
mov edx, 4
mov r9d, r10d
sub edx, r11d
cmp r10, rdx
cmovae r9d, edx
add r11d, r9d
test r9d, r9d
je 0x1801ae9e7
mov ecx, r9d
sub r10, rcx
mov qword [rsp + 0x70], r10
nop
movzx ecx, byte [r8]
inc r8
shl eax, 8
or eax, ecx
add r9d, 0xffffffff
jne 0x1801ae9d0
mov qword [rsp + 0x68], r8
test r10, r10
jne 0x1801ae9fa
mov dword [r15 + 4], r11d
mov dword [r15], eax
add rsp, 0x50
pop r15
ret
mov edx, dword [r15 + 8]
xor ecx, ecx
mov qword [rsp + 0x48], rbx
mov r9d, edx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r12
lea r12, [0x180000000]
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x18], r14
test edx, edx
je 0x1801aea4a
sub r9d, 1
je 0x1801af3fd
cmp r9d, 1
je 0x1801afd9e
jmp 0x1801b0749
mov ecx, dword [r15 + 0xc]
xor dword [r15 + 0x64], ecx
mov ecx, dword [r15 + 0x6c]
xor dword [r15 + 0x10], ecx
mov ecx, dword [r15 + 0x78]
xor dword [r15 + 0x1c], ecx
mov ecx, dword [r15 + 0x84]
mov edx, dword [r15 + 0x18]
mov ebx, edx
xor dword [r15 + 0x50], edx
xor ebx, dword [r15 + 0x98]
mov r8d, dword [r15 + 0x14]
mov r11d, r8d
xor r11d, dword [r15 + 0x94]
xor dword [r15 + 0x4c], r8d
lea r8, [0x180000000]
mov r9d, dword [r15 + 0x10]
xor dword [r15 + 0x48], r9d
mov dword [rsp + 0x78], ecx
mov ecx, r9d
xor ecx, dword [r15 + 0x90]
mov r10d, ecx
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr rcx, 0x18
mov r12d, dword [r12 + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [r8 + rcx*4 + 0x47a3e0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, r10b
lea r10, [0x180000000]
mov r13d, dword [r8 + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [r10 + rcx*4 + 0x47ac00]
xor r15d, esi
mov ecx, r11d
shr rcx, 0x18
mov r14d, dword [r10 + rcx*4 + 0x47a3e0]
mov ecx, r11d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r11d
shr ecx, 8
xor ebp, dword [r10 + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [r10 + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r11b
mov ecx, dword [r10 + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, ebx
shr rcx, 0x18
mov edi, dword [r10 + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, ebx
shr ecx, 0x10
movzx edx, cl
mov ecx, ebx
shr ecx, 8
mov r8d, dword [r10 + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, bl
xor r8d, dword [r10 + rdx*4 + 0x47a800]
mov ecx, dword [r10 + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov ecx, eax
shr rcx, 0x18
mov r11d, dword [r10 + rcx*4 + 0x47a3e0]
xor r14d, r11d
mov ecx, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [r10 + rdx*4 + 0x479fe0]
xor r12d, ecx
xor r11d, ecx
mov ebx, r12d
shl ebx, 8
mov ecx, eax
shr ecx, 8
xor ebx, edi
movzx edx, cl
and ebx, 0xff0000
movzx ecx, al
mov r8d, dword [r10 + rdx*4 + 0x47a800]
xor r13d, r8d
xor r8d, dword [r10 + rcx*4 + 0x47ac00]
mov ecx, esi
xor r11d, r8d
mov r10d, r12d
xor ecx, r11d
shl r10d, 0x10
movzx edx, cl
xor r10d, r11d
mov ecx, r12d
and r10d, 0xff0000
xor ecx, ebp
shr r12d, 8
and ecx, 0xff0000
xor r12d, r15d
or edx, ecx
and r12d, 0xff0000
mov ecx, r13d
xor ecx, edi
and ecx, 0xff00
or edx, ecx
mov ecx, r14d
xor ecx, r15d
and ecx, 0xff000000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r11d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
mov dword [rdx + 0x94], ebx
movzx ecx, cl
or r10d, ecx
shr esi, 8
mov ecx, r14d
xor esi, edi
shl ecx, 0x10
xor ecx, edi
shl r14d, 0x18
and ecx, 0xff000000
xor r14d, r11d
or r10d, ecx
and r14d, 0xff000000
mov ecx, r13d
shr r13d, 8
shr ecx, 0x10
xor ecx, r15d
and ecx, 0xff00
or r10d, ecx
mov dword [rdx + 0x98], r10d
movzx edx, sil
or edx, r12d
or edx, r14d
xor r13d, ebp
mov rdi, qword [rsp + 0x60]
and r13d, 0xff00
or edx, r13d
mov ecx, ebx
xor ecx, dword [rsp + 0x78]
mov r11d, edx
mov r8d, ecx
mov r9d, r10d
xor dword [rdi + 0x44], edx
xor r9d, dword [rdi + 0x88]
xor r11d, dword [rdi + 0x8c]
xor dword [rdi + 0x3c], ebx
lea rbx, [0x180000000]
xor dword [rdi + 0x40], r10d
mov r10, qword [rsp]
shr ecx, 0x10
mov dword [rdi + 0xc], edx
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov r12d, dword [rbx + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
movzx ecx, r8b
mov r13d, dword [rbx + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, r9d
shr rcx, 0x18
xor r15d, esi
mov r14d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r9d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r9d
shr ecx, 8
xor ebp, dword [rbx + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, r11d
shr rcx, 0x18
mov edi, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr ecx, 8
mov r8d, dword [rbx + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, r11b
xor r8d, dword [rbx + rdx*4 + 0x47a800]
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov rcx, r10
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, r9d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x479fe0]
xor r9d, ecx
xor r12d, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
mov r8d, dword [rbx + rdx*4 + 0x47a800]
movzx ecx, r10b
xor r13d, r8d
mov r10d, r12d
shl r10d, 0x10
xor r8d, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, esi
xor r9d, r8d
mov ebx, r12d
xor ecx, r9d
shl ebx, 8
movzx edx, cl
xor ebx, edi
mov ecx, r12d
xor r10d, r9d
xor ecx, ebp
shr r12d, 8
and ecx, 0xff0000
and ebx, 0xff0000
or edx, ecx
and r10d, 0xff0000
mov ecx, r13d
xor r12d, r15d
xor ecx, edi
and r12d, 0xff0000
and ecx, 0xff00
or edx, ecx
mov ecx, r14d
xor ecx, r15d
and ecx, 0xff000000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
mov dword [rdx + 0x88], ebx
movzx ecx, cl
or r10d, ecx
shr esi, 8
mov ecx, r14d
xor esi, edi
shl ecx, 0x10
xor ecx, edi
shl r14d, 0x18
mov rdi, qword [rsp + 0x60]
and ecx, 0xff000000
or r10d, ecx
xor r14d, r9d
mov ecx, r13d
and r14d, 0xff000000
shr ecx, 0x10
xor ecx, r15d
shr r13d, 8
and ecx, 0xff00
xor r13d, ebp
or r10d, ecx
and r13d, 0xff00
mov dword [rdx + 0x8c], r10d
mov ecx, ebx
movzx edx, sil
or edx, r12d
or edx, r14d
or edx, r13d
xor ecx, dword [rdi + 0x78]
mov r8d, ecx
mov dword [rdi + 0x90], edx
xor dword [rdi + 0x38], edx
mov r11d, edx
xor r11d, dword [rdi + 0x80]
mov r9d, r10d
xor r9d, dword [rdi + 0x7c]
xor dword [rdi + 0x30], ebx
lea rbx, [0x180000000]
xor dword [rdi + 0x34], r10d
mov r10, qword [rsp]
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov r12d, dword [rbx + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
movzx ecx, r8b
mov r13d, dword [rbx + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, r9d
shr rcx, 0x18
xor r15d, esi
mov r14d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r9d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r9d
shr ecx, 8
xor ebp, dword [rbx + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, r11d
shr rcx, 0x18
mov edi, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr ecx, 8
mov r8d, dword [rbx + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, r11b
xor r8d, dword [rbx + rdx*4 + 0x47a800]
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov rcx, r10
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, r9d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x479fe0]
xor r9d, ecx
xor r12d, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, r10b
mov r8d, dword [rbx + rdx*4 + 0x47a800]
xor r13d, r8d
xor r8d, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, esi
xor r9d, r8d
xor ecx, r9d
movzx edx, cl
mov ecx, r12d
mov ebx, r12d
xor ecx, ebp
shl ebx, 8
and ecx, 0xff0000
xor ebx, edi
or edx, ecx
and ebx, 0xff0000
mov ecx, r13d
mov r10d, r12d
xor ecx, edi
shl r10d, 0x10
and ecx, 0xff00
shr r12d, 8
or edx, ecx
xor r10d, r9d
mov ecx, r14d
and r10d, 0xff0000
xor ecx, r15d
xor r12d, r15d
and ecx, 0xff000000
and r12d, 0xff0000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
shr esi, 8
movzx ecx, cl
xor esi, edi
or r10d, ecx
mov dword [rdx + 0x7c], ebx
mov ecx, r14d
movzx r8d, sil
shl ecx, 0x10
or r8d, r12d
xor ecx, edi
shl r14d, 0x18
and ecx, 0xff000000
xor r14d, r9d
or r10d, ecx
and r14d, 0xff000000
mov ecx, r13d
or r8d, r14d
shr ecx, 0x10
xor ecx, r15d
shr r13d, 8
mov r15, rdx
and ecx, 0xff00
or r10d, ecx
xor r13d, ebp
mov ecx, dword [rsp + 0x78]
and r13d, 0xff00
or r8d, r13d
mov dword [rdx + 0x80], r10d
xor dword [r15 + 0x24], ebx
mov r9d, r10d
xor r9d, dword [r15 + 0x70]
mov r11d, r8d
xor r11d, dword [r15 + 0x74]
xor ecx, dword [r15 + 0x28]
mov dword [rdx + 0x84], r8d
mov edx, dword [rdx + 0x6c]
xor edx, ebx
xor ecx, r10d
xor r8d, dword [r15 + 0x2c]
lea r12, [0x180000000]
xor r8d, eax
mov dword [r15 + 0x28], ecx
mov eax, edx
mov dword [r15 + 0x2c], r8d
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
mov ebp, dword [r12 + rcx*4 + 0x479fe0]
mov esi, ebp
xor esi, dword [r12 + rax*4 + 0x47a3e0]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
mov r14d, dword [r12 + rcx*4 + 0x47a800]
xor esi, r14d
mov r10d, dword [r12 + rax*4 + 0x47ac00]
mov eax, r9d
shr rax, 0x18
xor esi, r10d
mov edi, dword [r12 + rax*4 + 0x47a3e0]
mov eax, r9d
shr eax, 0x10
mov ebx, edi
movzx ecx, al
mov eax, r9d
shr eax, 8
xor ebx, dword [r12 + rcx*4 + 0x479fe0]
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x47a800]
xor ebx, eax
xor r14d, eax
movzx eax, r9b
mov eax, dword [r12 + rax*4 + 0x47ac00]
xor r10d, eax
xor ebx, eax
mov eax, r11d
shr rax, 0x18
mov r9d, dword [r12 + rax*4 + 0x47a3e0]
xor edi, r9d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
shr eax, 8
mov edx, dword [r12 + rcx*4 + 0x479fe0]
xor ebp, edx
movzx ecx, al
movzx eax, r11b
mov r11, qword [rsp]
xor edx, dword [r12 + rcx*4 + 0x47a800]
mov eax, dword [r12 + rax*4 + 0x47ac00]
xor r9d, edx
xor r9d, eax
xor r10d, eax
mov rax, r11
shr rax, 0x18
mov r8d, dword [r12 + rax*4 + 0x47a3e0]
xor edi, r8d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x479fe0]
xor r8d, eax
xor ebp, eax
mov eax, r11d
shr eax, 8
movzx ecx, al
movzx eax, r11b
mov edx, dword [r12 + rcx*4 + 0x47a800]
xor r14d, edx
xor edx, dword [r12 + rax*4 + 0x47ac00]
mov eax, r10d
xor r8d, edx
xor eax, r8d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [r15 + 0x6c], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 8
xor ecx, r9d
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, r8d
and eax, 0xff00
or ecx, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
mov dword [r15 + 0x70], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 0x10
xor ecx, r8d
shr r10d, 8
and ecx, 0xff0000
shr ebp, 8
or ecx, eax
xor r10d, r9d
mov eax, edi
xor ebp, esi
shl eax, 0x10
and ebp, 0xff0000
xor eax, r9d
shl edi, 0x18
and eax, 0xff000000
xor edi, r8d
mov r8, qword [rsp + 0x68]
or ecx, eax
mov eax, r14d
and edi, 0xff000000
shr eax, 0x10
xor eax, esi
shr r14d, 8
and eax, 0xff00
xor r14d, ebx
or ecx, eax
and r14d, 0xff00
movzx eax, r10b
mov r10, qword [rsp + 0x70]
or eax, ebp
or eax, edi
mov dword [r15 + 0x74], ecx
or eax, r14d
mov dword [r15 + 0x78], eax
cmp r10, 4
jbe 0x1801b0742
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0x68], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r10, 4
mov qword [rsp + 0x70], r10
mov ecx, dword [r15 + 0x6c]
xor dword [r15 + 0x34], ecx
mov ecx, dword [r15 + 0x3c]
xor dword [r15 + 0x70], ecx
mov ecx, dword [r15 + 0x48]
xor dword [r15 + 0x7c], ecx
mov ecx, dword [r15 + 0x54]
mov edx, dword [r15 + 0x78]
mov ebx, edx
xor dword [r15 + 0x20], edx
xor ebx, dword [r15 + 0x68]
mov r8d, dword [r15 + 0x74]
mov r11d, r8d
xor r11d, dword [r15 + 0x64]
xor dword [r15 + 0x1c], r8d
lea r8, [0x180000000]
mov r9d, dword [r15 + 0x70]
xor dword [r15 + 0x18], r9d
mov dword [rsp + 0x78], ecx
mov ecx, r9d
xor ecx, dword [r15 + 0x60]
mov r10d, ecx
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr rcx, 0x18
mov r12d, dword [r12 + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [r8 + rcx*4 + 0x47a3e0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, r10b
lea r10, [0x180000000]
mov r13d, dword [r8 + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [r10 + rcx*4 + 0x47ac00]
xor r15d, esi
mov ecx, r11d
shr rcx, 0x18
mov r14d, dword [r10 + rcx*4 + 0x47a3e0]
mov ecx, r11d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r11d
shr ecx, 8
xor ebp, dword [r10 + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [r10 + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r11b
mov ecx, dword [r10 + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, ebx
shr rcx, 0x18
mov edi, dword [r10 + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, ebx
shr ecx, 0x10
movzx edx, cl
mov ecx, ebx
shr ecx, 8
mov r8d, dword [r10 + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, bl
xor r8d, dword [r10 + rdx*4 + 0x47a800]
mov ecx, dword [r10 + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov ecx, eax
shr rcx, 0x18
mov r11d, dword [r10 + rcx*4 + 0x47a3e0]
xor r14d, r11d
mov ecx, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [r10 + rdx*4 + 0x479fe0]
xor r12d, ecx
xor r11d, ecx
mov ebx, r12d
shl ebx, 8
mov ecx, eax
shr ecx, 8
xor ebx, edi
movzx edx, cl
and ebx, 0xff0000
movzx ecx, al
mov r8d, dword [r10 + rdx*4 + 0x47a800]
xor r13d, r8d
xor r8d, dword [r10 + rcx*4 + 0x47ac00]
mov ecx, esi
xor r11d, r8d
mov r10d, r12d
xor ecx, r11d
shl r10d, 0x10
movzx edx, cl
xor r10d, r11d
mov ecx, r12d
and r10d, 0xff0000
xor ecx, ebp
shr r12d, 8
and ecx, 0xff0000
xor r12d, r15d
or edx, ecx
and r12d, 0xff0000
mov ecx, r13d
xor ecx, edi
and ecx, 0xff00
or edx, ecx
mov ecx, r14d
xor ecx, r15d
and ecx, 0xff000000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r11d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
mov dword [rdx + 0x64], ebx
movzx ecx, cl
or r10d, ecx
shr esi, 8
mov ecx, r14d
xor esi, edi
shl ecx, 0x10
xor ecx, edi
shl r14d, 0x18
and ecx, 0xff000000
xor r14d, r11d
or r10d, ecx
and r14d, 0xff000000
mov ecx, r13d
shr r13d, 8
shr ecx, 0x10
xor ecx, r15d
and ecx, 0xff00
or r10d, ecx
mov dword [rdx + 0x68], r10d
movzx edx, sil
or edx, r12d
or edx, r14d
xor r13d, ebp
mov rdi, qword [rsp + 0x60]
and r13d, 0xff00
or edx, r13d
mov ecx, ebx
xor ecx, dword [rsp + 0x78]
mov r11d, edx
mov r8d, ecx
mov r9d, r10d
xor dword [rdi + 0x14], edx
xor r9d, dword [rdi + 0x58]
xor r11d, dword [rdi + 0x5c]
xor dword [rdi + 0xc], ebx
lea rbx, [0x180000000]
xor dword [rdi + 0x10], r10d
mov r10, qword [rsp]
shr ecx, 0x10
mov dword [rdi + 0x6c], edx
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov r12d, dword [rbx + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
movzx ecx, r8b
mov r13d, dword [rbx + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, r9d
shr rcx, 0x18
xor r15d, esi
mov r14d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r9d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r9d
shr ecx, 8
xor ebp, dword [rbx + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, r11d
shr rcx, 0x18
mov edi, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr ecx, 8
mov r8d, dword [rbx + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, r11b
xor r8d, dword [rbx + rdx*4 + 0x47a800]
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov rcx, r10
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, r9d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x479fe0]
xor r9d, ecx
xor r12d, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
mov r8d, dword [rbx + rdx*4 + 0x47a800]
movzx ecx, r10b
xor r13d, r8d
mov r10d, r12d
shl r10d, 0x10
xor r8d, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, esi
xor r9d, r8d
mov ebx, r12d
xor ecx, r9d
shl ebx, 8
movzx edx, cl
xor ebx, edi
mov ecx, r12d
xor r10d, r9d
xor ecx, ebp
shr r12d, 8
and ecx, 0xff0000
and ebx, 0xff0000
or edx, ecx
and r10d, 0xff0000
mov ecx, r13d
xor r12d, r15d
xor ecx, edi
and r12d, 0xff0000
and ecx, 0xff00
or edx, ecx
mov ecx, r14d
xor ecx, r15d
and ecx, 0xff000000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
mov dword [rdx + 0x58], ebx
movzx ecx, cl
or r10d, ecx
shr esi, 8
mov ecx, r14d
xor esi, edi
shl ecx, 0x10
xor ecx, edi
shl r14d, 0x18
mov rdi, qword [rsp + 0x60]
and ecx, 0xff000000
or r10d, ecx
xor r14d, r9d
mov ecx, r13d
and r14d, 0xff000000
shr ecx, 0x10
xor ecx, r15d
shr r13d, 8
and ecx, 0xff00
xor r13d, ebp
or r10d, ecx
and r13d, 0xff00
mov dword [rdx + 0x5c], r10d
mov ecx, ebx
movzx edx, sil
or edx, r12d
or edx, r14d
or edx, r13d
xor ecx, dword [rdi + 0x48]
mov r8d, ecx
mov dword [rdi + 0x60], edx
xor dword [rdi + 0x98], edx
mov r11d, edx
xor r11d, dword [rdi + 0x50]
mov r9d, r10d
xor r9d, dword [rdi + 0x4c]
xor dword [rdi + 0x90], ebx
lea rbx, [0x180000000]
xor dword [rdi + 0x94], r10d
mov r10, qword [rsp]
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov r12d, dword [rbx + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
movzx ecx, r8b
mov r13d, dword [rbx + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, r9d
shr rcx, 0x18
xor r15d, esi
mov r14d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r9d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r9d
shr ecx, 8
xor ebp, dword [rbx + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, r11d
shr rcx, 0x18
mov edi, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr ecx, 8
mov r8d, dword [rbx + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, r11b
xor r8d, dword [rbx + rdx*4 + 0x47a800]
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov rcx, r10
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x47a3e0]
xor r14d, r9d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x479fe0]
xor r9d, ecx
xor r12d, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, r10b
mov r8d, dword [rbx + rdx*4 + 0x47a800]
xor r13d, r8d
xor r8d, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, esi
xor r9d, r8d
xor ecx, r9d
movzx edx, cl
mov ecx, r12d
mov ebx, r12d
xor ecx, ebp
shl ebx, 8
and ecx, 0xff0000
xor ebx, edi
or edx, ecx
and ebx, 0xff0000
mov ecx, r13d
mov r10d, r12d
xor ecx, edi
shl r10d, 0x10
and ecx, 0xff00
shr r12d, 8
or edx, ecx
xor r10d, r9d
mov ecx, r14d
and r10d, 0xff0000
xor ecx, r15d
xor r12d, r15d
and ecx, 0xff000000
and r12d, 0xff0000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
shr esi, 8
movzx ecx, cl
xor esi, edi
or r10d, ecx
movzx r8d, sil
mov ecx, r14d
mov dword [rdx + 0x4c], ebx
shl ecx, 0x10
or r8d, r12d
xor ecx, edi
shl r14d, 0x18
and ecx, 0xff000000
xor r14d, r9d
or r10d, ecx
and r14d, 0xff000000
mov ecx, r13d
or r8d, r14d
shr ecx, 0x10
xor ecx, r15d
shr r13d, 8
mov r15, rdx
and ecx, 0xff00
or r10d, ecx
xor r13d, ebp
mov r9d, r10d
mov dword [rdx + 0x50], r10d
and r13d, 0xff00
mov ecx, ebx
xor ecx, dword [rdx + 0x3c]
or r8d, r13d
xor r9d, dword [r15 + 0x40]
mov r11d, r8d
xor r11d, dword [r15 + 0x44]
xor dword [r15 + 0x84], ebx
xor r10d, dword [r15 + 0x88]
xor r10d, dword [rsp + 0x78]
mov dword [rdx + 0x54], r8d
mov edx, ecx
xor r8d, dword [r15 + 0x8c]
lea r12, [0x180000000]
xor r8d, eax
mov dword [r15 + 0x88], r10d
mov eax, ecx
mov dword [r15 + 0x8c], r8d
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
mov ebp, dword [r12 + rcx*4 + 0x479fe0]
mov esi, ebp
xor esi, dword [r12 + rax*4 + 0x47a3e0]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
mov r14d, dword [r12 + rcx*4 + 0x47a800]
xor esi, r14d
mov r10d, dword [r12 + rax*4 + 0x47ac00]
mov eax, r9d
shr rax, 0x18
xor esi, r10d
mov edi, dword [r12 + rax*4 + 0x47a3e0]
mov eax, r9d
shr eax, 0x10
mov ebx, edi
movzx ecx, al
mov eax, r9d
shr eax, 8
xor ebx, dword [r12 + rcx*4 + 0x479fe0]
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x47a800]
xor ebx, eax
xor r14d, eax
movzx eax, r9b
mov eax, dword [r12 + rax*4 + 0x47ac00]
xor r10d, eax
xor ebx, eax
mov eax, r11d
shr rax, 0x18
mov r9d, dword [r12 + rax*4 + 0x47a3e0]
xor edi, r9d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
shr eax, 8
mov edx, dword [r12 + rcx*4 + 0x479fe0]
xor ebp, edx
movzx ecx, al
movzx eax, r11b
mov r11, qword [rsp]
xor edx, dword [r12 + rcx*4 + 0x47a800]
mov eax, dword [r12 + rax*4 + 0x47ac00]
xor r9d, edx
xor r9d, eax
xor r10d, eax
mov rax, r11
shr rax, 0x18
mov r8d, dword [r12 + rax*4 + 0x47a3e0]
xor edi, r8d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x479fe0]
xor r8d, eax
xor ebp, eax
mov eax, r11d
shr eax, 8
movzx ecx, al
movzx eax, r11b
mov edx, dword [r12 + rcx*4 + 0x47a800]
xor r14d, edx
xor edx, dword [r12 + rax*4 + 0x47ac00]
mov eax, r10d
xor r8d, edx
xor eax, r8d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [r15 + 0x3c], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 8
xor ecx, r9d
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, r8d
and eax, 0xff00
or ecx, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
mov dword [r15 + 0x40], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 0x10
xor ecx, r8d
shr r10d, 8
and ecx, 0xff0000
shr ebp, 8
or ecx, eax
xor r10d, r9d
mov eax, edi
xor ebp, esi
shl eax, 0x10
and ebp, 0xff0000
xor eax, r9d
shl edi, 0x18
and eax, 0xff000000
xor edi, r8d
mov r8, qword [rsp + 0x68]
or ecx, eax
mov eax, r14d
and edi, 0xff000000
shr eax, 0x10
xor eax, esi
shr r14d, 8
and eax, 0xff00
xor r14d, ebx
or ecx, eax
and r14d, 0xff00
movzx eax, r10b
mov r10, qword [rsp + 0x70]
or eax, ebp
or eax, edi
mov dword [r15 + 0x44], ecx
or eax, r14d
mov dword [r15 + 0x48], eax
cmp r10, 4
jbe 0x1801b073b
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0x68], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r10, 4
mov qword [rsp + 0x70], r10
mov ecx, dword [r15 + 0x3c]
xor dword [r15 + 0x94], ecx
mov ecx, dword [r15 + 0xc]
xor dword [r15 + 0x40], ecx
mov ecx, dword [r15 + 0x18]
xor dword [r15 + 0x4c], ecx
mov ecx, dword [r15 + 0x24]
mov edx, dword [r15 + 0x48]
mov ebx, edx
xor dword [r15 + 0x80], edx
xor ebx, dword [r15 + 0x38]
mov r8d, dword [r15 + 0x44]
mov r11d, r8d
xor r11d, dword [r15 + 0x34]
xor dword [r15 + 0x7c], r8d
lea r8, [0x180000000]
mov r9d, dword [r15 + 0x40]
xor dword [r15 + 0x78], r9d
mov dword [rsp + 0x78], ecx
mov ecx, r9d
xor ecx, dword [r15 + 0x30]
mov r10d, ecx
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr rcx, 0x18
mov r12d, dword [r12 + rdx*4 + 0x479fe0]
mov r15d, r12d
xor r15d, dword [r8 + rcx*4 + 0x47a3e0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, r10b
lea r10, [0x180000000]
mov r13d, dword [r8 + rdx*4 + 0x47a800]
xor r15d, r13d
mov esi, dword [r10 + rcx*4 + 0x47ac00]
xor r15d, esi
mov ecx, r11d
shr rcx, 0x18
mov r14d, dword [r10 + rcx*4 + 0x47a3e0]
mov ecx, r11d
shr ecx, 0x10
mov ebp, r14d
movzx edx, cl
mov ecx, r11d
shr ecx, 8
xor ebp, dword [r10 + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [r10 + rdx*4 + 0x47a800]
xor ebp, ecx
xor r13d, ecx
movzx ecx, r11b
mov ecx, dword [r10 + rcx*4 + 0x47ac00]
xor esi, ecx
xor ebp, ecx
mov ecx, ebx
shr rcx, 0x18
mov edi, dword [r10 + rcx*4 + 0x47a3e0]
xor r14d, edi
mov ecx, ebx
shr ecx, 0x10
movzx edx, cl
mov ecx, ebx
shr ecx, 8
mov r8d, dword [r10 + rdx*4 + 0x479fe0]
xor r12d, r8d
movzx edx, cl
movzx ecx, bl
xor r8d, dword [r10 + rdx*4 + 0x47a800]
mov ecx, dword [r10 + rcx*4 + 0x47ac00]
xor edi, r8d
xor edi, ecx
xor esi, ecx
mov ecx, eax
shr rcx, 0x18
mov r11d, dword [r10 + rcx*4 + 0x47a3e0]
xor r14d, r11d
mov ecx, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [r10 + rdx*4 + 0x479fe0]
xor r12d, ecx
xor r11d, ecx
mov ebx, r12d
shl ebx, 8
mov ecx, eax
shr ecx, 8
xor ebx, edi
movzx edx, cl
and ebx, 0xff0000
movzx ecx, al
mov r8d, dword [r10 + rdx*4 + 0x47a800]
xor r13d, r8d
xor r8d, dword [r10 + rcx*4 + 0x47ac00]
mov ecx, esi
xor r11d, r8d
mov r10d, r12d
xor ecx, r11d
shl r10d, 0x10
movzx edx, cl
xor r10d, r11d
mov ecx, r12d
and r10d, 0xff0000
xor ecx, ebp
shr r12d, 8
and ecx, 0xff0000
xor r12d, r15d
or edx, ecx
and r12d, 0xff0000
mov ecx, r13d
xor ecx, edi
and ecx, 0xff00
or edx, ecx
mov ecx, r14d
xor ecx, r15d
and ecx, 0xff000000
or ecx, edx
mov rdx, qword [rsp + 0x60]
mov qword [rsp], rcx
mov ecx, esi
shr ecx, 0x18
xor ecx, r15d
movzx ecx, cl
or ebx, ecx
mov ecx, r13d
shl ecx, 8
xor ecx, r11d
and ecx, 0xff00
or ebx, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or ebx, ecx
mov ecx, esi
shr ecx, 0x10
xor ecx, ebp
mov dword [rdx + 0x34], ebx
movzx ecx, cl
or r10d, ecx
shr esi, 8
mov ecx, r14d
xor esi, edi
shl ecx, 0x10
xor ecx, edi
shl r14d, 0x18
and ecx, 0xff000000
xor r14d, r11d
or r10d, ecx
and r14d, 0xff000000
mov ecx, r13d
shr r13d, 8
shr ecx, 0x10
xor ecx, r15d
and ecx, 0xff00
or r10d, ecx
mov dword [rdx + 0x38], r10d
movzx edx, sil
or edx, r12d
or edx, r14d
xor r13d, ebp
mov r12, qword [rsp + 0x60]
mov ecx, ebx
xor ecx, dword [rsp + 0x78]
mov r9d, r10d
mov r8d, ecx
and r13d, 0xff00
shr ecx, 0x10
or edx, r13d
xor dword [r12 + 0x74], edx
lea r13, [0x180000000]
xor r9d, dword [r12 + 0x28]
mov r11d, edx
xor r11d, dword [r12 + 0x2c]
xor dword [r12 + 0x6c], ebx
xor dword [r12 + 0x70], r10d
mov dword [r12 + 0x3c], edx
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov r14d, dword [r13 + rdx*4 + 0x479fe0]
mov esi, r14d
xor esi, dword [r13 + rcx*4 + 0x47a3e0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
movzx ecx, r8b
mov ebp, dword [r13 + rdx*4 + 0x47a800]
xor esi, ebp
mov edi, dword [r13 + rcx*4 + 0x47ac00]
mov ecx, r9d
shr rcx, 0x18
xor esi, edi
mov r15d, dword [r13 + rcx*4 + 0x47a3e0]
mov ecx, r9d
shr ecx, 0x10
mov ebx, r15d
movzx edx, cl
mov ecx, r9d
shr ecx, 8
xor ebx, dword [r13 + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [r13 + rdx*4 + 0x47a800]
xor ebx, ecx
xor ebp, ecx
movzx ecx, r9b
mov ecx, dword [r13 + rcx*4 + 0x47ac00]
xor edi, ecx
xor ebx, ecx
mov ecx, r11d
shr rcx, 0x18
mov r10d, dword [r13 + rcx*4 + 0x47a3e0]
xor r15d, r10d
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr ecx, 8
mov r8d, dword [r13 + rdx*4 + 0x479fe0]
xor r14d, r8d
movzx edx, cl
movzx ecx, r11b
mov r11, qword [rsp]
xor r10d, dword [r13 + rdx*4 + 0x47a800]
mov ecx, dword [r13 + rcx*4 + 0x47ac00]
xor r10d, r8d
xor r10d, ecx
xor edi, ecx
mov rcx, r11
shr rcx, 0x18
mov r9d, dword [r13 + rcx*4 + 0x47a3e0]
xor r15d, r9d
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [r13 + rdx*4 + 0x479fe0]
xor r9d, ecx
xor r14d, ecx
mov ecx, r11d
shr ecx, 8
movzx edx, cl
mov r8d, dword [r13 + rdx*4 + 0x47a800]
movzx ecx, r11b
xor ebp, r8d
mov r11d, r15d
shl r11d, 8
xor r11d, ebx
xor r9d, dword [r13 + rcx*4 + 0x47ac00]
and r11d, 0xff000000
xor r9d, r8d
mov r13d, r15d
xor r13d, esi
mov ecx, r9d
xor ecx, edi
and r13d, 0xff000000
movzx edx, cl
mov ecx, ebx
xor ecx, r14d
or r13d, edx
and ecx, 0xff0000
mov edx, r15d
or r13d, ecx
shl edx, 0x10
xor edx, r10d
shl r15d, 0x18
xor r15d, r9d
and edx, 0xff000000
and r15d, 0xff000000
mov ecx, r10d
xor ecx, ebp
and ecx, 0xff00
or r13d, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, r10d
and ecx, 0xff0000
or r11d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, esi
movzx ecx, cl
or r11d, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or r11d, ecx
mov ecx, r14d
shl ecx, 0x10
xor ecx, r9d
shr r14d, 8
and ecx, 0xff0000
mov dword [r12 + 0x28], r11d
or edx, ecx
xor r14d, esi
mov ecx, edi
and r14d, 0xff0000
shr ecx, 0x10
xor ecx, ebx
shr edi, 8
movzx ecx, cl
xor edi, r10d
or edx, ecx
mov ecx, ebp
shr ecx, 0x10
xor ecx, esi
shr ebp, 8
and ecx, 0xff00
xor ebp, ebx
or edx, ecx
and ebp, 0xff00
movzx ecx, dil
mov r9d, edx
or r15d, ecx
mov dword [r12 + 0x2c], edx
mov ecx, dword [r12 + 0x18]
or r15d, r14d
or r15d, ebp
xor ecx, r11d
xor r9d, dword [r12 + 0x1c]
mov r10d, r15d
mov dword [r12 + 0x30], r15d
mov r8d, ecx
xor dword [r12 + 0x64], edx
lea rbx, [0x180000000]
xor r10d, dword [r12 + 0x20]
xor dword [r12 + 0x68], r15d
xor dword [r12 + 0x60], r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov r15d, dword [rbx + rdx*4 + 0x479fe0]
mov r14d, r15d
xor r14d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
movzx ecx, r8b
mov r12d, dword [rbx + rdx*4 + 0x47a800]
xor r14d, r12d
mov edi, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, r9d
shr rcx, 0x18
xor r14d, edi
mov ebp, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r9d
shr ecx, 0x10
mov esi, ebp
movzx edx, cl
mov ecx, r9d
shr ecx, 8
xor esi, dword [rbx + rdx*4 + 0x479fe0]
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x47a800]
xor esi, ecx
xor r12d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor edi, ecx
xor esi, ecx
mov ecx, r10d
shr rcx, 0x18
mov r11d, dword [rbx + rcx*4 + 0x47a3e0]
xor ebp, r11d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr ecx, 8
mov r8d, dword [rbx + rdx*4 + 0x479fe0]
xor r15d, r8d
movzx edx, cl
movzx ecx, r10b
xor r8d, dword [rbx + rdx*4 + 0x47a800]
mov ecx, dword [rbx + rcx*4 + 0x47ac00]
xor r11d, r8d
xor r11d, ecx
xor edi, ecx
mov ecx, r13d
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x47a3e0]
mov ecx, r13d
shr ecx, 0x10
xor ebp, r9d
movzx edx, cl
mov ecx, dword [rbx + rdx*4 + 0x479fe0]
xor r9d, ecx
xor r15d, ecx
mov ecx, r13d
shr ecx, 8
movzx edx, cl
movzx ecx, r13b
mov r8d, dword [rbx + rdx*4 + 0x47a800]
xor r12d, r8d
xor r8d, dword [rbx + rcx*4 + 0x47ac00]
mov ecx, edi
xor r9d, r8d
xor ecx, r9d
movzx r13d, cl
mov ecx, r15d
xor ecx, esi
and ecx, 0xff0000
or r13d, ecx
mov rdx, qword [rsp + 0x60]
mov ebx, r15d
shl ebx, 8
mov ecx, r12d
xor ecx, r11d
xor ebx, r11d
and ecx, 0xff00
mov r10d, r15d
or r13d, ecx
shl r10d, 0x10
xor r10d, r9d
shr r15d, 8
and r10d, 0xff0000
mov ecx, ebp
xor ecx, r14d
and ebx, 0xff0000
and ecx, 0xff000000
xor r15d, r14d
or r13d, ecx
and r15d, 0xff0000
mov ecx, edi
shr ecx, 0x18
xor ecx, r14d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
shr edi, 8
movzx ecx, cl
xor edi, r11d
or r10d, ecx
movzx r8d, dil
or r8d, r15d
mov dword [rdx + 0x1c], ebx
mov r15, rdx
mov ecx, ebp
shl ecx, 0x10
xor ecx, r11d
shl ebp, 0x18
and ecx, 0xff000000
xor ebp, r9d
xor dword [r15 + 0x54], ebx
or r10d, ecx
mov ecx, r12d
and ebp, 0xff000000
shr ecx, 0x10
or r8d, ebp
xor ecx, r14d
shr r12d, 8
and ecx, 0xff00
xor r12d, esi
or r10d, ecx
and r12d, 0xff00
mov ecx, dword [rdx + 0xc]
or r8d, r12d
mov dword [rdx + 0x20], r10d
mov r9d, r10d
xor r10d, dword [r15 + 0x58]
mov r11d, r8d
xor r10d, dword [rsp + 0x78]
xor ecx, ebx
xor r9d, dword [r15 + 0x10]
xor r11d, dword [r15 + 0x14]
mov dword [rdx + 0x24], r8d
xor r8d, dword [r15 + 0x5c]
xor r8d, eax
mov edx, ecx
mov dword [r15 + 0x5c], r8d
mov eax, ecx
mov dword [r15 + 0x58], r10d
shr eax, 0x10
lea r12, [0x180000000]
movzx ecx, al
mov eax, edx
shr rax, 0x18
mov ebp, dword [r12 + rcx*4 + 0x479fe0]
mov esi, ebp
xor esi, dword [r12 + rax*4 + 0x47a3e0]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
mov r14d, dword [r12 + rcx*4 + 0x47a800]
xor esi, r14d
mov r10d, dword [r12 + rax*4 + 0x47ac00]
mov eax, r9d
shr rax, 0x18
xor esi, r10d
mov edi, dword [r12 + rax*4 + 0x47a3e0]
mov eax, r9d
shr eax, 0x10
mov ebx, edi
movzx ecx, al
mov eax, r9d
shr eax, 8
xor ebx, dword [r12 + rcx*4 + 0x479fe0]
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x47a800]
xor ebx, eax
xor r14d, eax
movzx eax, r9b
mov eax, dword [r12 + rax*4 + 0x47ac00]
xor r10d, eax
xor ebx, eax
mov eax, r11d
shr rax, 0x18
mov r9d, dword [r12 + rax*4 + 0x47a3e0]
xor edi, r9d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
shr eax, 8
mov edx, dword [r12 + rcx*4 + 0x479fe0]
xor ebp, edx
movzx ecx, al
movzx eax, r11b
xor edx, dword [r12 + rcx*4 + 0x47a800]
mov eax, dword [r12 + rax*4 + 0x47ac00]
xor r9d, edx
xor r9d, eax
xor r10d, eax
mov eax, r13d
shr rax, 0x18
mov r8d, dword [r12 + rax*4 + 0x47a3e0]
xor edi, r8d
mov eax, r13d
shr eax, 0x10
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x479fe0]
xor r8d, eax
xor ebp, eax
mov eax, r13d
shr eax, 8
movzx ecx, al
movzx eax, r13b
mov edx, dword [r12 + rcx*4 + 0x47a800]
xor r14d, edx
xor edx, dword [r12 + rax*4 + 0x47ac00]
mov eax, r10d
xor r8d, edx
xor eax, r8d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [r15 + 0xc], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 8
xor ecx, r9d
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, r8d
and eax, 0xff00
or ecx, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
mov dword [r15 + 0x10], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 0x10
xor ecx, r8d
shr r10d, 8
and ecx, 0xff0000
shr ebp, 8
or ecx, eax
xor r10d, r9d
mov eax, edi
xor ebp, esi
shl eax, 0x10
and ebp, 0xff0000
xor eax, r9d
shl edi, 0x18
and eax, 0xff000000
xor edi, r8d
mov r8, qword [rsp + 0x68]
or ecx, eax
mov eax, r14d
and edi, 0xff000000
shr eax, 0x10
xor eax, esi
shr r14d, 8
and eax, 0xff00
xor r14d, ebx
or ecx, eax
and r14d, 0xff00
movzx eax, r10b
mov r10, qword [rsp + 0x70]
or eax, ebp
or eax, edi
mov dword [r15 + 0x14], ecx
or eax, r14d
mov dword [r15 + 0x18], eax
cmp r10, 4
jbe 0x1801b0735
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0x68], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r10, 4
mov qword [rsp + 0x70], r10
jmp 0x1801aea4a
xor ecx, ecx
mov edx, ecx
jmp 0x1801b0749
mov edx, 2
jmp 0x1801b0747
mov edx, 1
xor ecx, ecx
mov r14, qword [rsp + 0x18]
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov dword [r15 + 4], r10d
test r10, r10
je 0x1801b0793
nop word [rax + rax]
movzx eax, byte [r8]
lea r8, [r8 + 1]
shl ecx, 8
or ecx, eax
sub r10, 1
jne 0x1801b0780
mov dword [r15 + 8], edx
mov dword [r15], ecx
add rsp, 0x50
pop r15
ret