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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xc8
mov r11d, dword [rcx + 4]
mov r9, r8
mov r8, rcx
lea rax, [r9*8]
add qword [rcx + 0xa0], rax
mov eax, dword [rcx]
cmp r11d, 4
jae 0x18001d7cd
mov r10d, 4
sub r10d, r11d
mov ecx, r10d
cmp r9, rcx
cmovb r10d, r9d
add r11d, r10d
test r10d, r10d
je 0x18001d7b9
mov ecx, r10d
sub r9, rcx
mov qword [rsp + 0xe0], r9
movzx ecx, byte [rdx]
inc rdx
shl eax, 8
or eax, ecx
add r10d, 0xffffffff
jne 0x18001d7a0
mov qword [rsp + 0xd8], rdx
test r9, r9
jne 0x18001d7cd
mov dword [r8], eax
mov dword [r8 + 4], r11d
add rsp, 0xc8
ret
mov ecx, dword [r8 + 0xc]
mov r11d, dword [r8 + 8]
mov r10d, r11d
mov dword [rsp + 0x34], ecx
mov ecx, dword [r8 + 0x10]
mov dword [rsp + 0x48], ecx
mov ecx, dword [r8 + 0x18]
mov dword [rsp + 0x20], ecx
mov ecx, dword [r8 + 0x1c]
mov dword [rsp + 0x6c], ecx
mov ecx, dword [r8 + 0x20]
mov dword [rsp + 0x5c], ecx
mov ecx, dword [r8 + 0x24]
mov dword [rsp + 0x4c], ecx
mov ecx, dword [r8 + 0x28]
mov dword [rsp + 0x50], ecx
mov ecx, dword [r8 + 0x30]
mov dword [rsp + 0x3c], ecx
mov ecx, dword [r8 + 0x34]
mov dword [rsp + 0x54], ecx
mov ecx, dword [r8 + 0x38]
mov dword [rsp + 0x60], ecx
mov ecx, dword [r8 + 0x3c]
mov dword [rsp + 0x58], ecx
mov ecx, dword [r8 + 0x48]
mov dword [rsp + 0x40], ecx
mov ecx, dword [r8 + 0x4c]
mov dword [rsp + 0x70], ecx
mov ecx, dword [r8 + 0x50]
mov dword [rsp + 0x64], ecx
mov ecx, dword [r8 + 0x54]
mov dword [rsp + 0x24], ecx
mov ecx, dword [r8 + 0x60]
mov qword [rsp + 0xc0], rbx
mov ebx, dword [r8 + 0x58]
mov dword [rsp + 0x10], ecx
mov ecx, dword [r8 + 0x64]
mov qword [rsp + 0xb8], rbp
mov ebp, dword [r8 + 0x40]
mov dword [rsp + 0x74], ecx
mov ecx, dword [r8 + 0x68]
mov qword [rsp + 0xb0], rsi
mov esi, dword [r8 + 0x44]
mov dword [rsp + 0x68], ecx
mov ecx, dword [r8 + 0x6c]
mov qword [rsp + 0xa8], rdi
mov edi, dword [r8 + 0x70]
mov dword [rsp + 0x38], ecx
mov ecx, dword [r8 + 0x78]
mov qword [rsp + 0xa0], r12
mov r12d, dword [r8 + 0x74]
mov dword [rsp + 0x44], ecx
mov ecx, dword [r8 + 0x7c]
mov qword [rsp + 0x98], r13
mov r13d, dword [r8 + 0x2c]
mov dword [rsp + 0x78], ecx
mov ecx, dword [r8 + 0x80]
mov qword [rsp + 0x90], r14
mov r14d, dword [r8 + 0x14]
mov dword [rsp + 0x7c], ecx
xor ecx, ecx
mov qword [rsp + 0x88], r15
mov r15d, dword [r8 + 0x5c]
mov dword [rsp + 4], r14d
mov dword [rsp + 0x1c], r13d
mov dword [rsp + 0xc], ebp
mov dword [rsp + 0xe8], esi
mov dword [rsp], ebx
mov dword [rsp + 0x18], r15d
mov dword [rsp + 8], edi
mov dword [rsp + 0x14], r12d
test r11d, r11d
je 0x18001deac
sub r10d, 1
je 0x18001e410
sub r10d, 1
je 0x18001e972
sub r10d, 1
je 0x18001eede
cmp r10d, 1
jne 0x18001f4e9
mov r12d, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x20]
xor ebx, r13d
mov edi, dword [rsp + 0x34]
xor esi, eax
mov r9d, dword [rsp + 0x3c]
xor r12d, edi
xor dword [rsp + 0x24], r12d
xor r15d, r9d
mov ebp, dword [rsp + 0x70]
xor ebp, dword [rsp + 0x4c]
mov r8d, r12d
xor r8, rcx
mov dword [rsp], ebx
mov rcx, r8
mov dword [rsp + 0x18], r15d
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0xe8], esi
lea rsi, [0x180000000]
mov r11d, dword [rsi + rdx*4 + 0xa0540]
mov ebx, dword [rsi + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 8
xor ebx, r11d
movzx edx, cl
movzx ecx, r8b
mov r8d, r13d
mov r10d, dword [rsi + rdx*4 + 0xa0da0]
xor ebx, r10d
mov r12d, dword [rsi + rcx*4 + 0xa0960]
xor ebx, r12d
mov ecx, dword [rsp + 0x6c]
xor r8, rcx
mov dword [rsp + 0x28], ebx
mov rcx, r8
shr rcx, 0x18
mov r13d, dword [rsi + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r15d, dword [rsi + rdx*4 + 0xa0540]
movzx edx, cl
xor r15d, r13d
mov ecx, dword [rsi + rdx*4 + 0xa0da0]
xor r15d, ecx
xor r10d, ecx
movzx ecx, r8b
mov ecx, dword [rsi + rcx*4 + 0xa0960]
xor r12d, ecx
xor r15d, ecx
mov ecx, dword [rsp + 0x5c]
xor r9, rcx
mov rcx, r9
shr rcx, 0x18
mov r14d, dword [rsi + rcx*4 + 0xa0120]
xor r13d, r14d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [rsi + rdx*4 + 0xa0540]
xor r11d, r8d
movzx edx, cl
mov ecx, dword [rsi + rdx*4 + 0xa0da0]
xor ecx, r8d
mov r8d, eax
xor r14d, ecx
shr rax, 0x18
movzx ecx, r9b
mov r9d, dword [rsi + rax*4 + 0xa0120]
mov eax, r8d
mov ecx, dword [rsi + rcx*4 + 0xa0960]
xor r14d, ecx
xor r12d, ecx
xor r13d, r9d
shr rax, 0x10
movzx ecx, al
mov eax, dword [rsi + rcx*4 + 0xa0540]
xor r11d, eax
xor r9d, eax
mov dword [rsp + 0x30], r11d
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [rsi + rcx*4 + 0xa0da0]
xor r10d, edx
mov eax, dword [rsi + rax*4 + 0xa0960]
mov ecx, r11d
xor eax, edx
shl ecx, 8
xor r9d, eax
mov dword [rsp + 0x2c], r10d
xor ecx, r14d
mov eax, r12d
shr eax, 0x18
and ecx, 0xff0000
xor eax, ebx
mov edx, r11d
movzx eax, al
or ecx, eax
shl edx, 0x10
xor edx, r9d
mov eax, r10d
shl eax, 8
and edx, 0xff0000
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, r13d
shl eax, 8
xor eax, r15d
and eax, r8d
or ecx, eax
mov eax, r12d
xor dword [rsp + 0x40], ecx
shr eax, 0x10
xor eax, r15d
mov dword [rsp + 0x6c], ecx
movzx eax, al
or edx, eax
mov eax, r13d
shl eax, 0x10
xor eax, r14d
and eax, r8d
or edx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
and eax, 0xff00
or edx, eax
mov eax, r12d
shr eax, 8
xor eax, r14d
mov dword [rsp + 0x5c], edx
movzx r8d, al
mov eax, r11d
shr eax, 8
xor eax, ebx
mov ebx, 0xff000000
and eax, 0xff0000
or r8d, eax
mov eax, r13d
shl eax, 0x18
xor eax, r9d
and eax, ebx
or r8d, eax
mov eax, r10d
shr eax, 8
xor eax, r15d
and eax, 0xff00
or r8d, eax
xor ebp, edx
mov dword [rsp + 0x4c], r8d
mov dword [rsp + 0x70], ebp
xor dword [rsp + 0x64], r8d
lea r10, [0x180000000]
mov edx, ecx
xor rdx, rdi
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ecx, dword [rsi + rcx*4 + 0xa0540]
mov edi, dword [rsi + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 8
xor edi, ecx
mov dword [rsp + 0x20], ecx
movzx ecx, al
movzx eax, dl
mov edx, dword [rsp + 0x5c]
mov ebp, dword [rsi + rcx*4 + 0xa0da0]
xor edi, ebp
mov esi, dword [rsi + rax*4 + 0xa0960]
xor edi, esi
mov eax, dword [rsp + 0x48]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov ebx, dword [r10 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r11d, dword [r10 + rcx*4 + 0xa0540]
movzx ecx, al
xor r11d, ebx
mov eax, dword [r10 + rcx*4 + 0xa0da0]
xor r11d, eax
xor ebp, eax
movzx eax, dl
mov eax, dword [r10 + rax*4 + 0xa0960]
xor esi, eax
xor r11d, eax
mov eax, dword [rsp + 4]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [r10 + rax*4 + 0xa0120]
mov rax, r8
shr rax, 0x10
xor ebx, r10d
movzx ecx, al
lea rax, [0x180000000]
mov edx, dword [rax + rcx*4 + 0xa0540]
mov rax, r8
xor dword [rsp + 0x20], edx
shr rax, 8
movzx ecx, al
lea rax, [0x180000000]
mov eax, dword [rax + rcx*4 + 0xa0da0]
mov ecx, r12d
xor eax, edx
lea rdx, [0x180000000]
xor r10d, eax
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0xa0960]
xor r10d, eax
xor esi, eax
mov eax, r9d
xor rcx, rax
mov eax, r15d
movzx r8d, cl
mov ecx, dword [rsp + 0x30]
xor rcx, rax
mov eax, r14d
and ecx, 0xff0000
or r8, rcx
mov ecx, dword [rsp + 0x2c]
xor rcx, rax
and ecx, 0xff00
or r8, rcx
mov ecx, r13d
mov eax, dword [rsp + 0x28]
mov r13d, 0xff000000
xor rcx, rax
mov r15d, dword [rsp + 0x20]
and rcx, r13
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0xa0120]
xor ebx, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0xa0540]
xor r15d, eax
xor r9d, eax
mov r12d, r15d
shl r12d, 8
mov rax, r8
shr rax, 8
xor r12d, r10d
movzx ecx, al
and r12d, 0xff0000
movzx eax, r8b
mov r14d, r15d
shl r14d, 0x10
mov edx, dword [rdx + rcx*4 + 0xa0da0]
xor ebp, edx
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0xa0960]
xor eax, edx
mov edx, r15d
xor r9d, eax
xor edx, r11d
and edx, 0xff0000
xor r14d, r9d
and r14d, 0xff0000
mov eax, ebp
xor eax, r10d
and eax, 0xff00
or edx, eax
mov eax, ebx
xor eax, edi
and eax, r13d
or edx, eax
mov eax, esi
xor eax, r9d
movzx ecx, al
mov eax, ebp
shl eax, 8
or edx, ecx
xor eax, r9d
mov dword [rsp + 0x34], edx
and eax, 0xff00
or r12d, eax
mov eax, ebx
shl eax, 8
xor eax, r11d
and eax, r13d
or r12d, eax
mov eax, esi
shr eax, 0x18
xor eax, edi
movzx eax, al
or r12d, eax
mov eax, ebx
shl eax, 0x10
xor eax, r10d
mov dword [rsp + 0x48], r12d
and eax, r13d
or r14d, eax
mov eax, ebp
shr eax, 0x10
xor eax, edi
and eax, 0xff00
or r14d, eax
mov eax, esi
shr eax, 0x10
xor eax, r11d
movzx eax, al
or r14d, eax
shr r15d, 8
xor r15d, edi
shr ebp, 8
and r15d, 0xff0000
shl ebx, 0x18
xor ebx, r9d
shr esi, 8
mov r9, qword [rsp + 0xe0]
and ebx, r13d
mov r13d, dword [rsp + 0x1c]
xor ebp, r11d
or r15d, ebx
mov dword [rsp + 4], r14d
and ebp, 0xff00
xor esi, r10d
or r15d, ebp
movzx eax, sil
mov esi, dword [rsp + 0xe8]
or r15d, eax
mov ebp, dword [rsp + 0xc]
mov dword [rsp + 0x20], r15d
cmp r9, 4
jbe 0x18001f44a
mov r8, qword [rsp + 0xd8]
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xd8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0xe0], r9
jmp 0x18001deb6
mov r15d, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x48]
xor r12d, dword [rsp + 0x38]
xor esi, r15d
xor dword [rsp + 0x58], r12d
xor r13d, eax
mov ecx, dword [rsp + 0x54]
xor ebp, r14d
xor ecx, dword [rsp + 0x34]
mov r8d, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x7c]
mov dword [rsp + 0x54], ecx
mov ecx, r12d
xor r8, rcx
mov dword [rsp + 0x48], r12d
mov rcx, r8
mov dword [rsp + 0x1c], r13d
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov dword [rsp + 0xe8], esi
lea rsi, [0x180000000]
mov dword [rsp + 0xc], ebp
mov ebx, dword [rsi + rdx*4 + 0xa0540]
mov edi, dword [rsi + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 8
xor edi, ebx
movzx edx, cl
movzx ecx, r8b
mov r8d, dword [rsp + 0x78]
mov r11d, dword [rsi + rdx*4 + 0xa0da0]
xor edi, r11d
mov r13d, dword [rsi + rcx*4 + 0xa0960]
xor edi, r13d
mov ecx, r14d
xor r8, rcx
mov dword [rsp + 0x30], edi
mov rcx, r8
shr rcx, 0x18
mov r10d, dword [rsi + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r12d, dword [rsi + rdx*4 + 0xa0540]
movzx edx, cl
xor r12d, r10d
mov ecx, dword [rsi + rdx*4 + 0xa0da0]
xor r12d, ecx
xor r11d, ecx
movzx ecx, r8b
mov ecx, dword [rsi + rcx*4 + 0xa0960]
xor r13d, ecx
xor r12d, ecx
mov ecx, r15d
xor r9, rcx
mov rcx, r9
shr rcx, 0x18
mov r15d, dword [rsi + rcx*4 + 0xa0120]
xor r10d, r15d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [rsi + rdx*4 + 0xa0540]
xor ebx, r8d
movzx edx, cl
mov ecx, dword [rsi + rdx*4 + 0xa0da0]
xor ecx, r8d
mov r8d, eax
xor r15d, ecx
shr rax, 0x18
movzx ecx, r9b
mov r9d, dword [rsi + rax*4 + 0xa0120]
mov ecx, dword [rsi + rcx*4 + 0xa0960]
xor r15d, ecx
xor r13d, ecx
xor r10d, r9d
mov dword [rsp + 0x2c], r10d
mov eax, r8d
mov ebp, 0xff000000
shr rax, 0x10
movzx ecx, al
mov eax, dword [rsi + rcx*4 + 0xa0540]
xor ebx, eax
xor r9d, eax
mov dword [rsp + 0x44], ebx
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, ebx
shl r8d, 0x10
mov edx, dword [rsi + rcx*4 + 0xa0da0]
xor r11d, edx
mov eax, dword [rsi + rax*4 + 0xa0960]
xor eax, edx
mov dword [rsp + 0x28], r11d
xor r9d, eax
mov edx, ebx
shl edx, 8
xor r8d, r9d
xor edx, r15d
and r8d, 0xff0000
and edx, 0xff0000
mov eax, r13d
shr eax, 0x18
xor eax, edi
movzx eax, al
or edx, eax
mov eax, r11d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, r10d
shl eax, 8
xor eax, r12d
and eax, ebp
or edx, eax
mov eax, r13d
xor dword [rsp + 0x3c], edx
shr eax, 0x10
xor eax, r12d
mov dword [rsp + 0x78], edx
movzx eax, al
or r8d, eax
mov eax, r10d
shl eax, 0x10
xor eax, r15d
and eax, ebp
or r8d, eax
mov eax, r11d
shr eax, 0x10
xor eax, edi
and eax, 0xff00
or r8d, eax
mov eax, r13d
xor dword [rsp + 0x54], r8d
shr eax, 8
xor eax, r15d
mov dword [rsp + 0x7c], r8d
movzx ecx, al
mov eax, ebx
shr eax, 8
xor eax, edi
and eax, 0xff0000
or ecx, eax
mov eax, r10d
shl eax, 0x18
xor eax, r9d
and eax, ebp
or ecx, eax
mov eax, r11d
shr eax, 8
xor eax, r12d
and eax, 0xff00
or ecx, eax
xor dword [rsp + 0x60], ecx
mov dword [rsp + 0x34], ecx
mov eax, dword [rsp + 0x38]
lea r10, [0x180000000]
xor rdx, rax
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [rsi + rcx*4 + 0xa0540]
mov esi, dword [rsi + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, r8d
mov r8d, dword [rsp + 0x14]
mov r14d, dword [r10 + rcx*4 + 0xa0da0]
xor esi, r14d
mov r11d, dword [r10 + rax*4 + 0xa0960]
xor esi, r11d
mov eax, dword [rsp + 8]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [r10 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [r10 + rcx*4 + 0xa0540]
movzx ecx, al
xor ebx, edi
mov eax, dword [r10 + rcx*4 + 0xa0da0]
xor ebx, eax
xor r14d, eax
movzx eax, dl
mov eax, dword [r10 + rax*4 + 0xa0960]
xor r11d, eax
xor ebx, eax
mov eax, dword [rsp + 0x34]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [r10 + rax*4 + 0xa0120]
mov rax, r8
shr rax, 0x10
xor edi, r10d
movzx ecx, al
lea rax, [0x180000000]
mov edx, dword [rax + rcx*4 + 0xa0540]
mov rax, r8
shr rax, 8
xor ebp, edx
movzx ecx, al
lea rax, [0x180000000]
mov eax, dword [rax + rcx*4 + 0xa0da0]
mov ecx, r13d
xor eax, edx
lea rdx, [0x180000000]
xor r10d, eax
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0xa0960]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r12d
movzx r8d, cl
mov ecx, dword [rsp + 0x44]
xor rcx, rax
mov eax, r15d
and ecx, 0xff0000
or r8, rcx
mov ecx, dword [rsp + 0x28]
xor rcx, rax
mov eax, dword [rsp + 0x30]
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x2c]
xor rcx, rax
mov r13d, 0xff000000
and rcx, r13
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0xa0120]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0xa0540]
xor ebp, eax
xor r9d, eax
mov r15d, ebp
shl r15d, 8
mov rax, r8
shr rax, 8
xor r15d, r10d
movzx ecx, al
and r15d, 0xff0000
movzx eax, r8b
mov r12d, ebp
shl r12d, 0x10
mov edx, dword [rdx + rcx*4 + 0xa0da0]
xor r14d, edx
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0xa0960]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
xor r12d, r9d
movzx ecx, al
and r12d, 0xff0000
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r13d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x38], ecx
movzx eax, al
or r15d, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or r15d, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, r13d
or r15d, eax
mov eax, r11d
shr eax, 0x10
xor eax, ebx
mov dword [rsp + 8], r15d
movzx eax, al
or r12d, eax
mov eax, edi
shl eax, 0x10
xor eax, r10d
and eax, r13d
or r12d, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or r12d, eax
mov dword [rsp + 0x14], r12d
shr r11d, 8
shr r14d, 8
xor r11d, r10d
shr ebp, 8
xor r14d, ebx
shl edi, 0x18
and r14d, 0xff00
xor edi, r9d
movzx eax, r11b
mov r9, qword [rsp + 0xe0]
and edi, r13d
mov r13d, dword [rsp + 0x1c]
xor ebp, esi
and ebp, 0xff0000
or eax, ebp
or eax, edi
or eax, r14d
mov r14d, dword [rsp + 4]
mov dword [rsp + 0x44], eax
cmp r9, 4
jbe 0x18001f4ba
mov r8, qword [rsp + 0xd8]
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xd8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0xe0], r9
jmp 0x18001e413
mov r15d, edi
xor dword [rsp + 0x50], r12d
xor r14d, eax
mov esi, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x10]
xor r15d, esi
xor dword [rsp + 0x4c], r15d
mov r9d, dword [rsp + 0x44]
mov ebp, dword [rsp + 0x6c]
xor r13d, r9d
xor ebp, dword [rsp + 0x38]
mov r8d, r15d
xor r8, rcx
mov dword [rsp + 0x1c], r13d
mov rcx, r8
mov dword [rsp + 8], r15d
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov dword [rsp + 4], r14d
lea r14, [0x180000000]
mov ebx, dword [r14 + rdx*4 + 0xa0540]
mov edi, dword [r14 + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 8
xor edi, ebx
movzx edx, cl
movzx ecx, r8b
mov r8d, r12d
mov r11d, dword [r14 + rdx*4 + 0xa0da0]
xor edi, r11d
mov r13d, dword [r14 + rcx*4 + 0xa0960]
xor edi, r13d
mov ecx, dword [rsp + 0x74]
xor r8, rcx
mov dword [rsp + 0x24], edi
mov rcx, r8
shr rcx, 0x18
mov r10d, dword [r14 + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r12d, dword [r14 + rdx*4 + 0xa0540]
movzx edx, cl
xor r12d, r10d
mov ecx, dword [r14 + rdx*4 + 0xa0da0]
xor r12d, ecx
xor r11d, ecx
movzx ecx, r8b
mov ecx, dword [r14 + rcx*4 + 0xa0960]
xor r13d, ecx
xor r12d, ecx
mov ecx, dword [rsp + 0x68]
xor r9, rcx
mov rcx, r9
shr rcx, 0x18
mov r15d, dword [r14 + rcx*4 + 0xa0120]
xor r10d, r15d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [r14 + rdx*4 + 0xa0540]
xor ebx, r8d
movzx edx, cl
mov ecx, dword [r14 + rdx*4 + 0xa0da0]
xor ecx, r8d
mov r8d, eax
xor r15d, ecx
shr rax, 0x18
movzx ecx, r9b
mov r9d, dword [r14 + rax*4 + 0xa0120]
mov eax, r8d
mov ecx, dword [r14 + rcx*4 + 0xa0960]
xor r15d, ecx
xor r13d, ecx
xor r10d, r9d
mov dword [rsp + 0x28], r10d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0xa0540]
xor ebx, eax
xor r9d, eax
mov dword [rsp + 0x2c], ebx
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [r14 + rcx*4 + 0xa0da0]
xor r11d, edx
mov eax, dword [r14 + rax*4 + 0xa0960]
xor eax, edx
mov dword [rsp + 0x30], r11d
xor r9d, eax
mov eax, r13d
shr eax, 0x18
xor eax, edi
movzx ecx, al
mov eax, r11d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, ebx
shl eax, 8
xor eax, r15d
and eax, 0xff0000
or ecx, eax
mov eax, r10d
shl eax, 8
xor eax, r12d
and eax, r8d
or ecx, eax
mov eax, r13d
xor dword [rsp + 0x20], ecx
shr eax, 0x10
xor eax, r12d
mov dword [rsp + 0x74], ecx
movzx edx, al
mov eax, r11d
shr eax, 0x10
xor eax, edi
and eax, 0xff00
or edx, eax
mov eax, ebx
shl eax, 0x10
xor eax, r9d
and eax, 0xff0000
or edx, eax
mov eax, r10d
shl eax, 0x10
xor eax, r15d
and eax, r8d
or edx, eax
mov eax, r13d
shr eax, 8
xor eax, r15d
mov dword [rsp + 0x68], edx
movzx r8d, al
mov eax, r11d
shr eax, 8
xor eax, r12d
and eax, 0xff00
or r8d, eax
mov eax, ebx
shr eax, 8
mov ebx, 0xff000000
xor eax, edi
and eax, 0xff0000
or r8d, eax
mov eax, r10d
shl eax, 0x18
xor eax, r9d
and eax, ebx
or r8d, eax
xor ebp, edx
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x6c], ebp
xor dword [rsp + 0x5c], r8d
lea r10, [0x180000000]
mov edx, ecx
xor rdx, rsi
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [r14 + rcx*4 + 0xa0540]
mov esi, dword [r14 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, dword [rsp + 0x68]
mov r14d, dword [r14 + rcx*4 + 0xa0da0]
xor esi, r14d
mov r11d, dword [r10 + rax*4 + 0xa0960]
xor esi, r11d
mov eax, dword [rsp]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [r10 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [r10 + rcx*4 + 0xa0540]
movzx ecx, al
xor ebx, edi
mov eax, dword [r10 + rcx*4 + 0xa0da0]
xor ebx, eax
xor r14d, eax
movzx eax, dl
mov eax, dword [r10 + rax*4 + 0xa0960]
xor r11d, eax
xor ebx, eax
mov eax, dword [rsp + 0x18]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [r10 + rax*4 + 0xa0120]
mov rax, r8
shr rax, 0x10
xor edi, r10d
movzx ecx, al
lea rax, [0x180000000]
mov edx, dword [rax + rcx*4 + 0xa0540]
mov rax, r8
shr rax, 8
xor ebp, edx
movzx ecx, al
lea rax, [0x180000000]
mov eax, dword [rax + rcx*4 + 0xa0da0]
mov ecx, r13d
xor eax, edx
lea rdx, [0x180000000]
xor r10d, eax
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0xa0960]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r15d
movzx r8d, cl
mov ecx, dword [rsp + 0x30]
xor rcx, rax
mov eax, r12d
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x2c]
xor rcx, rax
mov eax, dword [rsp + 0x24]
and ecx, 0xff0000
or r8, rcx
mov ecx, dword [rsp + 0x28]
xor rcx, rax
mov r12d, 0xff000000
and rcx, r12
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0xa0120]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0xa0540]
xor ebp, eax
xor r9d, eax
mov r13d, ebp
shl r13d, 8
mov rax, r8
shr rax, 8
xor r13d, r10d
movzx ecx, al
and r13d, 0xff0000
movzx eax, r8b
mov r15d, ebp
shl r15d, 0x10
mov edx, dword [rdx + rcx*4 + 0xa0da0]
xor r14d, edx
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0xa0960]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
xor r15d, r9d
movzx ecx, al
and r15d, 0xff0000
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r12d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x24], ecx
movzx eax, al
or r13d, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or r13d, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, r12d
or r13d, eax
mov eax, r11d
shr eax, 0x10
xor eax, ebx
mov dword [rsp], r13d
movzx eax, al
or r15d, eax
mov eax, edi
shl eax, 0x10
xor eax, r10d
and eax, r12d
or r15d, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or r15d, eax
mov dword [rsp + 0x18], r15d
shr r11d, 8
xor r11d, r10d
shr r14d, 8
shr ebp, 8
xor r14d, ebx
shl edi, 0x18
and r14d, 0xff00
xor edi, r9d
movzx r10d, r11b
mov r9, qword [rsp + 0xe0]
and edi, r12d
mov r12d, dword [rsp + 0x14]
xor ebp, esi
and ebp, 0xff0000
or r10d, ebp
or r10d, edi
or r10d, r14d
mov r14d, dword [rsp + 4]
mov dword [rsp + 0x10], r10d
cmp r9, 4
jbe 0x18001f489
mov r8, qword [rsp + 0xd8]
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xd8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0xe0], r9
jmp 0x18001e97a
mov r10d, dword [rsp + 0x10]
mov r13d, ebx
mov ecx, dword [rsp + 0x40]
xor r12d, eax
xor dword [rsp + 0x48], r15d
xor r14d, r10d
mov esi, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x10]
xor r13d, esi
xor dword [rsp + 0x34], r13d
mov ebp, dword [rsp + 0x78]
xor ebp, dword [rsp + 0x24]
mov r8d, r13d
xor r8, rcx
mov dword [rsp + 0x14], r12d
mov rcx, r8
mov dword [rsp], r13d
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov dword [rsp + 4], r14d
lea r14, [0x180000000]
mov ebx, dword [r14 + rdx*4 + 0xa0540]
mov edi, dword [r14 + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 8
xor edi, ebx
movzx edx, cl
movzx ecx, r8b
mov r8d, r15d
mov r11d, dword [r14 + rdx*4 + 0xa0da0]
xor edi, r11d
mov r13d, dword [r14 + rcx*4 + 0xa0960]
xor edi, r13d
mov ecx, dword [rsp + 0x70]
xor r8, rcx
mov dword [rsp + 0x40], edi
mov rcx, r8
shr rcx, 0x18
mov r10d, dword [r14 + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r12d, dword [r14 + rdx*4 + 0xa0540]
movzx edx, cl
xor r12d, r10d
mov ecx, dword [r14 + rdx*4 + 0xa0da0]
xor r12d, ecx
xor r11d, ecx
movzx ecx, r8b
mov ecx, dword [r14 + rcx*4 + 0xa0960]
xor r13d, ecx
xor r12d, ecx
mov ecx, dword [rsp + 0x64]
xor r9, rcx
mov rcx, r9
shr rcx, 0x18
mov r15d, dword [r14 + rcx*4 + 0xa0120]
xor r10d, r15d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [r14 + rdx*4 + 0xa0540]
xor ebx, r8d
movzx edx, cl
mov ecx, dword [r14 + rdx*4 + 0xa0da0]
xor ecx, r8d
mov r8d, eax
xor r15d, ecx
shr rax, 0x18
movzx ecx, r9b
mov r9d, dword [r14 + rax*4 + 0xa0120]
mov eax, r8d
mov ecx, dword [r14 + rcx*4 + 0xa0960]
xor r15d, ecx
xor r13d, ecx
xor r10d, r9d
mov dword [rsp + 0x28], r10d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0xa0540]
xor ebx, eax
xor r9d, eax
mov dword [rsp + 0x30], ebx
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [r14 + rcx*4 + 0xa0da0]
xor r11d, edx
mov eax, dword [r14 + rax*4 + 0xa0960]
mov ecx, ebx
xor eax, edx
shl ecx, 8
xor r9d, eax
mov dword [rsp + 0x2c], r11d
xor ecx, r15d
mov edx, ebx
shl edx, 0x10
and ecx, 0xff0000
xor edx, r9d
mov eax, r13d
shr eax, 0x18
and edx, 0xff0000
xor eax, edi
movzx eax, al
or ecx, eax
mov eax, r11d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, r10d
shl eax, 8
xor eax, r12d
and eax, r8d
or ecx, eax
mov eax, r13d
xor dword [rsp + 0x44], ecx
shr eax, 0x10
xor eax, r12d
mov dword [rsp + 0x70], ecx
movzx eax, al
or edx, eax
mov eax, r10d
shl eax, 0x10
xor eax, r15d
and eax, r8d
or edx, eax
mov eax, r11d
shr eax, 0x10
xor eax, edi
and eax, 0xff00
or edx, eax
mov eax, r13d
shr eax, 8
xor eax, r15d
mov dword [rsp + 0x64], edx
movzx r8d, al
mov eax, ebx
shr eax, 8
mov ebx, 0xff000000
xor eax, edi
and eax, 0xff0000
or r8d, eax
mov eax, r10d
shl eax, 0x18
xor eax, r9d
and eax, ebx
or r8d, eax
mov eax, r11d
shr eax, 8
xor eax, r12d
and eax, 0xff00
or r8d, eax
xor ebp, edx
mov dword [rsp + 0x24], r8d
mov dword [rsp + 0x78], ebp
xor dword [rsp + 0x7c], r8d
lea r10, [0x180000000]
mov edx, ecx
xor rdx, rsi
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [r14 + rcx*4 + 0xa0540]
mov esi, dword [r14 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, dword [rsp + 0x64]
mov r14d, dword [r14 + rcx*4 + 0xa0da0]
xor esi, r14d
mov r11d, dword [r10 + rax*4 + 0xa0960]
xor esi, r11d
mov eax, dword [rsp + 0xc]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [r10 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [r10 + rcx*4 + 0xa0540]
movzx ecx, al
xor ebx, edi
mov eax, dword [r10 + rcx*4 + 0xa0da0]
xor ebx, eax
xor r14d, eax
movzx eax, dl
mov eax, dword [r10 + rax*4 + 0xa0960]
xor r11d, eax
xor ebx, eax
mov eax, dword [rsp + 0xe8]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [r10 + rax*4 + 0xa0120]
mov rax, r8
shr rax, 0x10
xor edi, r10d
movzx ecx, al
lea rax, [0x180000000]
mov edx, dword [rax + rcx*4 + 0xa0540]
mov rax, r8
shr rax, 8
xor ebp, edx
movzx ecx, al
lea rax, [0x180000000]
mov eax, dword [rax + rcx*4 + 0xa0da0]
mov ecx, r13d
xor eax, edx
lea rdx, [0x180000000]
xor r10d, eax
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0xa0960]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r12d
movzx r8d, cl
mov ecx, dword [rsp + 0x30]
xor rcx, rax
mov eax, r15d
and ecx, 0xff0000
or r8, rcx
mov ecx, dword [rsp + 0x2c]
xor rcx, rax
mov eax, dword [rsp + 0x40]
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x28]
xor rcx, rax
mov r15d, 0xff000000
and rcx, r15
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0xa0120]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0xa0540]
xor ebp, eax
xor r9d, eax
mov r13d, ebp
shl r13d, 8
mov rax, r8
shr rax, 8
xor r13d, r10d
movzx ecx, al
and r13d, 0xff0000
movzx eax, r8b
mov edx, dword [rdx + rcx*4 + 0xa0da0]
xor r14d, edx
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0xa0960]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r15d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x58], ecx
movzx eax, al
mov ecx, ebp
or r13d, eax
shl ecx, 0x10
xor ecx, r9d
mov eax, r14d
shl eax, 8
and ecx, 0xff0000
xor eax, r9d
and eax, 0xff00
or r13d, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, r15d
or r13d, eax
mov eax, r11d
shr eax, 0x10
xor eax, ebx
mov dword [rsp + 0xc], r13d
movzx eax, al
or ecx, eax
mov eax, edi
shl eax, 0x10
xor eax, r10d
and eax, r15d
or ecx, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or ecx, eax
mov dword [rsp + 0xe8], ecx
shr r11d, 8
mov r12d, dword [rsp + 0x14]
xor r11d, r10d
shl edi, 0x18
xor edi, r9d
shr ebp, 8
mov r9, qword [rsp + 0xe0]
and edi, r15d
mov r15d, dword [rsp + 0x18]
xor ebp, esi
shr r14d, 8
and ebp, 0xff0000
xor r14d, ebx
movzx eax, r11b
or eax, ebp
and r14d, 0xff00
or eax, edi
mov esi, ecx
mov edi, dword [rsp + 8]
or eax, r14d
mov dword [rsp + 0x40], eax
cmp r9, 4
jbe 0x18001f46e
mov r8, qword [rsp + 0xd8]
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xd8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0xe0], r9
jmp 0x18001eee1
mov r13d, ebp
mov ecx, dword [rsp + 0x3c]
lea r10, [0x180000000]
mov ebp, dword [rsp + 0x4c]
xor edi, esi
mov r9d, dword [rsp + 0x40]
xor r13d, ebp
xor dword [rsp + 0x38], r13d
xor r12d, r9d
mov r14d, dword [rsp + 0x74]
xor r15d, eax
xor r14d, dword [rsp + 0x58]
mov r8d, r13d
xor r8, rcx
mov dword [rsp + 8], edi
mov rcx, r8
mov dword [rsp + 0x14], r12d
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov dword [rsp + 0xc], r13d
mov dword [rsp + 0x18], r15d
mov ebx, dword [r10 + rdx*4 + 0xa0540]
mov edi, dword [r10 + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 8
xor edi, ebx
movzx edx, cl
movzx ecx, r8b
mov r8d, esi
lea rsi, [0x180000000]
mov r11d, dword [r10 + rdx*4 + 0xa0da0]
xor edi, r11d
mov r13d, dword [r10 + rcx*4 + 0xa0960]
xor edi, r13d
mov ecx, dword [rsp + 0x54]
xor r8, rcx
mov dword [rsp + 0x3c], edi
mov rcx, r8
shr rcx, 0x18
mov r10d, dword [rsi + rcx*4 + 0xa0120]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r12d, dword [rsi + rdx*4 + 0xa0540]
movzx edx, cl
xor r12d, r10d
mov ecx, dword [rsi + rdx*4 + 0xa0da0]
xor r12d, ecx
xor r11d, ecx
movzx ecx, r8b
mov ecx, dword [rsi + rcx*4 + 0xa0960]
xor r13d, ecx
xor r12d, ecx
mov ecx, dword [rsp + 0x60]
xor r9, rcx
mov rcx, r9
shr rcx, 0x18
mov r15d, dword [rsi + rcx*4 + 0xa0120]
xor r10d, r15d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [rsi + rdx*4 + 0xa0540]
xor ebx, r8d
movzx edx, cl
mov ecx, dword [rsi + rdx*4 + 0xa0da0]
xor ecx, r8d
mov r8d, eax
xor r15d, ecx
shr rax, 0x18
movzx ecx, r9b
mov r9d, dword [rsi + rax*4 + 0xa0120]
mov ecx, dword [rsi + rcx*4 + 0xa0960]
xor r15d, ecx
xor r13d, ecx
xor r10d, r9d
mov eax, r8d
mov dword [rsp + 0x28], r10d
shr rax, 0x10
movzx ecx, al
mov eax, dword [rsi + rcx*4 + 0xa0540]
xor ebx, eax
xor r9d, eax
mov dword [rsp + 0x2c], ebx
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [rsi + rcx*4 + 0xa0da0]
xor r11d, edx
mov eax, dword [rsi + rax*4 + 0xa0960]
mov ecx, ebx
xor eax, edx
shl ecx, 8
xor r9d, eax
mov dword [rsp + 0x30], r11d
xor ecx, r15d
mov eax, r11d
shl eax, 8
and ecx, 0xff0000
xor eax, r9d
mov edx, ebx
and eax, 0xff00
shl edx, 0x10
or ecx, eax
xor edx, r9d
and edx, 0xff0000
mov eax, r13d
shr eax, 0x18
xor eax, edi
movzx eax, al
or ecx, eax
mov eax, r10d
shl eax, 8
xor eax, r12d
and eax, r8d
or ecx, eax
mov eax, r10d
shl eax, 0x10
xor eax, r15d
mov dword [rsp + 0x54], ecx
and eax, r8d
or edx, eax
mov eax, r13d
shr eax, 0x10
xor eax, r12d
movzx eax, al
or edx, eax
mov eax, r11d
shr eax, 0x10
xor eax, edi
and eax, 0xff00
or edx, eax
mov eax, r13d
shr eax, 8
xor eax, r15d
mov dword [rsp + 0x60], edx
movzx r8d, al
mov eax, r10d
shl eax, 0x18
mov r10d, 0xff000000
xor eax, r9d
and eax, r10d
or r8d, eax
mov eax, ebx
shr eax, 8
xor eax, edi
and eax, 0xff0000
or r8d, eax
mov eax, r11d
shr eax, 8
xor eax, r12d
and eax, 0xff00
or r8d, eax
xor dword [rsp + 0x10], ecx
mov dword [rsp + 0x58], r8d
xor dword [rsp + 0x68], r8d
lea r10, [0x180000000]
xor r14d, edx
mov edx, ecx
xor rdx, rbp
mov dword [rsp + 0x74], r14d
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [rsi + rcx*4 + 0xa0540]
mov esi, dword [rsi + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, dword [rsp + 0x60]
mov r14d, dword [r10 + rcx*4 + 0xa0da0]
xor esi, r14d
mov r11d, dword [r10 + rax*4 + 0xa0960]
xor esi, r11d
mov eax, dword [rsp + 0x50]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [r10 + rax*4 + 0xa0120]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [r10 + rcx*4 + 0xa0540]
movzx ecx, al
xor ebx, edi
mov eax, dword [r10 + rcx*4 + 0xa0da0]
xor ebx, eax
xor r14d, eax
movzx eax, dl
mov eax, dword [r10 + rax*4 + 0xa0960]
xor r11d, eax
xor ebx, eax
mov eax, dword [rsp + 0x1c]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [r10 + rax*4 + 0xa0120]
mov rax, r8
shr rax, 0x10
xor edi, r10d
movzx ecx, al
lea rax, [0x180000000]
mov edx, dword [rax + rcx*4 + 0xa0540]
mov rax, r8
shr rax, 8
xor ebp, edx
movzx ecx, al
lea rax, [0x180000000]
mov eax, dword [rax + rcx*4 + 0xa0da0]
mov ecx, r13d
xor eax, edx
lea rdx, [0x180000000]
xor r10d, eax
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0xa0960]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r15d
movzx r8d, cl
mov ecx, dword [rsp + 0x30]
xor rcx, rax
mov eax, r12d
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x2c]
xor rcx, rax
and ecx, 0xff0000
or r8, rcx
mov eax, dword [rsp + 0x3c]
mov r15d, 0xff000000
mov ecx, dword [rsp + 0x28]
xor rcx, rax
and rcx, r15
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0xa0120]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0xa0540]
xor ebp, eax
xor r9d, eax
mov r12d, ebp
shl r12d, 8
mov rax, r8
shr rax, 8
xor r12d, r10d
movzx ecx, al
and r12d, 0xff0000
movzx eax, r8b
mov r13d, ebp
shl r13d, 0x10
mov edx, dword [rdx + rcx*4 + 0xa0da0]
xor r14d, edx
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0xa0960]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
xor r13d, r9d
movzx ecx, al
and r13d, 0xff0000
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r15d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x4c], ecx
movzx eax, al
or r12d, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or r12d, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, r15d
or r12d, eax
mov eax, r11d
shr eax, 0x10
xor eax, ebx
mov dword [rsp + 0x50], r12d
movzx eax, al
or r13d, eax
mov eax, edi
shl eax, 0x10
xor eax, r10d
and eax, r15d
or r13d, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or r13d, eax
shr ebp, 8
xor ebp, esi
shl edi, 0x18
mov esi, dword [rsp + 0xe8]
xor edi, r9d
mov r9, qword [rsp + 0xe0]
and edi, r15d
mov r15d, dword [rsp + 0x18]
and ebp, 0xff0000
shr r14d, 8
xor r14d, ebx
shr r11d, 8
mov ebx, dword [rsp]
xor r11d, r10d
and r14d, 0xff00
movzx eax, r11b
or eax, ebp
mov dword [rsp + 0x1c], r13d
or eax, edi
or eax, r14d
mov dword [rsp + 0x3c], eax
cmp r9, 4
jbe 0x18001f456
mov r8, qword [rsp + 0xd8]
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xd8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0xe0], r9
jmp 0x18001d945
mov r12d, dword [rsp + 0x14]
xor ecx, ecx
mov r11d, ecx
jmp 0x18001f4cd
mov r12d, dword [rsp + 0x14]
mov r11d, 4
mov r14d, dword [rsp + 4]
xor ecx, ecx
mov ebp, dword [rsp + 0xc]
jmp 0x18001f4d5
mov r13d, dword [rsp + 0x1c]
mov r11d, 3
mov ebx, dword [rsp]
xor ecx, ecx
mov r14d, dword [rsp + 4]
mov ebp, dword [rsp + 0xc]
jmp 0x18001f4d9
mov rdx, qword [rsp + 0xd8]
mov r11d, 2
mov r8, qword [rsp + 0xd0]
xor ecx, ecx
mov r13d, dword [rsp + 0x1c]
mov esi, dword [rsp + 0xe8]
mov ebx, dword [rsp]
mov edi, dword [rsp + 8]
mov ebp, dword [rsp + 0xc]
jmp 0x18001f4ee
mov esi, dword [rsp + 0xe8]
mov r11d, 1
mov ebp, dword [rsp + 0xc]
xor ecx, ecx
mov ebx, dword [rsp]
mov r15d, dword [rsp + 0x18]
mov edi, dword [rsp + 8]
mov r8, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov r10d, dword [rsp + 0x10]
mov dword [r8 + 4], r9d
test r9, r9
je 0x18001f512
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
shl ecx, 8
or ecx, eax
sub r9, 1
jne 0x18001f500
mov dword [r8], ecx
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x34]
mov dword [r8 + 8], r11d
mov dword [r8 + 0x18], ecx
mov ecx, dword [rsp + 0x6c]
mov dword [r8 + 0x1c], ecx
mov ecx, dword [rsp + 0x4c]
mov dword [r8 + 0x24], ecx
mov ecx, dword [rsp + 0x3c]
mov dword [r8 + 0x30], ecx
mov ecx, dword [rsp + 0x54]
mov dword [r8 + 0x34], ecx
mov ecx, dword [rsp + 0x58]
mov dword [r8 + 0x3c], ecx
mov ecx, dword [rsp + 0x40]
mov dword [r8 + 0xc], eax
mov eax, dword [rsp + 0x48]
mov dword [r8 + 0x48], ecx
mov ecx, dword [rsp + 0x70]
mov dword [r8 + 0x10], eax
mov eax, dword [rsp + 0x5c]
mov dword [r8 + 0x4c], ecx
mov ecx, dword [rsp + 0x24]
mov dword [r8 + 0x20], eax
mov eax, dword [rsp + 0x50]
mov dword [r8 + 0x54], ecx
mov ecx, dword [rsp + 0x74]
mov dword [r8 + 0x28], eax
mov eax, dword [rsp + 0x60]
mov dword [r8 + 0x64], ecx
mov ecx, dword [rsp + 0x44]
mov dword [r8 + 0x38], eax
mov eax, dword [rsp + 0x64]
mov dword [r8 + 0x78], ecx
mov ecx, dword [rsp + 0x78]
mov dword [r8 + 0x50], eax
mov eax, dword [rsp + 0x68]
mov dword [r8 + 0x7c], ecx
mov ecx, dword [rsp + 0x7c]
mov dword [r8 + 0x68], eax
mov eax, dword [rsp + 0x38]
mov dword [r8 + 0x14], r14d
mov r14, qword [rsp + 0x90]
mov dword [r8 + 0x2c], r13d
mov r13, qword [rsp + 0x98]
mov dword [r8 + 0x40], ebp
mov rbp, qword [rsp + 0xb8]
mov dword [r8 + 0x44], esi
mov rsi, qword [rsp + 0xb0]
mov dword [r8 + 0x58], ebx
mov rbx, qword [rsp + 0xc0]
mov dword [r8 + 0x5c], r15d
mov r15, qword [rsp + 0x88]
mov dword [r8 + 0x70], edi
mov rdi, qword [rsp + 0xa8]
mov dword [r8 + 0x74], r12d
mov r12, qword [rsp + 0xa0]
mov dword [r8 + 0x80], ecx
mov dword [r8 + 0x60], r10d
mov dword [r8 + 0x6c], eax
add rsp, 0xc8
ret