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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rax, rcx
mov qword [rsp + 0x130], r8
lea rcx, [r8*8]
mov esi, dword [rax]
mov r9d, dword [rax + 4]
add qword [rax + 0xa0], rcx
mov dword [rsp + 0x28], esi
cmp r9d, 3
ja 0x1400661bf
mov r8d, 4
sub r8d, r9d
cmp qword [rsp + 0x130], r8
jb 0x140066ca0
mov r8d, 3
sub r8d, r9d
mov r9d, 4
mov ecx, dword [rsp + 0x28]
movzx r10d, byte [rdx]
shl ecx, 8
mov esi, ecx
or esi, r10d
mov dword [rsp + 0x28], esi
test r8d, r8d
je 0x14006619d
movzx r10d, byte [rdx + 1]
shl esi, 8
or esi, r10d
mov dword [rsp + 0x28], esi
cmp r8d, 1
je 0x14006619d
movzx r10d, byte [rdx + 2]
shl esi, 8
mov ebx, esi
or ebx, r10d
mov dword [rsp + 0x28], ebx
cmp r8d, 2
je 0x14006619d
movzx r10d, byte [rdx + 3]
shl ebx, 8
mov ecx, ebx
or ecx, r10d
mov dword [rsp + 0x28], ecx
mov rbx, qword [rsp + 0x130]
lea rdx, [rdx + r8 + 1]
lea r10, [rbx - 1]
sub r10, r8
mov qword [rsp + 0x130], r10
je 0x140066cb7
mov esi, dword [rax + 0xc]
mov ebx, dword [rax + 0x10]
mov dword [rsp + 0x40], esi
mov esi, dword [rax + 0x14]
mov dword [rsp + 0x44], ebx
mov ebx, dword [rax + 0x18]
mov dword [rsp + 0x84], esi
mov esi, dword [rax + 0x1c]
mov dword [rsp + 0x54], ebx
mov ebx, dword [rax + 0x20]
mov dword [rsp + 0x58], esi
mov esi, dword [rax + 0x24]
mov dword [rsp + 0x98], ebx
mov ebx, dword [rax + 0x28]
mov dword [rsp + 0x9c], esi
mov esi, dword [rax + 0x2c]
mov dword [rsp + 0x68], ebx
mov ebx, dword [rax + 0x30]
mov dword [rsp + 0x88], esi
mov esi, dword [rax + 0x34]
mov dword [rsp + 0x38], ebx
mov ebx, dword [rax + 0x38]
mov dword [rsp + 0x30], esi
mov esi, dword [rax + 0x3c]
mov dword [rsp + 0x74], ebx
mov ebx, dword [rax + 0x40]
mov dword [rsp + 0x4c], esi
mov esi, dword [rax + 0x44]
mov dword [rsp + 0x50], ebx
mov ebx, dword [rax + 0x48]
mov dword [rsp + 0xac], esi
mov dword [rsp + 0xb0], ebx
mov esi, dword [rax + 0x4c]
mov ebx, dword [rax + 0x50]
mov dword [rsp + 0xb4], esi
mov esi, dword [rax + 0x54]
mov dword [rsp + 0x80], ebx
mov ebx, dword [rax + 0x58]
mov dword [rsp + 0x3c], esi
mov esi, dword [rax + 0x5c]
mov dword [rsp + 0x34], ebx
mov ebx, dword [rax + 0x60]
mov dword [rsp + 0x6c], esi
mov esi, dword [rax + 0x64]
mov dword [rsp + 0x5c], ebx
mov ebx, dword [rax + 0x68]
mov dword [rsp + 0x60], esi
mov esi, dword [rax + 0x6c]
mov dword [rsp + 0xa0], ebx
mov ebx, dword [rax + 0x70]
mov dword [rsp + 0xa4], esi
mov esi, dword [rax + 0x74]
mov dword [rsp + 0xa8], ebx
mov ebx, dword [rax + 0x78]
mov dword [rsp + 0x70], esi
mov esi, dword [rax + 0x7c]
mov dword [rsp + 0x64], ebx
mov ebx, dword [rax + 0x80]
mov dword [rsp + 0x48], esi
mov esi, dword [rax + 0x84]
mov dword [rsp + 0x8c], ebx
mov ebx, dword [rax + 0x88]
mov dword [rsp + 0x78], esi
mov dword [rsp + 0x90], ebx
mov esi, dword [rax + 0x8c]
mov ebx, dword [rax + 0x90]
mov r8d, dword [rax + 8]
mov dword [rsp + 0xb8], esi
mov esi, dword [rax + 0x94]
mov dword [rsp + 0xbc], ebx
mov ebx, dword [rax + 0x98]
mov dword [rsp + 0xc8], esi
mov dword [rsp + 0x94], ebx
cmp r8d, 2
je 0x1400684a0
ja 0x140066cd0
test r8d, r8d
je 0x140068460
lea rbx, [0x1401bbfc0]
mov qword [rsp + 0x20], rbx
lea rbx, [0x1401bbbc0]
mov qword [rsp + 0x10], rbx
lea rbx, [0x1401bb7c0]
mov qword [rsp + 0x18], rbx
lea rbx, [0x1401bc3c0]
mov qword [rsp + 8], rbx
mov esi, dword [rsp + 0x8c]
mov ecx, dword [rsp + 0xa8]
mov ebx, dword [rsp + 0x64]
mov r9d, dword [rsp + 0x68]
mov r11d, dword [rsp + 0x3c]
xor dword [rsp + 0x48], r11d
mov r8d, dword [rsp + 0xa4]
mov edi, dword [rsp + 0x48]
mov r15d, dword [rsp + 0x70]
xor ecx, esi
mov r12d, dword [rsp + 0x28]
xor r9d, ebx
mov ebx, dword [rsp + 0x5c]
xor dword [rsp + 0x90], ebx
mov ebx, ecx
mov ecx, dword [rsp + 0x78]
xor dword [rsp + 0x94], r12d
xor esi, r9d
mov r12, qword [rsp + 0x10]
xor r8d, edi
mov dword [rsp + 0x68], esi
mov r9d, r8d
xor dword [rsp + 0x88], ecx
mov r14, qword [rsp + 0x20]
shr r9d, 0x10
xor r15d, ecx
mov ecx, r8d
mov r11, qword [rsp + 0x18]
movzx r9d, r9b
movzx esi, ch
xor dword [rsp + 0x9c], edi
mov ebp, dword [r12 + rsi*4]
mov rsi, qword [rsp + 8]
mov r10d, dword [r14 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
mov r13d, dword [r11 + r9*4]
mov rcx, r11
mov edi, dword [rsi + r8*4]
mov r8d, r10d
mov dword [rsp + 0x64], r10d
movzx r10d, bl
xor r8d, ebp
xor edi, r13d
xor edi, r8d
mov r8d, ebx
shr r8d, 0x18
mov r8d, dword [rsi + r8*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
mov r9d, dword [r12 + rsi*4]
mov r10d, dword [r11 + r10*4]
mov esi, dword [r14 + rbx*4]
mov rbx, qword [rsp + 8]
mov r11d, r8d
xor r11d, r10d
xor esi, r9d
xor esi, r11d
mov r11d, r15d
shr r11d, 0x18
mov ebx, dword [rbx + r11*4]
mov r11d, r15d
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [r14 + r11*4]
movzx r14d, r15b
mov r14d, dword [rcx + r14*4]
mov ecx, r15d
xor r8d, ebx
mov r15, qword [rsp + 8]
movzx ecx, ch
mov r12d, dword [r12 + rcx*4]
mov rcx, qword [rsp + 0x20]
xor ebx, r14d
xor r10d, r14d
xor r10d, r13d
xor r12d, r11d
xor ebx, r12d
mov r12d, dword [rsp + 0x28]
mov r13d, r12d
shr r13d, 0x18
mov r13d, dword [r15 + r13*4]
mov r15d, r12d
shr r15d, 0x10
movzx r14d, r15b
mov r15, qword [rsp + 0x18]
mov r14d, dword [rcx + r14*4]
mov ecx, dword [rsp + 0x64]
xor r8d, r13d
xor r11d, r14d
xor r11d, ecx
mov ecx, r12d
movzx ecx, ch
mov r12, rcx
mov rcx, qword [rsp + 0x10]
mov r12d, dword [rcx + r12*4]
movzx ecx, byte [rsp + 0x28]
xor r13d, dword [r15 + rcx*4]
xor r14d, r12d
xor r9d, r12d
mov r15d, edi
xor r9d, ebp
mov ebp, r10d
xor r15d, r8d
and r15d, 0xff000000
mov r12d, ebx
xor r12d, r9d
xor r13d, r14d
xor ebp, r13d
movzx ecx, bpl
mov ebp, ecx
mov ecx, r12d
mov r12d, r8d
or ebp, r15d
and ecx, 0xff00
shl r12d, 8
mov dword [rsp + 0xa4], ebp
mov ebp, esi
xor ebp, r11d
and ebp, 0xff0000
or ebp, ecx
mov dword [rsp + 0xc0], ebp
mov ebp, r12d
mov r12d, r10d
shr r12d, 0x18
xor ebp, esi
mov ecx, r12d
mov r12d, r11d
and ebp, 0xff000000
xor ecx, edi
shl r12d, 8
movzx ecx, cl
or ebp, ecx
mov ecx, r12d
mov r12d, r9d
shl r12d, 8
xor ecx, ebx
xor r12d, r13d
and ecx, 0xff0000
and r12d, 0xff00
or ecx, r12d
mov r12d, r11d
or ebp, ecx
shl r12d, 0x10
mov r14d, ebp
mov dword [rsp + 0xa8], ebp
mov ebp, r12d
mov r12d, r9d
xor ebp, r13d
and ebp, 0xff0000
shr r12d, 0x10
shr r11d, 8
shr r9d, 8
mov ecx, r12d
mov r12d, r8d
shl r8d, 0x18
xor r11d, edi
xor ecx, edi
shl r12d, 0x10
xor r9d, esi
xor r8d, r13d
and ecx, 0xff00
and r11d, 0xff0000
and r9d, 0xff00
and r8d, 0xff000000
or ebp, ecx
mov ecx, r12d
mov r12d, r10d
shr r10d, 8
xor ecx, ebx
xor r10d, ebx
mov ebx, dword [rsp + 0x5c]
shr r12d, 0x10
xor r12d, esi
movzx r10d, r10b
or r9d, r11d
and ecx, 0xff000000
or r8d, r10d
movzx r12d, r12b
mov r10d, dword [rsp + 0x60]
mov r11d, r9d
or ecx, r12d
mov r12d, ebp
or r11d, r8d
xor dword [rsp + 0x54], r14d
xor ebx, r14d
or r12d, ecx
mov dword [rsp + 0x64], r11d
xor dword [rsp + 0x58], r12d
mov ecx, ebx
mov dword [rsp + 0x70], r12d
xor r10d, r12d
mov r8d, ecx
movzx esi, ch
mov ebx, dword [rsp + 0xa0]
xor dword [rsp + 0x98], r11d
shr r8d, 0x10
mov rbp, qword [rsp + 0x20]
mov r14, qword [rsp + 0x18]
movzx r8d, r8b
mov r9, qword [rsp + 0x10]
mov r12, qword [rsp + 8]
xor ebx, r11d
mov r13d, ebx
mov ebx, dword [rbp + r8*4]
movzx r8d, cl
shr ecx, 0x18
mov r11d, dword [r14 + r8*4]
mov esi, dword [r9 + rsi*4]
shr r15d, 0x18
mov edi, dword [r12 + rcx*4]
mov dword [rsp + 0x5c], ebx
xor ebx, esi
mov dword [rsp + 0x60], esi
xor edi, r11d
xor edi, ebx
mov ebx, r10d
shr ebx, 0x18
mov ecx, ebx
mov ebx, r10d
movzx esi, bh
mov ecx, dword [r12 + rcx*4]
mov ebx, r13d
mov r8d, dword [r9 + rsi*4]
movzx r9d, r10b
shr r10d, 0x10
shr ebx, 0x18
movzx r10d, r10b
mov r9d, dword [r14 + r9*4]
mov esi, dword [rbp + r10*4]
mov r10d, ecx
xor r10d, r9d
xor esi, r8d
xor esi, r10d
mov r10d, ebx
mov ebx, r13d
shr ebx, 0x10
mov r12d, dword [r12 + r10*4]
movzx r10d, bl
mov ebx, r13d
mov r10d, dword [rbp + r10*4]
movzx ebp, r13b
movzx ebx, bh
mov ebp, dword [r14 + rbp*4]
mov r14, qword [rsp + 0x10]
xor ecx, r12d
mov r13d, dword [r14 + rbx*4]
xor r12d, ebp
xor r9d, ebp
xor r9d, r11d
mov r11d, r15d
mov r15d, dword [rsp + 0xc0]
xor r13d, r10d
mov ebx, r13d
mov r13d, dword [rsp + 0x5c]
xor ebx, r12d
mov r12, qword [rsp + 8]
mov r11d, dword [r12 + r11*4]
xor ecx, r11d
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0xa4]
or ecx, r15d
shr r15d, 0x10
mov r12d, ecx
mov rcx, qword [rsp + 0x20]
mov ebp, r15d
mov r15d, dword [rsp + 0x60]
mov ebp, dword [rcx + rbp*4]
mov ecx, r12d
movzx r12d, r12b
movzx ecx, ch
xor r10d, ebp
xor r10d, r13d
mov r13d, dword [r14 + rcx*4]
mov r14, qword [rsp + 0x18]
mov ecx, ebx
xor r8d, r13d
xor r11d, dword [r14 + r12*4]
xor ebp, r13d
mov r14d, r9d
xor r8d, r15d
mov r13d, esi
mov r15d, edi
xor ecx, r8d
mov r12d, r10d
xor r13d, r10d
mov dword [rsp + 0x5c], ecx
mov ecx, dword [rsp + 0x28]
mov dword [rsp + 0xc0], r13d
mov r13d, r9d
xor r11d, ebp
mov ebp, r8d
xor r14d, r11d
xor r15d, ecx
shl r12d, 8
shl ebp, 8
shl ecx, 8
xor r12d, ebx
xor ebp, r11d
shr r13d, 0x18
and ebp, 0xff00
and r12d, 0xff0000
xor r13d, edi
or r12d, ebp
mov ebp, ecx
movzx r13d, r13b
xor ebp, esi
mov ecx, r12d
mov r12d, r10d
shr r10d, 8
and ebp, 0xff000000
shl r12d, 0x10
xor r10d, edi
or ebp, r13d
xor r12d, r11d
mov r13d, r9d
and r10d, 0xff0000
or ecx, ebp
mov ebp, r8d
and r12d, 0xff0000
shr r13d, 0x10
mov dword [rsp + 0x60], ecx
mov ecx, dword [rsp + 0x28]
shr ebp, 0x10
xor r13d, esi
xor ebp, edi
movzx r13d, r13b
shr r8d, 8
mov rdi, qword [rsp + 0x10]
and ebp, 0xff00
or r12d, ebp
mov ebp, ecx
shl ebp, 0x10
xor ebp, ebx
and ebp, 0xff000000
or ebp, r13d
mov r13d, r12d
or r13d, ebp
xor r8d, esi
shl ecx, 0x18
shr r9d, 8
xor ecx, r11d
xor r9d, ebx
mov r11d, dword [rsp + 0x3c]
mov ebx, dword [rsp + 0x6c]
and ecx, 0xff000000
movzx r9d, r9b
and r8d, 0xff00
mov rbp, qword [rsp + 0x20]
or ecx, r9d
mov r9d, dword [rsp + 0x60]
or r8d, r10d
xor dword [rsp + 0x44], r13d
or r8d, ecx
xor dword [rsp + 0x84], r8d
mov dword [rsp + 0xa0], r13d
xor dword [rsp + 0x40], r9d
xor ebx, r8d
mov dword [rsp + 0xa4], r8d
xor r11d, r9d
mov ecx, r11d
mov r11d, dword [rsp + 0x34]
mov r8d, ecx
movzx esi, ch
movzx r9d, cl
shr ecx, 0x18
shr r8d, 0x10
movzx r8d, r8b
xor r11d, r13d
mov r10d, dword [rbp + r8*4]
mov r13, qword [rsp + 0x18]
mov r8d, dword [rdi + rsi*4]
mov rsi, qword [rsp + 8]
mov r9d, dword [r13 + r9*4]
mov r12d, dword [rsi + rcx*4]
mov ecx, r10d
xor ecx, r8d
xor r12d, r9d
xor r12d, ecx
mov ecx, r11d
shr ecx, 0x18
mov esi, dword [rsi + rcx*4]
mov ecx, r11d
mov dword [rsp + 0x18], esi
movzx esi, ch
mov rcx, qword [rsp + 8]
mov esi, dword [rdi + rsi*4]
movzx edi, r11b
shr r11d, 0x10
mov edi, dword [r13 + rdi*4]
movzx r11d, r11b
xor r8d, esi
xor esi, dword [rbp + r11*4]
mov dword [rsp + 0x28], r8d
mov r8, r13
mov r13d, dword [rsp + 0x18]
xor r9d, edi
mov r11d, r13d
xor r11d, edi
xor esi, r11d
mov r11d, ebx
shr r11d, 0x18
mov edi, dword [rcx + r11*4]
mov r11d, ebx
mov ecx, r13d
mov r13, rbp
shr r11d, 0x10
mov qword [rsp + 0x18], r8
movzx r11d, r11b
mov r11d, dword [rbp + r11*4]
movzx ebp, bl
movzx ebx, bh
mov ebp, dword [r8 + rbp*4]
mov r8, qword [rsp + 0x10]
xor ecx, edi
xor r10d, r11d
xor r11d, dword [r8 + rbx*4]
shr r15d, 0x18
xor edi, ebp
xor r9d, ebp
mov ebx, r15d
mov r15, qword [rsp + 8]
mov r15d, dword [r15 + rbx*4]
mov ebx, dword [rsp + 0x5c]
xor r11d, edi
mov rdi, qword [rsp + 0xc0]
movzx ebp, bh
mov rbx, qword [rsp + 0x18]
xor ecx, r15d
shr rdi, 0x10
and edi, 0xff
mov edi, dword [r13 + rdi*4]
mov r13d, dword [r8 + rbp*4]
movzx ebp, r14b
xor r15d, dword [rbx + rbp*4]
mov r8d, dword [rsp + 0x28]
mov ebp, r11d
xor r10d, edi
xor edi, r13d
xor r8d, r13d
mov r13d, esi
mov ebx, r15d
xor ebp, r8d
xor r13d, r10d
xor ebx, edi
mov edi, r9d
and ebp, 0xff00
and r13d, 0xff0000
xor edi, ebx
movzx edi, dil
or ebp, edi
mov edi, r12d
xor edi, ecx
and edi, 0xff000000
or edi, r13d
mov r13d, r9d
or ebp, edi
mov edi, r8d
mov dword [rsp + 0x3c], ebp
mov ebp, r10d
shl edi, 8
shl ebp, 8
xor edi, ebx
xor ebp, r11d
and edi, 0xff00
and ebp, 0xff0000
or ebp, edi
mov edi, ecx
shl edi, 8
xor edi, esi
and edi, 0xff000000
shr r13d, 0x18
xor r13d, r12d
movzx r13d, r13b
or edi, r13d
mov r13d, r9d
shr r9d, 8
or ebp, edi
mov edi, r8d
shr r13d, 0x10
shr r8d, 8
mov dword [rsp + 0x34], ebp
mov ebp, r10d
shr edi, 0x10
shr r10d, 8
shl ebp, 0x10
xor edi, r12d
xor r13d, esi
xor r10d, r12d
xor ebp, ebx
and edi, 0xff00
xor r8d, esi
xor r9d, r11d
and ebp, 0xff0000
and r10d, 0xff0000
and r8d, 0xff00
movzx r13d, r13b
or ebp, edi
mov edi, ecx
shl ecx, 0x18
movzx r9d, r9b
shl edi, 0x10
xor ecx, ebx
or r8d, r10d
xor edi, r11d
and ecx, 0xff000000
and edi, 0xff000000
or ecx, r9d
or edi, r13d
or ebp, edi
or r8d, ecx
cmp qword [rsp + 0x130], 4
mov dword [rsp + 0x5c], r8d
mov dword [rsp + 0x6c], ebp
mov r8d, 2
ja 0x140067ca0
cmp qword [rsp + 0x130], 0
mov ebx, dword [rsp + 0x130]
mov dword [rax + 4], ebx
je 0x1400684e0
mov r9, qword [rsp + 0x130]
xor ecx, ecx
add r9, rdx
nop word cs:[rax + rax]
nop
movzx r10d, byte [rdx]
shl ecx, 8
inc rdx
or ecx, r10d
cmp r9, rdx
jne 0x140066b30
mov edx, dword [rsp + 0x40]
mov dword [rax], ecx
mov dword [rax + 8], r8d
mov dword [rax + 0xc], edx
mov edx, dword [rsp + 0x44]
mov dword [rax + 0x10], edx
mov edx, dword [rsp + 0x84]
mov dword [rax + 0x14], edx
mov edx, dword [rsp + 0x54]
mov dword [rax + 0x18], edx
mov edx, dword [rsp + 0x58]
mov dword [rax + 0x1c], edx
mov edx, dword [rsp + 0x98]
mov dword [rax + 0x20], edx
mov edx, dword [rsp + 0x9c]
mov dword [rax + 0x24], edx
mov edx, dword [rsp + 0x68]
mov dword [rax + 0x28], edx
mov edx, dword [rsp + 0x88]
mov dword [rax + 0x2c], edx
mov edx, dword [rsp + 0x38]
mov dword [rax + 0x30], edx
mov edx, dword [rsp + 0x30]
mov dword [rax + 0x34], edx
mov edx, dword [rsp + 0x74]
mov dword [rax + 0x38], edx
mov edx, dword [rsp + 0x4c]
mov dword [rax + 0x3c], edx
mov edx, dword [rsp + 0x50]
mov dword [rax + 0x40], edx
mov edx, dword [rsp + 0xac]
mov dword [rax + 0x44], edx
mov edx, dword [rsp + 0xb0]
mov dword [rax + 0x48], edx
mov edx, dword [rsp + 0xb4]
mov dword [rax + 0x4c], edx
mov edx, dword [rsp + 0x80]
mov dword [rax + 0x50], edx
mov edx, dword [rsp + 0x3c]
mov dword [rax + 0x54], edx
mov edx, dword [rsp + 0x34]
mov dword [rax + 0x58], edx
mov edx, dword [rsp + 0x6c]
mov dword [rax + 0x5c], edx
mov edx, dword [rsp + 0x5c]
mov dword [rax + 0x60], edx
mov edx, dword [rsp + 0x60]
mov dword [rax + 0x64], edx
mov edx, dword [rsp + 0xa0]
mov dword [rax + 0x68], edx
mov edx, dword [rsp + 0xa4]
mov dword [rax + 0x6c], edx
mov edx, dword [rsp + 0xa8]
mov dword [rax + 0x70], edx
mov edx, dword [rsp + 0x70]
mov dword [rax + 0x74], edx
mov edx, dword [rsp + 0x64]
mov dword [rax + 0x78], edx
mov edx, dword [rsp + 0x48]
mov dword [rax + 0x7c], edx
mov edx, dword [rsp + 0x8c]
mov dword [rax + 0x80], edx
mov edx, dword [rsp + 0x78]
mov dword [rax + 0x84], edx
mov edx, dword [rsp + 0x90]
mov dword [rax + 0x88], edx
mov edx, dword [rsp + 0xb8]
mov dword [rax + 0x8c], edx
mov edx, dword [rsp + 0xbc]
mov dword [rax + 0x90], edx
mov edx, dword [rsp + 0xc8]
mov dword [rax + 0x94], edx
mov edx, dword [rsp + 0x94]
mov dword [rax + 0x98], edx
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, dword [rsp + 0x130]
add r9d, dword [rsp + 0x130]
test ecx, ecx
jne 0x140067c90
vmovd xmm1, dword [rsp + 0x28]
vpinsrd xmm0, xmm1, r9d, 1
vmovq qword [rax], xmm0
jmp 0x140066c8c
lea rbx, [0x1401bbfc0]
lea rsi, [0x1401bbbc0]
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rsi
lea rbx, [0x1401bb7c0]
lea rsi, [0x1401bc3c0]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rsi
cmp r8d, 3
jne 0x140066afd
mov r11d, dword [rsp + 0x40]
xor dword [rsp + 0x30], r11d
mov esi, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x9c]
mov ecx, dword [rsp + 0x74]
mov r9d, dword [rsp + 0x38]
mov edi, dword [rsp + 0x68]
mov r12d, dword [rsp + 0x28]
xor dword [rsp + 0x80], r12d
mov r12, qword [rsp + 0x10]
xor r8d, esi
mov r14, qword [rsp + 0x20]
xor dword [rsp + 0xa4], esi
xor edi, ecx
xor r9d, ecx
mov ecx, r8d
mov r11, qword [rsp + 0x18]
movzx esi, ch
xor dword [rsp + 0xa8], r9d
mov r9d, r8d
mov ebp, dword [r12 + rsi*4]
mov ebx, dword [rsp + 0x54]
shr r9d, 0x10
mov rsi, qword [rsp + 8]
movzx r9d, r9b
xor dword [rsp + 0x50], ebx
mov r15d, dword [rsp + 0x88]
mov ebx, edi
mov rcx, r11
mov edi, dword [rsp + 0x4c]
mov r10d, dword [r14 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
mov r13d, dword [r11 + r9*4]
xor dword [rsp + 0x70], edi
xor r15d, edi
mov edi, dword [rsi + r8*4]
mov r8d, r10d
mov dword [rsp + 0x38], r10d
xor r8d, ebp
movzx r10d, bl
xor edi, r13d
xor edi, r8d
mov r8d, ebx
shr r8d, 0x18
mov r8d, dword [rsi + r8*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
mov r9d, dword [r12 + rsi*4]
mov r10d, dword [r11 + r10*4]
mov esi, dword [r14 + rbx*4]
mov rbx, qword [rsp + 8]
mov r11d, r8d
xor r11d, r10d
xor esi, r9d
xor esi, r11d
mov r11d, r15d
shr r11d, 0x18
mov ebx, dword [rbx + r11*4]
mov r11d, r15d
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [r14 + r11*4]
movzx r14d, r15b
mov r14d, dword [rcx + r14*4]
mov ecx, r15d
xor r8d, ebx
mov r15, qword [rsp + 8]
movzx ecx, ch
mov r12d, dword [r12 + rcx*4]
mov rcx, qword [rsp + 0x20]
xor ebx, r14d
xor r10d, r14d
xor r10d, r13d
xor r12d, r11d
xor ebx, r12d
mov r12d, dword [rsp + 0x28]
mov r13d, r12d
shr r13d, 0x18
mov r13d, dword [r15 + r13*4]
mov r15d, r12d
shr r15d, 0x10
movzx r14d, r15b
mov r15, qword [rsp + 0x18]
mov r14d, dword [rcx + r14*4]
mov ecx, dword [rsp + 0x38]
xor r8d, r13d
xor r11d, r14d
xor r11d, ecx
mov ecx, r12d
movzx ecx, ch
mov r12, rcx
mov rcx, qword [rsp + 0x10]
mov r12d, dword [rcx + r12*4]
movzx ecx, byte [rsp + 0x28]
xor r13d, dword [r15 + rcx*4]
xor r14d, r12d
xor r9d, r12d
mov r15d, edi
xor r9d, ebp
mov ebp, r10d
xor r15d, r8d
and r15d, 0xff000000
mov r12d, ebx
xor r12d, r9d
xor r13d, r14d
xor ebp, r13d
movzx ecx, bpl
mov ebp, ecx
mov ecx, r12d
mov r12d, r8d
or ebp, r15d
and ecx, 0xff00
shl r12d, 8
mov dword [rsp + 0x9c], ebp
mov ebp, esi
xor ebp, r11d
and ebp, 0xff0000
or ebp, ecx
mov dword [rsp + 0xc0], ebp
mov ebp, r12d
mov r12d, r10d
shr r12d, 0x18
xor ebp, esi
mov ecx, r12d
mov r12d, r11d
and ebp, 0xff000000
xor ecx, edi
shl r12d, 8
movzx ecx, cl
or ebp, ecx
mov ecx, r12d
mov r12d, r9d
shl r12d, 8
xor ecx, ebx
xor r12d, r13d
and ecx, 0xff0000
and r12d, 0xff00
or ecx, r12d
mov r12d, r11d
or ebp, ecx
shl r12d, 0x10
mov r14d, ebp
mov dword [rsp + 0x68], ebp
mov ebp, r12d
mov r12d, r9d
xor ebp, r13d
and ebp, 0xff0000
shr r12d, 0x10
shr r11d, 8
shr r9d, 8
mov ecx, r12d
mov r12d, r8d
shl r8d, 0x18
xor r11d, edi
xor ecx, edi
shl r12d, 0x10
xor r9d, esi
xor r8d, r13d
and ecx, 0xff00
and r11d, 0xff0000
and r9d, 0xff00
and r8d, 0xff000000
or ebp, ecx
mov ecx, r12d
mov r12d, r10d
shr r10d, 8
xor ecx, ebx
xor r10d, ebx
mov ebx, dword [rsp + 0x54]
shr r12d, 0x10
xor r12d, esi
movzx r10d, r10b
or r9d, r11d
and ecx, 0xff000000
or r8d, r10d
movzx r12d, r12b
mov r10d, dword [rsp + 0x58]
mov r11d, r9d
or ecx, r12d
mov r12d, ebp
or r11d, r8d
xor dword [rsp + 0x5c], r14d
xor ebx, r14d
or r12d, ecx
mov dword [rsp + 0x38], r11d
xor dword [rsp + 0x60], r12d
mov ecx, ebx
mov dword [rsp + 0x88], r12d
xor r10d, r12d
mov r8d, ecx
movzx esi, ch
mov ebx, dword [rsp + 0x98]
xor dword [rsp + 0xa0], r11d
shr r8d, 0x10
mov rbp, qword [rsp + 0x20]
mov r14, qword [rsp + 0x18]
movzx r8d, r8b
mov r9, qword [rsp + 0x10]
mov r12, qword [rsp + 8]
xor ebx, r11d
mov r13d, ebx
mov ebx, dword [rbp + r8*4]
movzx r8d, cl
shr ecx, 0x18
mov r11d, dword [r14 + r8*4]
mov esi, dword [r9 + rsi*4]
shr r15d, 0x18
mov edi, dword [r12 + rcx*4]
mov dword [rsp + 0x54], ebx
xor ebx, esi
mov dword [rsp + 0x58], esi
xor edi, r11d
xor edi, ebx
mov ebx, r10d
shr ebx, 0x18
mov ecx, ebx
mov ebx, r10d
movzx esi, bh
mov ecx, dword [r12 + rcx*4]
mov ebx, r13d
mov r8d, dword [r9 + rsi*4]
movzx r9d, r10b
shr r10d, 0x10
shr ebx, 0x18
movzx r10d, r10b
mov r9d, dword [r14 + r9*4]
mov esi, dword [rbp + r10*4]
mov r10d, ecx
xor r10d, r9d
xor esi, r8d
xor esi, r10d
mov r10d, ebx
mov ebx, r13d
shr ebx, 0x10
mov r12d, dword [r12 + r10*4]
movzx r10d, bl
mov ebx, r13d
mov r10d, dword [rbp + r10*4]
movzx ebp, r13b
movzx ebx, bh
mov ebp, dword [r14 + rbp*4]
mov r14, qword [rsp + 0x10]
xor ecx, r12d
mov r13d, dword [r14 + rbx*4]
xor r12d, ebp
xor r9d, ebp
xor r9d, r11d
mov r11d, r15d
mov r15d, dword [rsp + 0xc0]
xor r13d, r10d
mov ebx, r13d
mov r13d, dword [rsp + 0x54]
xor ebx, r12d
mov r12, qword [rsp + 8]
mov r11d, dword [r12 + r11*4]
xor ecx, r11d
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x9c]
or ecx, r15d
shr r15d, 0x10
mov r12d, ecx
mov rcx, qword [rsp + 0x20]
mov ebp, r15d
mov r15d, dword [rsp + 0x58]
mov ebp, dword [rcx + rbp*4]
mov ecx, r12d
movzx r12d, r12b
movzx ecx, ch
xor r10d, ebp
xor r10d, r13d
mov r13d, dword [r14 + rcx*4]
mov r14, qword [rsp + 0x18]
mov ecx, ebx
xor r8d, r13d
xor r11d, dword [r14 + r12*4]
xor ebp, r13d
mov r14d, r9d
xor r8d, r15d
mov r13d, esi
mov r15d, edi
xor ecx, r8d
mov r12d, r10d
xor r13d, r10d
mov dword [rsp + 0x54], ecx
mov ecx, dword [rsp + 0x28]
mov dword [rsp + 0xc0], r13d
mov r13d, r9d
xor r11d, ebp
mov ebp, r8d
xor r14d, r11d
xor r15d, ecx
shl r12d, 8
shl ebp, 8
shl ecx, 8
xor r12d, ebx
xor ebp, r11d
shr r13d, 0x18
and ebp, 0xff00
and r12d, 0xff0000
xor r13d, edi
or r12d, ebp
mov ebp, ecx
movzx r13d, r13b
xor ebp, esi
mov ecx, r12d
mov r12d, r10d
shr r10d, 8
and ebp, 0xff000000
shl r12d, 0x10
xor r10d, edi
or ebp, r13d
xor r12d, r11d
mov r13d, r9d
and r10d, 0xff0000
or ecx, ebp
mov ebp, r8d
and r12d, 0xff0000
shr r13d, 0x10
mov dword [rsp + 0x58], ecx
mov ecx, dword [rsp + 0x28]
shr ebp, 0x10
xor r13d, esi
xor ebp, edi
movzx r13d, r13b
shr r8d, 8
mov rdi, qword [rsp + 0x10]
and ebp, 0xff00
or r12d, ebp
mov ebp, ecx
shl ebp, 0x10
xor ebp, ebx
and ebp, 0xff000000
or ebp, r13d
mov r13d, r12d
or r13d, ebp
xor r8d, esi
shl ecx, 0x18
shr r9d, 8
xor ecx, r11d
xor r9d, ebx
mov r11d, dword [rsp + 0x40]
mov ebx, dword [rsp + 0x84]
and ecx, 0xff000000
movzx r9d, r9b
and r8d, 0xff00
mov rbp, qword [rsp + 0x20]
or ecx, r9d
mov r9d, dword [rsp + 0x58]
or r8d, r10d
xor dword [rsp + 0x34], r13d
or r8d, ecx
xor dword [rsp + 0x6c], r8d
mov dword [rsp + 0x98], r13d
xor dword [rsp + 0x3c], r9d
xor ebx, r8d
mov dword [rsp + 0x9c], r8d
xor r11d, r9d
mov ecx, r11d
mov r11d, dword [rsp + 0x44]
mov r8d, ecx
movzx esi, ch
movzx r9d, cl
shr ecx, 0x18
shr r8d, 0x10
movzx r8d, r8b
xor r11d, r13d
mov r10d, dword [rbp + r8*4]
mov r13, qword [rsp + 0x18]
mov r8d, dword [rdi + rsi*4]
mov rsi, qword [rsp + 8]
mov r9d, dword [r13 + r9*4]
mov r12d, dword [rsi + rcx*4]
mov ecx, r10d
xor ecx, r8d
xor r12d, r9d
xor r12d, ecx
mov ecx, r11d
shr ecx, 0x18
mov esi, dword [rsi + rcx*4]
mov ecx, r11d
mov dword [rsp + 0x18], esi
movzx esi, ch
mov rcx, qword [rsp + 8]
mov esi, dword [rdi + rsi*4]
movzx edi, r11b
shr r11d, 0x10
mov edi, dword [r13 + rdi*4]
movzx r11d, r11b
xor r8d, esi
xor esi, dword [rbp + r11*4]
mov dword [rsp + 0x28], r8d
mov r8, r13
mov r13d, dword [rsp + 0x18]
xor r9d, edi
mov r11d, r13d
xor r11d, edi
xor esi, r11d
mov r11d, ebx
shr r11d, 0x18
mov edi, dword [rcx + r11*4]
mov r11d, ebx
mov ecx, r13d
mov r13, rbp
shr r11d, 0x10
mov qword [rsp + 0x18], r8
movzx r11d, r11b
mov r11d, dword [rbp + r11*4]
movzx ebp, bl
movzx ebx, bh
mov ebp, dword [r8 + rbp*4]
mov r8, qword [rsp + 0x10]
xor ecx, edi
xor r10d, r11d
xor r11d, dword [r8 + rbx*4]
xor r9d, ebp
xor edi, ebp
mov ebx, dword [rsp + 0x54]
mov rbp, qword [rsp + 8]
shr r15d, 0x18
xor r11d, edi
mov rdi, qword [rsp + 0xc0]
mov r15d, dword [rbp + r15*4]
movzx ebp, bh
mov rbx, qword [rsp + 0x18]
shr rdi, 0x10
xor ecx, r15d
and edi, 0xff
mov edi, dword [r13 + rdi*4]
mov r13d, dword [r8 + rbp*4]
movzx ebp, r14b
xor r15d, dword [rbx + rbp*4]
mov r8d, dword [rsp + 0x28]
mov ebp, r11d
xor r10d, edi
xor edi, r13d
xor r8d, r13d
mov r13d, esi
mov ebx, r15d
xor ebp, r8d
xor r13d, r10d
xor ebx, edi
mov edi, r9d
and ebp, 0xff00
and r13d, 0xff0000
xor edi, ebx
movzx edi, dil
or ebp, edi
mov edi, r12d
xor edi, ecx
and edi, 0xff000000
or edi, r13d
mov r13d, r9d
or ebp, edi
mov edi, r8d
mov dword [rsp + 0x40], ebp
mov ebp, r10d
shl edi, 8
shl ebp, 8
xor edi, ebx
xor ebp, r11d
and edi, 0xff00
and ebp, 0xff0000
or ebp, edi
mov edi, ecx
shl edi, 8
xor edi, esi
and edi, 0xff000000
shr r13d, 0x18
xor r13d, r12d
movzx r13d, r13b
or edi, r13d
mov r13d, r8d
shr r8d, 8
or ebp, edi
mov edi, r9d
shr r13d, 0x10
shr r9d, 8
mov dword [rsp + 0x44], ebp
mov ebp, ecx
shr edi, 0x10
shl ecx, 0x18
shl ebp, 0x10
xor edi, esi
xor r13d, r12d
xor r8d, esi
xor ebp, r11d
movzx edi, dil
xor ecx, ebx
xor r9d, r11d
and ebp, 0xff000000
and r13d, 0xff00
and r8d, 0xff00
and ecx, 0xff000000
or ebp, edi
mov edi, r10d
shr r10d, 8
movzx r9d, r9b
shl edi, 0x10
xor r10d, r12d
or ecx, r9d
xor edi, ebx
and r10d, 0xff0000
and edi, 0xff0000
or r8d, r10d
or edi, r13d
or ebp, edi
or r8d, ecx
mov dword [rsp + 0x54], r8d
xor r8d, r8d
cmp qword [rsp + 0x130], 4
mov dword [rsp + 0x84], ebp
jbe 0x140066afd
mov ecx, dword [rdx]
bswap ecx
sub qword [rsp + 0x130], 4
mov dword [rsp + 0x28], ecx
add rdx, 4
mov ecx, dword [rsp + 0x64]
xor dword [rsp + 0x44], ecx
mov esi, dword [rsp + 0x44]
mov r8d, dword [rsp + 0xbc]
mov r15d, dword [rsp + 0x84]
mov edi, dword [rsp + 0xc8]
xor dword [rsp + 0xb0], esi
mov ebx, dword [rsp + 0x28]
mov r14d, dword [rsp + 0x94]
xor r8d, esi
xor dword [rsp + 0x88], ebx
mov ecx, r8d
mov ebx, dword [rsp + 0x78]
mov r9d, dword [rsp + 0x40]
xor edi, r15d
xor dword [rsp + 0x58], ebx
movzx esi, ch
mov ebx, edi
mov rcx, qword [rsp + 0x10]
mov edi, dword [rsp + 0x54]
mov r11, qword [rsp + 0x20]
movzx r10d, bl
mov r13, qword [rsp + 0x18]
xor r9d, r15d
xor dword [rsp + 0x80], edi
xor dword [rsp + 0xb4], r9d
mov r9d, r8d
xor r14d, edi
mov edi, dword [rcx + rsi*4]
shr r9d, 0x10
mov rsi, qword [rsp + 8]
movzx r9d, r9b
mov ebp, dword [r11 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
mov r12d, dword [r13 + r9*4]
mov r9d, dword [rsi + r8*4]
mov r8d, ebp
xor r8d, edi
xor r9d, r12d
mov r15d, r9d
mov r9, r13
xor r15d, r8d
mov r8d, ebx
shr r8d, 0x18
mov r8d, dword [rsi + r8*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
mov esi, dword [rcx + rsi*4]
mov r10d, dword [r13 + r10*4]
mov rcx, r11
mov r11d, dword [r11 + rbx*4]
mov rbx, qword [rsp + 8]
movzx r13d, r14b
mov r13d, dword [r9 + r13*4]
mov dword [rsp + 0x94], esi
xor r11d, esi
mov esi, r11d
mov r11d, r8d
xor r11d, r10d
xor r10d, r13d
xor esi, r11d
mov r11d, r14d
xor r10d, r12d
shr r11d, 0x18
mov ebx, dword [rbx + r11*4]
mov r11d, r14d
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [rcx + r11*4]
mov ecx, r14d
movzx ecx, ch
xor r8d, ebx
xor ebx, r13d
mov r13, qword [rsp + 8]
mov r14, rcx
mov rcx, qword [rsp + 0x10]
mov r9d, dword [rcx + r14*4]
mov r14, qword [rsp + 0x20]
xor r9d, r11d
xor ebx, r9d
mov dword [rsp + 0x40], ebx
mov ebx, dword [rsp + 0x28]
mov r12d, ebx
mov r9d, ebx
shr r9d, 0x10
shr r12d, 0x18
mov r12d, dword [r13 + r12*4]
movzx r13d, r9b
mov r9d, dword [rsp + 0x94]
mov r13d, dword [r14 + r13*4]
xor r8d, r12d
xor r11d, r13d
xor r11d, ebp
movzx ebp, bh
mov ebp, dword [rcx + rbp*4]
movzx ecx, bl
mov ebx, dword [rsp + 0x40]
xor r9d, ebp
xor r13d, ebp
mov ebp, r10d
xor r9d, edi
mov rdi, qword [rsp + 0x18]
xor r12d, dword [rdi + rcx*4]
mov edi, r15d
xor edi, r8d
and edi, 0xff000000
mov dword [rsp + 0xbc], edi
xor r12d, r13d
mov r13d, esi
xor ebp, r12d
xor r13d, r11d
movzx ecx, bpl
mov ebp, edi
mov edi, r13d
mov r13d, dword [rsp + 0x40]
or ebp, ecx
and edi, 0xff0000
mov dword [rsp + 0xc0], ebp
xor r13d, r9d
mov ecx, r13d
mov r13d, edi
mov edi, r8d
and ecx, 0xff00
shl edi, 8
or r13d, ecx
xor edi, esi
mov dword [rsp + 0xcc], r13d
mov r13d, r10d
and edi, 0xff000000
shr r13d, 0x18
mov ecx, r13d
mov r13d, r11d
xor ecx, r15d
shl r13d, 8
movzx ecx, cl
or edi, ecx
mov ecx, r13d
mov r13d, r9d
shl r13d, 8
xor ecx, ebx
mov ebp, r13d
and ecx, 0xff0000
mov r13d, edi
mov edi, r11d
xor ebp, r12d
shl edi, 0x10
and ebp, 0xff00
xor edi, r12d
or ecx, ebp
and edi, 0xff0000
mov ebp, r10d
or r13d, ecx
mov ecx, r9d
shr ecx, 0x10
shr r10d, 8
shr ebp, 0x10
shr r11d, 8
xor ecx, r15d
xor r10d, ebx
shr r9d, 8
xor ebp, esi
and ecx, 0xff00
xor r11d, r15d
xor r9d, esi
movzx ebp, bpl
or edi, ecx
mov ecx, r8d
shl r8d, 0x18
and r11d, 0xff0000
shl ecx, 0x10
xor r8d, r12d
and r9d, 0xff00
movzx r10d, r10b
xor ecx, ebx
mov ebx, dword [rsp + 0x78]
and r8d, 0xff000000
or r9d, r11d
and ecx, 0xff000000
or r8d, r10d
xor dword [rsp + 0x4c], r13d
mov r10d, dword [rsp + 0x90]
or ecx, ebp
or r9d, r8d
mov dword [rsp + 0xc8], r13d
or edi, ecx
mov dword [rsp + 0x40], r9d
xor ebx, r13d
mov dword [rsp + 0x94], edi
mov ecx, ebx
mov ebx, dword [rsp + 0xb8]
xor r10d, edi
xor dword [rsp + 0x50], edi
mov r15, qword [rsp + 0x10]
movzx esi, ch
mov r8d, ecx
mov rbp, qword [rsp + 0x18]
shr r8d, 0x10
xor dword [rsp + 0xac], r9d
mov rdi, r14
movzx r8d, r8b
mov r12d, dword [r14 + r8*4]
xor ebx, r9d
movzx r8d, cl
shr ecx, 0x18
mov r13d, dword [r15 + rsi*4]
mov rsi, qword [rsp + 8]
mov r9d, r10d
mov r14d, dword [rbp + r8*4]
shr r9d, 0x18
mov r8d, dword [rsi + rcx*4]
mov dword [rsp + 0x20], r14d
xor r8d, r14d
mov r14d, r12d
xor r14d, r13d
mov ecx, r14d
mov r14d, r8d
mov r8, rbp
xor r14d, ecx
mov ecx, r9d
movzx r9d, r10b
mov r11d, dword [rsi + rcx*4]
mov ecx, r10d
shr r10d, 0x10
mov r9d, dword [rbp + r9*4]
movzx esi, ch
movzx r10d, r10b
mov rcx, qword [rsp + 8]
mov esi, dword [r15 + rsi*4]
mov r15, rdi
mov dword [rsp + 0x28], esi
xor esi, dword [rdi + r10*4]
mov r10d, r11d
xor r10d, r9d
xor esi, r10d
mov r10d, ebx
shr r10d, 0x18
mov ebp, dword [rcx + r10*4]
mov r10d, ebx
mov ecx, r11d
shr r10d, 0x10
movzx r10d, r10b
mov r10d, dword [rdi + r10*4]
movzx edi, bl
movzx ebx, bh
mov edi, dword [r8 + rdi*4]
mov r8, qword [rsp + 0x10]
xor ecx, ebp
mov r11d, dword [r8 + rbx*4]
xor ebp, edi
xor r9d, edi
mov edi, dword [rsp + 0x20]
mov qword [rsp + 0x20], r15
xor r11d, r10d
xor r9d, edi
mov rdi, qword [rsp + 8]
mov ebx, r11d
mov r11d, dword [rsp + 0xbc]
xor ebx, ebp
mov ebp, dword [rsp + 0xc0]
shr r11d, 0x18
mov r11d, dword [rdi + r11*4]
xor ecx, r11d
mov dword [rsp + 0x78], ecx
mov ecx, dword [rsp + 0xcc]
or ebp, ecx
shr ecx, 0x10
mov edi, ecx
mov ecx, ebp
movzx ebp, bpl
mov edi, dword [r15 + rdi*4]
movzx ecx, ch
xor r10d, edi
xor r10d, r12d
mov r12d, dword [r8 + rcx*4]
mov r8d, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x78]
xor r8d, r12d
xor edi, r12d
mov r12d, r9d
xor r8d, r13d
mov r13, qword [rsp + 0x18]
xor r11d, dword [r13 + rbp*4]
mov ebp, ebx
xor ebp, r8d
mov dword [rsp + 0xc0], ebp
mov ebp, r14d
xor ebp, ecx
mov dword [rsp + 0x28], ebp
mov ebp, r10d
xor r11d, edi
mov edi, r9d
xor edi, r11d
mov dword [rsp + 0xcc], edi
mov edi, esi
xor edi, r10d
shl ebp, 8
shr r12d, 0x18
mov dword [rsp + 0x78], edi
mov edi, r8d
xor ebp, ebx
xor r12d, r14d
shl edi, 8
and ebp, 0xff0000
movzx r12d, r12b
xor edi, r11d
and edi, 0xff00
or ebp, edi
mov edi, ecx
shl edi, 8
xor edi, esi
and edi, 0xff000000
or edi, r12d
mov r12d, r9d
or ebp, edi
mov edi, r8d
shr r12d, 0x10
shr r8d, 8
mov r15d, ebp
mov dword [rsp + 0x90], ebp
mov ebp, r10d
shr edi, 0x10
shl ebp, 0x10
xor edi, r14d
xor r12d, esi
shr r10d, 8
xor ebp, r11d
and edi, 0xff00
movzx r12d, r12b
xor r10d, r14d
and ebp, 0xff0000
and r10d, 0xff0000
mov r14, qword [rsp + 0x20]
or ebp, edi
mov edi, ecx
shl edi, 0x10
xor edi, ebx
and edi, 0xff000000
or edi, r12d
mov r12, qword [rsp + 0x10]
or ebp, edi
xor r8d, esi
shl ecx, 0x18
shr r9d, 8
xor ecx, r11d
xor r9d, ebx
and r8d, 0xff00
mov ebx, dword [rsp + 0x8c]
or r8d, r10d
and ecx, 0xff000000
movzx r9d, r9b
xor dword [rsp + 0x38], r15d
or ecx, r9d
mov r9d, r8d
mov r10d, dword [rsp + 0x48]
mov rdi, r13
or r9d, ecx
mov ecx, dword [rsp + 0x64]
mov dword [rsp + 0xb8], ebp
xor ebx, r9d
xor dword [rsp + 0x74], r9d
mov dword [rsp + 0xbc], r9d
xor dword [rsp + 0x30], ebp
xor r10d, ebp
xor ecx, r15d
mov r15, qword [rsp + 8]
mov r8d, ecx
movzx esi, ch
shr r8d, 0x10
mov r11d, dword [r12 + rsi*4]
movzx r8d, r8b
mov r9d, dword [r14 + r8*4]
movzx r8d, cl
shr ecx, 0x18
mov r8d, dword [r13 + r8*4]
mov esi, dword [r15 + rcx*4]
mov ecx, r9d
xor ecx, r11d
xor esi, r8d
xor esi, ecx
mov ecx, r10d
shr ecx, 0x18
mov r13d, esi
mov esi, dword [r15 + rcx*4]
mov ecx, r10d
mov dword [rsp + 8], esi
movzx esi, ch
mov esi, dword [r12 + rsi*4]
xor r11d, esi
mov ebp, r11d
movzx r11d, r10b
shr r10d, 0x10
movzx r10d, r10b
mov r11d, dword [rdi + r11*4]
xor esi, dword [r14 + r10*4]
mov edi, dword [rsp + 8]
mov qword [rsp + 8], r15
xor r8d, r11d
mov ecx, edi
xor ecx, r11d
mov r11d, ebx
xor esi, ecx
mov ecx, ebx
shr r11d, 0x10
shr ecx, 0x18
movzx r11d, r11b
mov r10d, ecx
mov r11d, dword [r14 + r11*4]
mov r10d, dword [r15 + r10*4]
mov r15, qword [rsp + 0x18]
xor r9d, r11d
xor edi, r10d
mov ecx, edi
movzx edi, bl
movzx ebx, bh
xor r11d, dword [r12 + rbx*4]
mov edi, dword [r15 + rdi*4]
xor r10d, edi
xor r8d, edi
mov rdi, qword [rsp + 8]
xor r11d, r10d
mov r10d, dword [rsp + 0x28]
shr r10d, 0x18
mov ebx, dword [rdi + r10*4]
mov r10, qword [rsp + 0x78]
shr r10, 0x10
xor ecx, ebx
mov dword [rsp + 0x28], ebx
mov ebx, dword [rsp + 0xc0]
and r10d, 0xff
mov edi, dword [r14 + r10*4]
mov r10d, ebp
movzx ebp, byte [rsp + 0xcc]
movzx ebx, bh
mov r12d, dword [r12 + rbx*4]
mov ebx, dword [rsp + 0x28]
xor ebx, dword [r15 + rbp*4]
xor r9d, edi
mov ebp, r11d
xor edi, r12d
xor r10d, r12d
mov r12d, esi
xor ebp, r10d
xor r12d, r9d
xor ebx, edi
mov edi, r8d
and ebp, 0xff00
and r12d, 0xff0000
xor edi, ebx
movzx edi, dil
or ebp, edi
mov edi, r13d
xor edi, ecx
and edi, 0xff000000
or edi, r12d
mov r12d, r8d
or ebp, edi
mov edi, r10d
mov dword [rsp + 0x64], ebp
mov ebp, r9d
shl edi, 8
shl ebp, 8
xor edi, ebx
xor ebp, r11d
and edi, 0xff00
and ebp, 0xff0000
or ebp, edi
mov edi, ecx
shl edi, 8
xor edi, esi
and edi, 0xff000000
shr r12d, 0x18
xor r12d, r13d
movzx r12d, r12b
or edi, r12d
mov r12d, r8d
shr r8d, 8
or ebp, edi
mov edi, r10d
shr r12d, 0x10
shr r10d, 8
mov dword [rsp + 0x48], ebp
mov ebp, r9d
shr edi, 0x10
shr r9d, 8
shl ebp, 0x10
xor edi, r13d
xor r12d, esi
xor r9d, r13d
xor ebp, ebx
and edi, 0xff00
xor r10d, esi
xor r8d, r11d
and ebp, 0xff0000
and r9d, 0xff0000
and r10d, 0xff00
movzx r8d, r8b
or ebp, edi
mov edi, ecx
shl ecx, 0x18
movzx r12d, r12b
shl edi, 0x10
xor ecx, ebx
or r10d, r9d
xor edi, r11d
and ecx, 0xff000000
and edi, 0xff000000
or ecx, r8d
mov r8d, 1
or edi, r12d
or ebp, edi
or r10d, ecx
cmp qword [rsp + 0x130], 4
mov dword [rsp + 0x8c], ebp
mov dword [rsp + 0x78], r10d
jbe 0x140066afd
mov ecx, dword [rdx]
bswap ecx
sub qword [rsp + 0x130], 4
mov dword [rsp + 0x28], ecx
add rdx, 4
jmp 0x140066350
mov esi, dword [rsp + 0x130]
lea r8d, [rsi - 1]
jmp 0x140066147
mov ecx, dword [rdx]
bswap ecx
sub qword [rsp + 0x130], 4
mov dword [rsp + 0x28], ecx
add rdx, 4
mov ecx, dword [rsp + 0x38]
xor dword [rsp + 0x34], ecx
mov esi, dword [rsp + 0x34]
mov r8d, dword [rsp + 0xb0]
mov r14d, dword [rsp + 0x6c]
mov r9d, dword [rsp + 0x3c]
mov edi, dword [rsp + 0xb4]
mov r12d, dword [rsp + 0x28]
xor dword [rsp + 0x70], r12d
mov r12, qword [rsp + 0x10]
xor r8d, esi
xor dword [rsp + 0xbc], esi
mov ecx, r8d
mov r11, qword [rsp + 0x18]
xor edi, r14d
xor r9d, r14d
movzx esi, ch
mov r14, qword [rsp + 0x20]
xor dword [rsp + 0xc8], r9d
mov ebx, dword [rsp + 0x4c]
mov r9d, r8d
mov ebp, dword [r12 + rsi*4]
xor dword [rsp + 0x60], ebx
mov ebx, edi
shr r9d, 0x10
mov edi, dword [rsp + 0x5c]
movzx r9d, r9b
mov rcx, r11
mov rsi, qword [rsp + 8]
mov r15d, dword [rsp + 0x80]
mov r10d, dword [r14 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
mov r13d, dword [r11 + r9*4]
xor dword [rsp + 0x94], edi
xor r15d, edi
mov edi, dword [rsi + r8*4]
mov r8d, r10d
mov dword [rsp + 0x3c], r10d
xor r8d, ebp
movzx r10d, bl
xor edi, r13d
xor edi, r8d
mov r8d, ebx
shr r8d, 0x18
mov r8d, dword [rsi + r8*4]
movzx esi, bh
shr ebx, 0x10
movzx ebx, bl
mov r9d, dword [r12 + rsi*4]
mov r10d, dword [r11 + r10*4]
mov r11d, dword [r14 + rbx*4]
mov rbx, qword [rsp + 8]
xor r11d, r9d
mov esi, r11d
mov r11d, r8d
xor r11d, r10d
xor esi, r11d
mov r11d, r15d
shr r11d, 0x18
mov ebx, dword [rbx + r11*4]
mov r11d, r15d
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [r14 + r11*4]
movzx r14d, r15b
mov r14d, dword [rcx + r14*4]
mov ecx, r15d
xor r8d, ebx
mov r15, qword [rsp + 8]
movzx ecx, ch
mov r12d, dword [r12 + rcx*4]
mov rcx, qword [rsp + 0x20]
xor ebx, r14d
xor r10d, r14d
xor r10d, r13d
xor r12d, r11d
xor ebx, r12d
mov r12d, dword [rsp + 0x28]
mov r13d, r12d
shr r13d, 0x18
mov r13d, dword [r15 + r13*4]
mov r15d, r12d
shr r15d, 0x10
movzx r14d, r15b
mov r15, qword [rsp + 0x18]
mov r14d, dword [rcx + r14*4]
mov ecx, dword [rsp + 0x3c]
xor r8d, r13d
xor r11d, r14d
xor r11d, ecx
mov ecx, r12d
movzx ecx, ch
mov r12, rcx
mov rcx, qword [rsp + 0x10]
mov r12d, dword [rcx + r12*4]
movzx ecx, byte [rsp + 0x28]
xor r13d, dword [r15 + rcx*4]
xor r9d, r12d
xor r14d, r12d
xor r9d, ebp
mov ebp, edi
xor ebp, r8d
mov r15d, ebp
mov ebp, r10d
and r15d, 0xff000000
xor r13d, r14d
mov r14d, ebx
xor ebp, r13d
xor r14d, r9d
movzx ecx, bpl
mov ebp, esi
xor ebp, r11d
mov r12d, ecx
mov ecx, r14d
mov r14d, r10d
and ecx, 0xff00
and ebp, 0xff0000
shr r14d, 0x18
or r12d, r15d
or ebp, ecx
mov ecx, r14d
mov r14d, r11d
mov dword [rsp + 0xb0], r12d
mov dword [rsp + 0xc0], ebp
mov ebp, r8d
xor ecx, edi
shl r14d, 8
shl ebp, 8
movzx ecx, cl
mov r12d, r9d
xor ebp, esi
shl r12d, 8
and ebp, 0xff000000
xor r12d, r13d
or ebp, ecx
mov ecx, r14d
and r12d, 0xff00
xor ecx, ebx
and ecx, 0xff0000
or ecx, r12d
mov r12d, r10d
or ebp, ecx
mov ecx, r9d
mov r14d, ebp
mov dword [rsp + 0xb4], ebp
mov ebp, r11d
shl ebp, 0x10
xor ebp, r13d
and ebp, 0xff0000
shr ecx, 0x10
shr r10d, 8
shr r12d, 0x10
xor ecx, edi
xor r10d, ebx
xor r12d, esi
shr r11d, 8
and ecx, 0xff00
movzx r12d, r12b
shr r9d, 8
xor r11d, edi
or ebp, ecx
mov ecx, r8d
xor r9d, esi
shl r8d, 0x18
shl ecx, 0x10
and r11d, 0xff0000
xor r8d, r13d
and r9d, 0xff00
xor ecx, ebx
mov ebx, dword [rsp + 0x4c]
or r9d, r11d
and r8d, 0xff000000
and ecx, 0xff000000
movzx r10d, r10b
mov r11d, r9d
xor dword [rsp + 0x78], r14d
or ecx, r12d
mov r12d, ebp
or r8d, r10d
mov r10d, dword [rsp + 0x50]
or r12d, ecx
or r11d, r8d
xor dword [rsp + 0x90], r12d
xor ebx, r14d
mov dword [rsp + 0x80], r12d
mov dword [rsp + 0x3c], r11d
mov ecx, ebx
mov ebx, dword [rsp + 0xac]
xor r10d, r12d
mov r8d, ecx
movzx esi, ch
shr r8d, 0x10
movzx r8d, r8b
xor ebx, r11d
mov dword [rsp + 0x28], ebx
xor dword [rsp + 0xb8], r11d
mov rbp, qword [rsp + 0x20]
mov r9, qword [rsp + 0x10]
mov r14, qword [rsp + 0x18]
mov r12, qword [rsp + 8]
mov r13d, dword [rbp + r8*4]
movzx r8d, cl
shr ecx, 0x18
mov r11d, dword [r9 + rsi*4]
mov esi, dword [r14 + r8*4]
mov edi, dword [r12 + rcx*4]
mov ebx, r13d
xor ebx, r11d
mov dword [rsp + 0x4c], r11d
mov r11, r9
mov dword [rsp + 0x10], esi
xor edi, esi
xor edi, ebx
mov ebx, r10d
shr ebx, 0x18
mov ecx, ebx
mov ebx, r10d
movzx esi, bh
mov ecx, dword [r12 + rcx*4]
mov ebx, dword [rsp + 0x28]
mov r8d, dword [r9 + rsi*4]
movzx r9d, r10b
shr r10d, 0x10
movzx r10d, r10b
mov r9d, dword [r14 + r9*4]
mov esi, dword [rbp + r10*4]
mov r10d, ecx
shr ebx, 0x18
xor r10d, r9d
xor esi, r8d
xor esi, r10d
mov r10d, ebx
mov ebx, dword [rsp + 0x28]
mov r12d, dword [r12 + r10*4]
shr ebx, 0x10
movzx r10d, bl
mov ebx, dword [rsp + 0x28]
xor ecx, r12d
mov r10d, dword [rbp + r10*4]
movzx ebp, bl
movzx ebx, bh
mov ebp, dword [r14 + rbp*4]
mov r14, r11
mov r11d, dword [r11 + rbx*4]
xor r11d, r10d
xor r12d, ebp
xor r9d, ebp
mov ebx, r11d
mov r11d, dword [rsp + 0x10]
mov qword [rsp + 0x10], r14
xor ebx, r12d
mov r12, qword [rsp + 8]
xor r9d, r11d
mov r11d, r15d
mov r15d, dword [rsp + 0xc0]
shr r11d, 0x18
mov r11d, dword [r12 + r11*4]
mov r12d, dword [rsp + 0xb0]
xor ecx, r11d
or r12d, r15d
shr r15d, 0x10
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x20]
mov ebp, r15d
mov ebp, dword [rcx + rbp*4]
mov ecx, r12d
movzx r12d, r12b
movzx ecx, ch
xor r10d, ebp
xor r10d, r13d
mov r13d, dword [r14 + rcx*4]
mov r15d, dword [rsp + 0x4c]
mov r14, qword [rsp + 0x18]
mov ecx, dword [rsp + 0x28]
xor r8d, r13d
xor ebp, r13d
mov r13d, esi
xor r11d, dword [r14 + r12*4]
xor r8d, r15d
mov r15d, ebx
mov r12d, r10d
xor r15d, r8d
xor r13d, r10d
mov dword [rsp + 0x4c], r15d
mov r15d, r9d
mov dword [rsp + 0x28], r13d
mov r13d, r9d
xor r11d, ebp
mov ebp, r8d
xor r15d, r11d
mov dword [rsp + 0xc0], r15d
mov r15d, edi
xor r15d, ecx
shl r12d, 8
shl ebp, 8
shr r13d, 0x18
xor r12d, ebx
xor ebp, r11d
xor r13d, edi
and ebp, 0xff00
and r12d, 0xff0000
movzx r13d, r13b
or r12d, ebp
mov ebp, ecx
shl ebp, 8
xor ebp, esi
and ebp, 0xff000000
or ebp, r13d
mov r13d, r9d
or r12d, ebp
mov ebp, r8d
shr r13d, 0x10
shr r8d, 8
mov dword [rsp + 0x50], r12d
mov r12d, r10d
shr ebp, 0x10
xor r13d, esi
shl r12d, 0x10
xor ebp, edi
movzx r13d, r13b
shr r10d, 8
xor r12d, r11d
and ebp, 0xff00
xor r10d, edi
mov rdi, qword [rsp + 0x10]
and r12d, 0xff0000
and r10d, 0xff0000
or r12d, ebp
mov ebp, ecx
shl ebp, 0x10
xor ebp, ebx
and ebp, 0xff000000
or ebp, r13d
mov r13d, r12d
or r13d, ebp
xor r8d, esi
shl ecx, 0x18
shr r9d, 8
xor ecx, r11d
xor r9d, ebx
and r8d, 0xff00
mov esi, dword [rsp + 0x50]
or r8d, r10d
and ecx, 0xff000000
movzx r9d, r9b
mov r11d, dword [rsp + 0x30]
or ecx, r9d
mov r10d, r8d
mov rbp, qword [rsp + 0x20]
mov ebx, dword [rsp + 0x74]
or r10d, ecx
mov ecx, dword [rsp + 0x38]
xor dword [rsp + 0x48], r13d
mov dword [rsp + 0xac], r13d
xor dword [rsp + 0x64], esi
mov dword [rsp + 0xb0], r10d
xor r11d, r13d
mov r13, qword [rsp + 8]
xor ebx, r10d
xor ecx, esi
xor dword [rsp + 0x8c], r10d
mov r8d, ecx
movzx esi, ch
movzx r9d, cl
shr r8d, 0x10
shr ecx, 0x18
mov r9d, dword [r14 + r9*4]
movzx r8d, r8b
mov r12d, dword [r13 + rcx*4]
mov r10d, dword [rbp + r8*4]
mov r8d, dword [rdi + rsi*4]
xor r12d, r9d
mov ecx, r10d
xor ecx, r8d
xor r12d, ecx
mov ecx, r11d
shr ecx, 0x18
mov ecx, dword [r13 + rcx*4]
mov dword [rsp + 0x18], ecx
mov ecx, r11d
movzx esi, ch
mov esi, dword [rdi + rsi*4]
movzx edi, r11b
shr r11d, 0x10
movzx r11d, r11b
mov edi, dword [r14 + rdi*4]
xor r8d, esi
xor esi, dword [rbp + r11*4]
mov ecx, dword [rsp + 0x18]
mov r11d, ebx
shr r11d, 0x18
xor r9d, edi
xor ecx, edi
mov edi, dword [r13 + r11*4]
mov r11d, ebx
mov r13, rbp
shr r11d, 0x10
xor esi, ecx
mov ecx, dword [rsp + 0x18]
mov qword [rsp + 0x18], r14
movzx r11d, r11b
mov r11d, dword [rbp + r11*4]
movzx ebp, bl
movzx ebx, bh
mov ebp, dword [r14 + rbp*4]
mov r14, qword [rsp + 0x10]
xor ecx, edi
xor r10d, r11d
xor r11d, dword [r14 + rbx*4]
mov ebx, r15d
mov r15, qword [rsp + 8]
xor edi, ebp
shr ebx, 0x18
xor r9d, ebp
mov r15d, dword [r15 + rbx*4]
mov ebx, dword [rsp + 0x4c]
xor r11d, edi
mov rdi, qword [rsp + 0x28]
movzx ebp, bh
xor ecx, r15d
shr rdi, 0x10
and edi, 0xff
mov edi, dword [r13 + rdi*4]
mov r13d, dword [r14 + rbp*4]
movzx ebp, byte [rsp + 0xc0]
mov r14, qword [rsp + 0x18]
xor r10d, edi
xor edi, r13d
xor r8d, r13d
mov r13d, esi
mov ebx, dword [r14 + rbp*4]
mov ebp, r11d
xor r13d, r10d
xor ebp, r8d
and r13d, 0xff0000
and ebp, 0xff00
xor ebx, r15d
xor ebx, edi
mov edi, r9d
xor edi, ebx
movzx edi, dil
or ebp, edi
mov edi, r12d
xor edi, ecx
and edi, 0xff000000
or edi, r13d
mov r13d, r9d
or ebp, edi
mov edi, r8d
mov dword [rsp + 0x38], ebp
mov ebp, r10d
shl edi, 8
shl ebp, 8
xor edi, ebx
xor ebp, r11d
and edi, 0xff00
and ebp, 0xff0000
or ebp, edi
mov edi, ecx
shl edi, 8
xor edi, esi
and edi, 0xff000000
shr r13d, 0x18
xor r13d, r12d
movzx r13d, r13b
or edi, r13d
mov r13d, r9d
shr r9d, 8
or ebp, edi
mov edi, r8d
shr r13d, 0x10
shr r8d, 8
mov dword [rsp + 0x30], ebp
mov ebp, r10d
shr edi, 0x10
shr r10d, 8
shl ebp, 0x10
xor edi, r12d
xor r13d, esi
xor r10d, r12d
xor ebp, ebx
and edi, 0xff00
xor r8d, esi
xor r9d, r11d
and ebp, 0xff0000
and r10d, 0xff0000
and r8d, 0xff00
movzx r13d, r13b
or ebp, edi
mov edi, ecx
shl ecx, 0x18
movzx r9d, r9b
shl edi, 0x10
xor ecx, ebx
or r8d, r10d
xor edi, r11d
and ecx, 0xff000000
and edi, 0xff000000
or ecx, r9d
or edi, r13d
or ebp, edi
or r8d, ecx
cmp qword [rsp + 0x130], 4
mov dword [rsp + 0x4c], r8d
mov dword [rsp + 0x74], ebp
mov r8d, 3
jbe 0x140066afd
mov ecx, dword [rdx]
bswap ecx
sub qword [rsp + 0x130], 4
mov dword [rsp + 0x28], ecx
add rdx, 4
jmp 0x140066d0a
lea rsi, [0x1401bbfc0]
lea rbx, [0x1401bbbc0]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rbx
lea rsi, [0x1401bb7c0]
lea rbx, [0x1401bc3c0]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 8], rbx
jmp 0x1400674be
lea rsi, [0x1401bbfc0]
lea rbx, [0x1401bbbc0]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rbx
lea rsi, [0x1401bb7c0]
lea rbx, [0x1401bc3c0]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 8], rbx
jmp 0x140067cb5
xor ecx, ecx
jmp 0x140066b42