Function at 0x180089ab0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
mov r13, r8
mov rsi, rdx
mov rdi, rcx
mov r14, qword [rdx + 0x38]
mov qword [rdx + 0x38], 0
test r14, r14
je 0x180089b22
movzx eax, byte [r14 + 0x80]
test al, al
jne 0x180089b6e
mov r12, rsi
mov rax, qword [r13]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
call qword [rdx]
mov rbx, rax
mov r15, rdx
lea rax, [r14 + 0x50]
mov cl, 1
xchg byte [r14 + 0x60], cl
xor esi, esi
test cl, cl
cmove rsi, rax
je 0x180089b40
mov rcx, r15
call qword [rbx + 0x18]
mov rsi, r12
jmp 0x180089b6e
mov byte [rsp + 0x1d8], 3
movzx eax, byte [rsp + 0x1d8]
cmp eax, 4
jne 0x180089c90
jmp 0x18008b2d6
mov rax, qword [rsi]
test rax, rax
je 0x180089b4f
mov rcx, qword [rsi + 8]
call qword [rax + 0x18]
mov qword [rsi], rbx
mov qword [rsi + 8], r15
xor eax, eax
xchg byte [rsi + 0x10], al
movzx eax, byte [r14 + 0x80]
test al, al
mov rsi, r12
je 0x18008a6f2
lea rax, [r14 + 0x10]
mov dl, 1
xchg byte [r14 + 0x48], dl
xor ecx, ecx
test dl, dl
cmove rcx, rax
je 0x180089ba9
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x180089bca
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18008b90b
mov rcx, rax
mov qword [0x180219958], rax
jmp 0x180089bca
movzx eax, byte [rcx + 0x31]
mov byte [rcx + 0x31], 2
cmp al, 2
jne 0x18008a69b
xor eax, eax
xchg byte [rcx + 0x38], al
mov rcx, qword [0x180219958]
test rcx, rcx
je 0x180089b8e
mov r8d, 0x38
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18008b90b
mov rbx, rax
mov qword [rax], 0
mov byte [rax + 0x29], 2
mov byte [rax + 0x30], 4
lea rdx, [0x1801dbfe6]
mov r8d, 0x19
mov rcx, rax
call fcn.18008d530
mov qword [rsp + 0x168], rbx
mov byte [rsp + 0x1d8], 2
mov bl, 1
mov al, 1
xchg byte [r14 + 0x80], al
mov al, 1
xchg byte [r14 + 0x60], al
test al, al
jne 0x180089c4b
mov rax, qword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
mov qword [r14 + 0x50], 0
xor edx, edx
xchg byte [r14 + 0x60], dl
test rax, rax
je 0x180089c4b
call qword [rax + 0x18]
xchg byte [r14 + 0x78], bl
test bl, bl
jne 0x180089c71
mov rax, qword [r14 + 0x68]
mov rcx, qword [r14 + 0x70]
mov qword [r14 + 0x68], 0
xor edx, edx
xchg byte [r14 + 0x78], dl
test rax, rax
je 0x180089c71
call qword [rax + 8]
lock dec qword [r14]
jne 0x180089c7f
mov rcx, r14
call fcn.18008df60
movzx eax, byte [rsp + 0x1d8]
cmp eax, 4
je 0x18008b2d6
cmp eax, 3
je 0x180089cb2
cmp eax, 2
jne 0x18008a295
mov rax, qword [rsp + 0x168]
mov qword [rdi], rax
mov byte [rdi + 0x70], 2
jmp 0x18008b2da
mov rbx, qword [rsi + 0x30]
test rbx, rbx
mov qword [rsp + 0x68], rdi
je 0x18008b2c7
lea rcx, [rbx + 0x10]
mov qword [rsp + 0x280], rcx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x180219990]
shl rax, 1
test rax, rax
mov rdi, rbx
mov qword [rsp + 0x40], rsi
jne 0x18008b036
mov dword [rsp + 0x4c], 0
mov qword [rsp + 0x260], r13
movzx eax, byte [rdi + 0x18]
test al, al
jne 0x18008b907
cmp qword [rdi + 0x78], 0
mov qword [rsp + 0x38], rdi
je 0x18008a39a
mov rax, qword [rdi + 0xd0]
mov qword [rsp + 0x160], rax
mov eax, dword [rdi + 0xd8]
mov dword [rsp + 0x70], eax
mov rcx, qword [rdi + 0x80]
mov rdx, qword [rdi + 0x88]
mov rsi, qword [rsp + 0x40]
mov r8, rsi
call fcn.180095a60
mov rdx, qword [rdi + 0x60]
mov r8, qword [rdi + 0x68]
mov rcx, rax
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rcx, [rdx - 0x48]
mov qword [rsp + 0x110], rcx
movzx r9d, byte [rsi]
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x80], rcx
movzx ecx, byte [rsi + 1]
mov byte [rsp + 0x30], cl
mov rcx, qword [rsi + 0x18]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsi + 0x20]
mov qword [rsp + 0x78], rcx
neg rcx
mov qword [rsp + 0x88], rcx
xor ecx, ecx
mov qword [rsp + 0x58], rcx
pcmpeqd xmm1, xmm1
mov dword [rsp + 0x100], r9d
mov qword [rsp + 0x28], rdx
and rax, r8
movdqu xmm2, xmmword [rdx + rax]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pmovmskb ecx, xmm3
test ecx, ecx
jne 0x180089e40
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
test ecx, ecx
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
jne 0x18008a39a
mov rcx, qword [rsp + 0x58]
add rax, rcx
add rax, 0x10
add rcx, 0x10
mov qword [rsp + 0x58], rcx
jmp 0x180089dcc
test cl, cl
je 0x18008b907
lea ecx, [rbp - 1]
and ecx, ebp
test cx, cx
mov r8, rbx
mov rax, r15
mov r9d, dword [rsp + 0x100]
je 0x180089de4
mov ebp, ecx
tzcnt ecx, ebp
mov r15, rax
add rcx, rax
mov rbx, r8
and rcx, r8
neg rcx
lea rsi, [rcx + rcx*8]
mov rax, qword [rsp + 0x110]
lea r13, [rax + rsi*8]
cmp r9d, 1
je 0x180089f10
cmp r9d, 2
jne 0x18008b907
movzx ecx, byte [r13]
cmp cl, 2
jne 0x180089e20
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 0x10]
mov r11, qword [r13 + 8]
cmp rcx, qword [r11 + 0x10]
jne 0x180089e28
mov rax, qword [rsp + 0x80]
mov r12, qword [rax + 8]
mov r11, qword [r11 + 8]
mov rdi, rcx
neg rdi
mov r14, 0xffffffffffffffff
nop word cs:[rax + rax]
lea r10, [rdi + r14]
cmp r10, 0xffffffffffffffff
je 0x180089f40
movzx r10d, byte [r12 + r14 + 1]
movzx r8d, byte [r11 + r14 + 1]
lea edx, [r10 - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
lea r9d, [r8 - 0x41]
cmp r9b, 0x1a
setb r9b
shl r9b, 5
or dl, r10b
or r9b, r8b
inc r14
cmp dl, r9b
je 0x180089ec0
cmp r14, rcx
jb 0x180089e28
jmp 0x180089f40
movzx ecx, byte [r13]
cmp cl, 1
jne 0x180089e20
movzx ecx, byte [r13 + 1]
cmp byte [rsp + 0x30], 0
je 0x180089f33
test cl, cl
jne 0x180089f40
jmp 0x180089e28
test cl, cl
jne 0x180089e28
nop dword [rax + rax]
mov rax, qword [rsp + 0x78]
cmp rax, qword [r13 + 0x20]
jne 0x180089e28
mov r11, qword [r13 + 0x18]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
mov rax, qword [rsp + 0x88]
lea rdx, [rax + rcx]
cmp rdx, 0xffffffffffffffff
je 0x180089fbb
mov rax, qword [rsp + 0x60]
movzx edx, byte [rax + rcx + 1]
movzx r8d, byte [r11 + rcx + 1]
lea r9d, [rdx - 0x41]
cmp r9b, 0x1a
setb r9b
shl r9b, 5
lea r10d, [r8 - 0x41]
cmp r10b, 0x1a
setb r10b
shl r10b, 5
or r9b, dl
or r10b, r8b
inc rcx
cmp r9b, r10b
je 0x180089f60
cmp rcx, qword [rsp + 0x78]
jb 0x180089e28
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx + rsi*8 - 8]
test rax, rax
mov rdi, qword [rsp + 0x38]
je 0x18008a39a
lea r12, [rcx + rsi*8]
add r12, 0xffffffffffffffe8
lea r15, [rsp + 0x120]
mov r13, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea r14, [rsp + 0x90]
jmp 0x18008a016
mov rcx, r14
call fcn.18008dfd0
mov rax, qword [r12 + 0x10]
test rax, rax
je 0x18008a39a
dec rax
mov qword [r12 + 0x10], rax
mov rcx, qword [r12]
lea rdx, [rax + rax*8]
mov eax, dword [rcx + rdx*8 + 0x40]
cmp eax, 0x3b9aca00
je 0x18008a39a
lea rcx, [rcx + rdx*8]
mov edx, dword [rcx + 0x44]
movdqu xmm0, xmmword [rcx]
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm2, xmmword [rcx + 0x20]
movdqu xmm3, xmmword [rcx + 0x30]
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xc0], xmm3
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0xd4], edx
mov rax, qword [rsp + 0xb8]
movzx eax, byte [rax + 0x10]
test al, al
jne 0x18008a000
cmp byte [rsp + 0xa0], 2
jne 0x18008a0b7
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 0x10]
cmp rax, 3
je 0x18008a000
jmp 0x18008a0cd
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x18008a000
mov rbp, qword [rsp + 0xc8]
mov esi, dword [rsp + 0xd0]
cmp dword [rsp + 0x70], 0x3b9aca00
je 0x18008a217
mov qword [rsp + 0x120], 0
mov rcx, r15
call r13
test eax, eax
je 0x18008b91c
mov rbx, qword [rsp + 0x120]
mov r8, qword [0x180219970]
test r8, r8
jne 0x18008a14d
mov qword [rsp + 0x120], 0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x18008b91c
mov r8, qword [rsp + 0x120]
mov qword [0x180219970], r8
test r8, r8
je 0x18008b907
mov rax, rbx
or rax, r8
shr rax, 0x20
je 0x18008a166
mov rax, rbx
xor edx, edx
div r8
mov rcx, rax
jmp 0x18008a16f
mov eax, ebx
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x18008a189
xor edx, edx
div r8
jmp 0x18008a18e
xor edx, edx
div r8d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov qword [rsp + 0x168], rdx
mov dword [rsp + 0x170], ecx
lea rcx, [rsp + 0x168]
mov rdx, rbp
mov r8d, esi
call fcn.180104920
cmp edx, 0x3b9aca00
mov ecx, 0
cmove rax, rcx
mov r8, qword [rsp + 0x160]
cmp rax, r8
jb 0x18008a217
cmp edx, 0x3b9aca00
setne cl
cmp edx, dword [rsp + 0x70]
seta dl
cmp rax, r8
jne 0x18008a000
and cl, dl
jne 0x18008a000
mov dword [rsp + 0x28], esi
mov r9, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
movzx edx, byte [rsp + 0xa0]
mov r14, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xb8]
movzx edi, byte [rsp + 0xc0]
movzx esi, byte [rsp + 0xc1]
lea r8, [rsp + 0xc2]
cmp dl, 2
jne 0x18008b05a
mov qword [rsp + 0x88], r13
mov r13d, esi
mov byte [rsp + 0x60], dl
test r14, r14
je 0x18008b466
mov rcx, r14
mov rsi, r9
call qword [rbx + 0x20]
mov r9, rsi
jmp 0x18008b468
mov rcx, qword [rsp + 0x168]
movups xmm0, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0xe0], xmm0
mov rdx, qword [rsp + 0x1d0]
mov qword [rsp + 0xf0], rdx
mov edx, dword [rsp + 0x1d9]
mov dword [rsp + 0x50], edx
mov edx, dword [rsp + 0x1dc]
mov dword [rsp + 0x53], edx
mov rdx, qword [rsp + 0xf0]
mov qword [rdi + 0x68], rdx
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [rdi + 0x58], xmm0
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rdi + 0x48], xmm0
movdqa xmm0, xmmword [rsp + 0x90]
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm2, xmmword [rsp + 0xb0]
movdqa xmm3, xmmword [rsp + 0xc0]
movdqu xmmword [rdi + 0x38], xmm3
movdqu xmmword [rdi + 0x28], xmm2
movdqu xmmword [rdi + 0x18], xmm1
movdqu xmmword [rdi + 8], xmm0
mov edx, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x53]
mov dword [rdi + 0x71], edx
mov dword [rdi + 0x74], r8d
mov qword [rdi], rcx
mov byte [rdi + 0x70], al
jmp 0x18008b2da
mov dword [rsp + 0x1a8], 0x3b9aca00
mov ebx, 0x3b9aca00
mov dword [rsp + 0x160], 0
mov rsi, qword [rsp + 0x40]
mov dword [rsp + 0x28], ebx
mov rcx, qword [rdi + 0x80]
mov rdx, qword [rdi + 0x88]
mov r8, rsi
call fcn.180095a60
mov rdx, qword [rdi + 0x60]
mov r8, qword [rdi + 0x68]
mov rcx, rax
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rcx, [rdx - 0x48]
mov qword [rsp + 0x110], rcx
movzx r9d, byte [rsi]
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x80], rcx
movzx ecx, byte [rsi + 1]
mov byte [rsp + 0x30], cl
mov rcx, qword [rsi + 0x18]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsi + 0x20]
mov qword [rsp + 0x78], rcx
neg rcx
mov qword [rsp + 0x88], rcx
xor ecx, ecx
mov qword [rsp + 0x70], rcx
pcmpeqd xmm1, xmm1
mov dword [rsp + 0x100], r9d
mov qword [rsp + 0x58], rdx
and rax, r8
movdqu xmm2, xmmword [rdx + rax]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pmovmskb ecx, xmm3
test ecx, ecx
jne 0x18008a4c2
pcmpeqb xmm2, xmm1
pmovmskb ecx, xmm2
test ecx, ecx
jne 0x18008a903
mov rcx, qword [rsp + 0x70]
add rax, rcx
add rax, 0x10
add rcx, 0x10
mov qword [rsp + 0x70], rcx
mov rdx, qword [rsp + 0x58]
jmp 0x18008a44e
test cl, cl
je 0x18008b907
lea ecx, [r13 - 1]
and ecx, r13d
test cx, cx
mov r8, rax
mov rax, r12
mov r9d, dword [rsp + 0x100]
je 0x18008a466
mov r13d, ecx
tzcnt esi, r13d
mov r12, rax
add rsi, rax
mov rax, r8
and rsi, r8
mov rcx, rsi
neg rcx
lea r15, [rcx + rcx*8]
mov rcx, qword [rsp + 0x110]
lea rdi, [rcx + r15*8]
cmp r9d, 1
je 0x18008a590
cmp r9d, 2
jne 0x18008b907
movzx ecx, byte [rdi]
cmp cl, 2
jne 0x18008a4a0
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x10]
mov r10, qword [rdi + 8]
cmp rcx, qword [r10 + 0x10]
jne 0x18008a4a8
mov rdx, qword [rsp + 0x80]
mov r11, qword [rdx + 8]
mov r14, qword [r10 + 8]
mov rbp, rcx
neg rbp
mov r10, 0xffffffffffffffff
nop dword [rax + rax]
lea r8, [r10 + rbp]
cmp r8, 0xffffffffffffffff
je 0x18008a5c0
movzx r8d, byte [r11 + r10 + 1]
movzx edx, byte [r14 + r10 + 1]
lea r9d, [r8 - 0x41]
cmp r9b, 0x1a
setb r9b
shl r9b, 5
lea ebx, [rdx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or r9b, r8b
or bl, dl
inc r10
cmp r9b, bl
je 0x18008a540
cmp r10, rcx
jb 0x18008a4a8
jmp 0x18008a5c0
movzx ecx, byte [rdi]
cmp cl, 1
jne 0x18008a4a0
movzx ecx, byte [rdi + 1]
cmp byte [rsp + 0x30], 0
je 0x18008a5b0
test cl, cl
jne 0x18008a5c0
jmp 0x18008a4a8
test cl, cl
jne 0x18008a4a8
nop dword [rax + rax]
mov rcx, qword [rsp + 0x78]
cmp rcx, qword [rdi + 0x20]
jne 0x18008a4a8
mov r10, qword [rdi + 0x18]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
mov rdx, qword [rsp + 0x88]
add rdx, rcx
cmp rdx, 0xffffffffffffffff
je 0x18008a63a
mov rdx, qword [rsp + 0x60]
movzx edx, byte [rdx + rcx + 1]
movzx r8d, byte [r10 + rcx + 1]
lea r9d, [rdx - 0x41]
cmp r9b, 0x1a
setb r9b
shl r9b, 5
lea r11d, [r8 - 0x41]
cmp r11b, 0x1a
setb r11b
shl r11b, 5
or r9b, dl
or r11b, r8b
inc rcx
cmp r9b, r11b
je 0x18008a5e0
cmp rcx, qword [rsp + 0x78]
jb 0x18008a4a8
shl rsi, 3
lea rcx, [rsi + rsi*8]
sar rcx, 3
movabs rsi, 0x8e38e38e38e38e39
imul rsi, rcx
lea r8, [rsi - 0x10]
and r8, rax
mov r11, qword [rsp + 0x58]
movdqu xmm0, xmmword [r11 + r8]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb ecx, xmm0
movdqu xmm0, xmmword [r11 + rsi]
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
test ecx, ecx
je 0x18008a87c
bsr r9w, cx
xor r9d, 0xf
jmp 0x18008a881
movzx edx, byte [rcx + 0x30]
mov byte [rsp + 0x250], dl
movdqu xmm0, xmmword [rcx]
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm2, xmmword [rcx + 0x20]
movdqa xmmword [rsp + 0x240], xmm2
movdqa xmmword [rsp + 0x230], xmm1
movdqa xmmword [rsp + 0x220], xmm0
mov edx, dword [rcx + 0x32]
mov dword [rsp + 0x108], edx
movzx edx, word [rcx + 0x36]
mov word [rsp + 0x10c], dx
xor edx, edx
xchg byte [rcx + 0x38], dl
cmp al, 3
jne 0x18008a786
mov r15, rsi
mov rsi, qword [rsi + 0x38]
test rsi, rsi
je 0x18008a761
mov bl, 1
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x18008a72e
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
xor edx, edx
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x18008a72e
call qword [rax + 0x18]
xchg byte [rsi + 0x78], bl
test bl, bl
jne 0x18008a752
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
xor edx, edx
xchg byte [rsi + 0x78], dl
test rax, rax
je 0x18008a752
call qword [rax + 8]
mov rcx, qword [r15 + 0x38]
lock dec qword [rcx]
jne 0x18008a761
call fcn.18008df60
mov qword [r15 + 0x38], r14
mov byte [rsp + 0x1d8], 4
mov rsi, r15
movzx eax, byte [rsp + 0x1d8]
cmp eax, 4
jne 0x180089c90
jmp 0x18008b2d6
movdqa xmm0, xmmword [rsp + 0x220]
movdqa xmm1, xmmword [rsp + 0x230]
movdqa xmm2, xmmword [rsp + 0x240]
movdqa xmmword [rsp + 0x200], xmm2
movzx ecx, byte [rsp + 0x250]
mov byte [rsp + 0x210], cl
movdqa xmmword [rsp + 0x1f0], xmm1
movdqa xmmword [rsp + 0x1e0], xmm0
mov byte [rsp + 0x211], al
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x212], eax
movzx eax, word [rsp + 0x10c]
mov word [rsp + 0x216], ax
mov rax, qword [rsp + 0x208]
movzx eax, byte [rax + 0x10]
test al, al
je 0x18008aa49
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x18008a829
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18008b90b
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x38
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18008b90b
mov byte [rax + 0x29], 2
mov byte [rax + 0x30], 4
mov qword [rax], 1
lea rcx, [0x1801db9b8]
mov qword [rax + 8], rcx
mov qword [rsp + 0x168], rax
mov byte [rsp + 0x1d8], 2
lea rcx, [rsp + 0x1e0]
call fcn.18008dfd0
jmp 0x180089c18
mov r9w, 0x10
mov r10, qword [rsp + 0x38]
lea rcx, [r11 + r15*8]
or edx, 0x10000
tzcnt edx, edx
add r9d, edx
mov dl, 0x80
cmp r9w, 0xf
ja 0x18008a8a6
inc qword [r10 + 0x70]
mov dl, 0xff
mov byte [r11 + rsi], dl
mov byte [r8 + r11 + 0x10], dl
dec qword [r10 + 0x78]
movdqu xmm0, xmmword [rcx - 0x48]
movdqu xmm1, xmmword [rcx - 0x38]
movdqu xmm2, xmmword [rcx - 0x28]
movdqu xmm3, xmmword [rcx - 0x18]
movdqa xmmword [rsp + 0x90], xmm0
mov rax, qword [rcx - 8]
mov qword [rsp + 0xd0], rax
movdqa xmmword [rsp + 0xc0], xmm3
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movzx eax, byte [rsp + 0x90]
cmp al, 3
jne 0x18008a90d
mov r15d, dword [rsp + 0x28]
jmp 0x18008a9b8
mov r14, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
cmp al, 2
jb 0x18008a955
mov rbx, qword [rsp + 0x98]
lea rcx, [rbx + 0x18]
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rsp + 0xb8]
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xb0]
call qword [rax + 0x10]
test r14, r14
mov r15d, dword [rsp + 0x28]
je 0x18008a9b8
test rdi, rdi
je 0x18008a9a1
mov rbx, r14
nop word [rax + rax]
mov rcx, rbx
call fcn.18008dfd0
add rbx, 0x48
dec rdi
jne 0x18008a990
test rsi, rsi
je 0x18008a9b8
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp r15d, 0x3b9aca00
sete bpl
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
jne 0x18008b224
cmp qword [rsi + 0x38], 0
je 0x18008aa36
movdqa xmm0, xmmword [rsp + 0x120]
movdqa xmm1, xmmword [rsp + 0x130]
movdqa xmm2, xmmword [rsp + 0x140]
movdqa xmm3, xmmword [rsp + 0x150]
movdqa xmmword [rsp + 0x210], xmm3
movdqa xmmword [rsp + 0x200], xmm2
movdqa xmmword [rsp + 0x1f0], xmm1
movdqa xmmword [rsp + 0x1e0], xmm0
mov bpl, 1
mov eax, dword [rsp + 0x4c]
test al, al
jne 0x18008b2b0
jmp 0x18008b296
mov rcx, qword [0x180219958]
test rcx, rcx
je 0x18008aa72
mov rdi, qword [rsp + 0x38]
jmp 0x18008aa90
cmp byte [rsp + 0x1f0], 2
jne 0x18008ab13
mov rax, qword [rsp + 0x1e0]
mov rax, qword [rax + 0x10]
cmp rax, 3
je 0x18008a804
jmp 0x18008ab29
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
mov rdi, qword [rsp + 0x38]
je 0x18008b925
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x88
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18008b925
mov qword [rax], 1
mov qword [rax + 8], 1
mov byte [rax + 0x41], 2
mov byte [rax + 0x48], 0
mov qword [rax + 0x50], 0
mov byte [rax + 0x60], 0
mov qword [rax + 0x68], 0
mov byte [rax + 0x78], 0
mov byte [rax + 0x80], 0
lock inc qword [rax]
jle 0x18008b907
movzx ecx, byte [rsi]
test rcx, rcx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x11c], ebp
je 0x18008ab90
cmp ecx, 1
jne 0x18008ab94
movzx ecx, byte [rsi + 1]
mov dl, 1
jmp 0x18008abd3
mov rax, qword [rsp + 0x1e0]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x18008a804
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x150], rax
movdqa xmm0, xmmword [rsp + 0x1e0]
movdqa xmm1, xmmword [rsp + 0x1f0]
movdqa xmm2, xmmword [rsp + 0x200]
movdqa xmmword [rsp + 0x140], xmm2
movdqa xmmword [rsp + 0x130], xmm1
movdqa xmmword [rsp + 0x120], xmm0
mov rdx, qword [rsi + 0x30]
lea rcx, [rsp + 0x168]
lea r9, [rsp + 0x120]
mov r8, rsi
call fcn.1800de700
jmp 0x180089c18
xor edx, edx
jmp 0x18008abd3
mov rsi, qword [rsi + 8]
mov ecx, 0x20
mov edx, 8
call fcn.18001d7b0
test rax, rax
je 0x18008b950
mov r14, rax
lea rdx, [rsi + 0x18]
mov rax, qword [rsi]
mov r8, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
mov rcx, r14
call qword [rax]
mov dl, 2
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
add rax, 0x50
mov qword [rsp + 0x278], rax
lea rax, [rdi + 0x90]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x90], dl
mov byte [rsp + 0x91], cl
mov qword [rsp + 0x98], r14
lea rcx, [rsp + 0xa0]
lea rdx, [rsi + 0x28]
mov rax, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
mov r9, qword [rsi + 0x20]
call qword [rax]
lea rax, [rdi + 0xb0]
mov qword [rsp + 0x268], rax
mov rcx, qword [rdi + 0xb0]
mov rdx, qword [rdi + 0xb8]
lea r8, [rsp + 0x90]
call fcn.180095a60
mov rdx, qword [rdi + 0x90]
mov rbx, qword [rdi + 0x98]
mov rcx, rax
shr rcx, 0x39
mov qword [rsp + 0x258], rcx
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rcx, [rdx - 0x50]
movzx r8d, byte [rsp + 0x90]
mov dword [rsp + 0x60], r8d
mov r8, qword [rsp + 0x98]
mov qword [rsp + 0x100], r8
movzx r8d, byte [rsp + 0x91]
mov byte [rsp + 0x78], r8b
mov r10, qword [rsp + 0xa8]
mov r11, qword [rsp + 0xb0]
mov qword [rsp + 0x80], r11
neg r11
xor r8d, r8d
mov qword [rsp + 0x70], r8
pcmpeqd xmm1, xmm1
mov qword [rsp + 0x270], rax
mov rsi, rax
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x58], rdx
and rsi, rbx
movdqu xmm2, xmmword [rdx + rsi]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pmovmskb r8d, xmm3
test r8d, r8d
mov qword [rsp + 0x88], rsi
jne 0x18008ad72
pcmpeqb xmm2, xmm1
pmovmskb r8d, xmm2
test r8d, r8d
jne 0x18008b777
mov rax, qword [rsp + 0x70]
add rsi, rax
add rsi, 0x10
add rax, 0x10
mov qword [rsp + 0x70], rax
mov rdx, qword [rsp + 0x58]
jmp 0x18008ace3
mov eax, dword [rsp + 0x60]
cmp eax, 1
je 0x18008ae2d
test eax, eax
je 0x18008b907
lea r8d, [r9 - 1]
and r8d, r9d
test r8w, r8w
mov rbx, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x88]
je 0x18008ad05
mov r9d, r8d
tzcnt r8d, r9d
add r8, rsi
and r8, rbx
neg r8
lea rsi, [r8 + r8*4]
shl rsi, 4
lea rdi, [rcx + rsi]
movzx r8d, byte [rcx + rsi]
cmp r8, 1
je 0x18008ad40
cmp r8d, 2
jne 0x18008b907
mov eax, dword [rsp + 0x60]
cmp al, 2
jne 0x18008ad4d
mov rbx, qword [rdi + 8]
mov r8, qword [rbx + 0x10]
mov rax, qword [rsp + 0x100]
cmp r8, qword [rax + 0x10]
jne 0x18008ad55
mov r15, qword [rbx + 8]
mov rax, qword [rsp + 0x100]
mov rbx, qword [rax + 8]
mov r13, r8
neg r13
mov rbp, 0xffffffffffffffff
nop
mov r14, r13
add r14, rbp
cmp r14, 0xffffffffffffffff
je 0x18008ae4a
movzx r14d, byte [r15 + rbp + 1]
movzx eax, byte [rbx + rbp + 1]
lea edx, [r14 - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
lea r12d, [rax - 0x41]
cmp r12b, 0x1a
setb r12b
shl r12b, 5
or dl, r14b
or r12b, al
inc rbp
cmp dl, r12b
je 0x18008ade0
cmp rbp, r8
jb 0x18008ad55
jmp 0x18008ae4a
cmp byte [rdi + 1], 0
je 0x18008ae3f
cmp byte [rsp + 0x78], 0
jne 0x18008ae4a
jmp 0x18008ad55
cmp byte [rsp + 0x78], 0
jne 0x18008ad55
mov rax, qword [rsp + 0x80]
cmp qword [rdi + 0x20], rax
jne 0x18008ad55
mov rdi, qword [rdi + 0x18]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
lea rax, [r11 + r8]
cmp rax, 0xffffffffffffffff
je 0x18008aebc
movzx eax, byte [rdi + r8 + 1]
movzx edx, byte [r10 + r8 + 1]
lea ebx, [rax - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
lea ebp, [rdx - 0x41]
cmp bpl, 0x1a
setb bpl
shl bpl, 5
or bl, al
or bpl, dl
inc r8
cmp bl, bpl
je 0x18008ae70
cmp r8, qword [rsp + 0x80]
jb 0x18008ad55
mov r15, qword [rsp + 0x58]
add r15, rsi
movdqu xmm0, xmmword [rsp + 0x90]
movdqu xmm1, xmmword [rsp + 0xa0]
movdqu xmm2, xmmword [rsp + 0xb0]
movdqa xmmword [rsp + 0x240], xmm2
movdqa xmmword [rsp + 0x230], xmm1
movdqa xmmword [rsp + 0x220], xmm0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
mov qword [rsp + 0xc0], r15
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xc8], rax
movzx eax, byte [rsp + 0x90]
cmp al, 3
mov rdi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x260]
je 0x18008af96
cmp al, 2
jb 0x18008af73
mov rbx, qword [rsp + 0x98]
lea rcx, [rbx + 0x18]
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rsp + 0xb8]
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xb0]
call qword [rax + 0x10]
mov rsi, qword [rsp + 0x40]
mov rcx, qword [r15 - 0x18]
mov rax, qword [r15 - 8]
cmp rax, rcx
jne 0x18008afb9
lea rcx, [r15 - 0x20]
call fcn.180117e40
mov rcx, qword [r15 - 0x18]
mov rax, qword [r15 - 8]
mov rdx, qword [r15 - 0x10]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [r15 - 0x20]
mov r8, qword [rsp + 0x30]
mov qword [rcx + rdx*8], r8
inc rax
mov qword [r15 - 8], rax
movzx eax, byte [r8 + 0x80]
test al, al
jne 0x18008b0f7
mov rax, qword [r14]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
call qword [rdx]
mov r8, qword [rsp + 0x30]
mov rbx, rax
mov r14, rdx
mov al, 1
xchg byte [r8 + 0x60], al
xor esi, esi
test al, al
cmove rsi, qword [rsp + 0x278]
je 0x18008b0c2
mov rcx, r14
call qword [rbx + 0x18]
mov r8, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
jmp 0x18008b0f7
call fcn.180185070
xor al, 1
mov dword [rsp + 0x4c], eax
mov qword [rsp + 0x260], r13
movzx eax, byte [rdi + 0x18]
test al, al
je 0x180089d0e
jmp 0x18008b907
mov eax, dword [rsp + 0xa1]
mov ecx, dword [rsp + 0xa4]
mov dword [rsp + 0x123], ecx
mov dword [rsp + 0x120], eax
mov eax, dword [r8]
mov dword [rsp + 0x50], eax
movzx eax, word [r8 + 4]
mov word [rsp + 0x54], ax
mov qword [rsp + 0x127], r14
mov qword [rsp + 0x12f], rbx
mov qword [rsp + 0x137], r15
mov byte [rsp + 0x13f], dil
lea rax, [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x28]
lea rcx, [rsp + 0x120]
jmp 0x18008b5c9
mov rax, qword [rsi]
test rax, rax
je 0x18008b0d6
mov rcx, qword [rsi + 8]
call qword [rax + 0x18]
mov r8, qword [rsp + 0x30]
mov qword [rsi], rbx
mov qword [rsi + 8], r14
xor eax, eax
xchg byte [rsi + 0x10], al
movzx eax, byte [r8 + 0x80]
test al, al
mov rsi, qword [rsp + 0x40]
je 0x18008b75b
mov rcx, r8
add rcx, 0x10
mov dl, 1
xchg byte [r8 + 0x48], dl
xor eax, eax
test dl, dl
cmove rax, rcx
jne 0x18008b907
movzx ecx, byte [rax + 0x31]
mov byte [rax + 0x31], 2
cmp cl, 2
je 0x18008b936
movzx edx, byte [rax + 0x30]
mov byte [rsp + 0xc0], dl
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
mov edx, dword [rax + 0x32]
mov dword [rsp + 0xc2], edx
movzx edx, word [rax + 0x36]
mov word [rsp + 0xc6], dx
mov byte [rsp + 0xc1], cl
xor edx, edx
xchg byte [rax + 0x38], dl
cmp cl, 1
mov ebp, dword [rsp + 0x11c]
jbe 0x18008b93f
cmp cl, 3
jne 0x18008b907
mov rbx, rsi
mov rsi, qword [rsi + 0x38]
test rsi, rsi
je 0x18008b215
mov bl, 1
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x18008b1d3
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
xor edx, edx
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x18008b1d3
call qword [rax + 0x18]
mov r8, qword [rsp + 0x30]
xchg byte [rsi + 0x78], bl
test bl, bl
jne 0x18008b1fc
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
xor edx, edx
xchg byte [rsi + 0x78], dl
test rax, rax
je 0x18008b1fc
call qword [rax + 8]
mov r8, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rbx + 0x38]
lock dec qword [rcx]
jne 0x18008b215
call fcn.18008df60
mov r8, qword [rsp + 0x30]
mov qword [rbx + 0x38], r8
mov r15d, dword [rsp + 0x1a8]
mov rsi, rbx
movdqa xmm0, xmmword [rsp + 0x120]
movdqa xmm1, xmmword [rsp + 0x130]
movdqa xmm2, xmmword [rsp + 0x140]
movdqa xmm3, xmmword [rsp + 0x150]
movdqa xmmword [rsp + 0x210], xmm3
movdqa xmmword [rsp + 0x200], xmm2
movdqa xmmword [rsp + 0x1f0], xmm1
movdqa xmmword [rsp + 0x1e0], xmm0
cmp r15d, 0x3b9aca00
sete al
mov ecx, dword [rsp + 0x160]
or cl, al
jne 0x18008b28e
lea rcx, [rsp + 0x168]
call fcn.18008dfd0
mov eax, dword [rsp + 0x4c]
test al, al
jne 0x18008b2b0
movabs rax, 0x7fffffffffffffff
mov rcx, qword [0x180219990]
test rcx, rax
jne 0x18008b44b
mov rcx, qword [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bpl, bpl
je 0x18008b37d
mov byte [rsp + 0x1d8], 2
cmp qword [rsi + 0x30], 0
je 0x18008b2ee
mov byte [rdi + 0x70], 3
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x18008b313
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18008b90b
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x38
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18008b90b
mov rdi, rax
mov qword [rax], 0
mov byte [rax + 0x29], 2
mov byte [rax + 0x30], 4
lea rdx, [0x1801dca00]
mov r8d, 0x10
mov rcx, rax
call fcn.18008d530
mov rax, qword [rsp + 0x68]
mov qword [rax], rdi
mov byte [rax + 0x70], 2
cmp byte [rsp + 0x1d8], 2
je 0x18008b2da
lea rcx, [rsp + 0x168]
call fcn.18008c310
jmp 0x18008b2da
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0xc0], rax
movaps xmm0, xmmword [rsp + 0x1e0]
movaps xmm1, xmmword [rsp + 0x1f0]
movaps xmm2, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
mov rdx, qword [rsi + 0x30]
lea rcx, [rsp + 0x168]
lea r9, [rsp + 0x90]
mov r8, rsi
call fcn.1800de700
cmp byte [rsp + 0x1d8], 2
je 0x18008b2cf
mov rax, qword [rsp + 0x1d8]
mov qword [rdi + 0x70], rax
movups xmm0, xmmword [rsp + 0x1c8]
movups xmmword [rdi + 0x60], xmm0
movups xmm0, xmmword [rsp + 0x1b8]
movups xmmword [rdi + 0x50], xmm0
movups xmm0, xmmword [rsp + 0x1a8]
movups xmmword [rdi + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x168]
movups xmm1, xmmword [rsp + 0x178]
movups xmm2, xmmword [rsp + 0x188]
movups xmm3, xmmword [rsp + 0x198]
movups xmmword [rdi + 0x30], xmm3
movups xmmword [rdi + 0x20], xmm2
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
jmp 0x18008b2da
call fcn.180185070
test al, al
jne 0x18008b2b0
mov rax, qword [rsp + 0x38]
mov byte [rax + 0x18], 1
jmp 0x18008b2b0
xor eax, eax
lock inc qword [r15]
jle 0x18008b907
lock inc qword [r9]
lea rcx, [rsp + 0xc2]
jle 0x18008b907
mov esi, r13d
mov r13, qword [rsp + 0x88]
lock inc qword [r13 + 0x1d0]
lock inc qword [r13]
jle 0x18008b907
mov qword [rsp + 0x227], rax
mov qword [rsp + 0x22f], rdx
mov qword [rsp + 0x237], r15
mov byte [rsp + 0x23f], dil
mov qword [rsp + 0x127], r14
mov qword [rsp + 0x12f], rbx
mov qword [rsp + 0x137], r15
mov byte [rsp + 0x13f], dil
mov eax, dword [rcx]
mov dword [rsp + 0x50], eax
movzx eax, word [rcx + 4]
mov word [rsp + 0x54], ax
cmp sil, 2
jne 0x18008b515
mov sil, 2
lea rax, [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x28]
lea rcx, [rsp + 0x120]
jmp 0x18008b5c4
mov r15, r9
call fcn.18011aed0
mov r14d, edx
mov rdx, qword [r12 + 0x10]
cmp rdx, qword [r12 + 8]
mov ebx, dword [rsp + 0x28]
jne 0x18008b543
mov rcx, r12
mov rdi, rax
call fcn.18003e9a0
mov rax, rdi
mov rdx, qword [r12 + 0x10]
mov rdi, qword [rsp + 0x68]
mov r9, r15
mov r11, qword [r12]
lea rcx, [rdx + rdx*8]
mov qword [r11 + rcx*8], r15
mov qword [r11 + rcx*8 + 8], r13
mov byte [r11 + rcx*8 + 0x10], 2
movdqu xmm0, xmmword [rsp + 0x120]
movdqu xmm1, xmmword [rsp + 0x130]
movdqu xmmword [r11 + rcx*8 + 0x11], xmm0
movdqu xmmword [r11 + rcx*8 + 0x21], xmm1
mov byte [r11 + rcx*8 + 0x31], sil
lea r10, [rsp + 0xc2]
mov r8d, dword [r10]
mov dword [r11 + rcx*8 + 0x32], r8d
movzx r8d, word [r10 + 4]
mov word [r11 + rcx*8 + 0x36], r8w
mov qword [r11 + rcx*8 + 0x38], rax
mov dword [r11 + rcx*8 + 0x40], r14d
inc rdx
mov qword [r12 + 0x10], rdx
lea rax, [rsp + 0x108]
lea rcx, [rsp + 0x220]
movzx edx, byte [rsp + 0x60]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x189], xmm1
movups xmmword [rsp + 0x179], xmm0
mov ecx, dword [rax]
mov dword [rsp + 0x19a], ecx
movzx eax, word [rax + 4]
mov word [rsp + 0x19e], ax
cmp qword [r12 + 0x10], 0
mov qword [rsp + 0x168], r9
mov qword [rsp + 0x170], r13
mov byte [rsp + 0x178], dl
mov byte [rsp + 0x199], sil
mov qword [rsp + 0x1a0], rbp
mov dword [rsp + 0x1a8], ebx
sete byte [rsp + 0x1b0]
movzx eax, byte [rsp + 0x198]
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x199]
mov byte [rsp + 0x151], al
mov eax, dword [rsp + 0x19a]
mov dword [rsp + 0x152], eax
movzx eax, word [rsp + 0x19e]
mov word [rsp + 0x156], ax
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x158], rax
movzx eax, byte [rsp + 0x178]
mov byte [rsp + 0x130], al
mov rax, qword [rsp + 0x179]
mov qword [rsp + 0x131], rax
mov eax, dword [rsp + 0x181]
mov dword [rsp + 0x139], eax
movzx eax, word [rsp + 0x185]
mov word [rsp + 0x13d], ax
movzx eax, byte [rsp + 0x187]
mov byte [rsp + 0x13f], al
movups xmm0, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x188]
movaps xmmword [rsp + 0x140], xmm0
je 0x18008b743
movups xmm0, xmmword [rsp + 0x168]
movups xmm1, xmmword [rsp + 0x178]
movups xmm2, xmmword [rsp + 0x188]
movups xmm3, xmmword [rsp + 0x198]
movaps xmmword [rsp + 0x210], xmm3
movaps xmmword [rsp + 0x200], xmm2
movaps xmmword [rsp + 0x1f0], xmm1
movaps xmmword [rsp + 0x1e0], xmm0
xor ebp, ebp
mov rsi, qword [rsp + 0x40]
mov eax, dword [rsp + 0x4c]
test al, al
jne 0x18008b2b0
jmp 0x18008b296
mov al, 1
mov dword [rsp + 0x160], eax
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
jmp 0x18008a3ba
mov ebp, dword [rsp + 0x11c]
mov rbx, rsi
mov rsi, qword [rsi + 0x38]
test rsi, rsi
jne 0x18008b19e
jmp 0x18008b215
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0xa0], 0
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x58]
je 0x18008b8dd
movups xmm0, xmmword [rsp + 0x90]
movdqu xmm1, xmmword [rsp + 0xa0]
movdqu xmm2, xmmword [rsp + 0xb0]
movdqa xmmword [rsp + 0x240], xmm2
movdqa xmmword [rsp + 0x230], xmm1
movaps xmmword [rsp + 0x220], xmm0
mov rax, qword [rsp + 0x270]
and rax, rbx
movdqu xmm0, xmmword [r8 + rax]
pmovmskb ecx, xmm0
test ecx, ecx
mov r14, qword [rsp + 0x260]
je 0x18008b7f8
mov r9, qword [rsp + 0x258]
jmp 0x18008b81d
mov edx, 0x10
mov r9, qword [rsp + 0x258]
add rax, rdx
and rax, rbx
movdqu xmm0, xmmword [r8 + rax]
pmovmskb ecx, xmm0
add rdx, 0x10
test ecx, ecx
je 0x18008b805
tzcnt ecx, ecx
add rcx, rax
and rcx, rbx
movzx edx, byte [r8 + rcx]
test dl, dl
js 0x18008b842
movdqa xmm0, xmmword [r8]
pmovmskb eax, xmm0
tzcnt ecx, eax
movzx edx, byte [r8 + rcx]
lea rax, [rcx - 0x10]
and rax, rbx
mov byte [r8 + rcx], r9b
mov byte [rax + r8 + 0x10], r9b
neg rcx
lea rax, [rcx + rcx*4]
and dl, 1
movzx ecx, dl
mov rdx, qword [rsp + 0x38]
sub qword [rdx + 0xa0], rcx
shl rax, 4
movdqa xmm0, xmmword [rsp + 0x220]
movdqa xmm1, xmmword [rsp + 0x230]
movdqa xmm2, xmmword [rsp + 0x240]
movdqu xmmword [r8 + rax - 0x30], xmm2
movdqu xmmword [r8 + rax - 0x40], xmm1
movdqu xmmword [r8 + rax - 0x50], xmm0
mov qword [r8 + rax - 0x20], 8
pxor xmm0, xmm0
movdqu xmmword [r8 + rax - 0x18], xmm0
mov qword [r8 + rax - 8], 0
lea r15, [r8 + rax]
inc qword [rdx + 0xa8]
mov rcx, qword [r15 - 0x18]
mov rax, qword [r15 - 8]
cmp rax, rcx
je 0x18008afa8
jmp 0x18008afb9
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x268]
call fcn.1801842b0
mov rax, qword [rsp + 0x38]
mov r8, qword [rax + 0x90]
mov rbx, qword [rax + 0x98]
jmp 0x18008b799
ud2
mov ecx, 8
mov edx, 0x38
call fcn.18017ea70
ud2
call fcn.18016fe79
ud2
mov ecx, 8
mov edx, 0x88
call fcn.18017ea70
ud2
xor ecx, ecx
xchg byte [rax + 0x38], cl
ud2
lea rcx, [rsp + 0x90]
call fcn.18008dfd0
ud2
mov ecx, 8
mov edx, 0x20
call fcn.18017ea70
ud2