Function at 0x1800f6e10
Capabilities:
Check for time delay via queryperformancecounter
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x9d8
movdqa xmmword [rsp + 0x9c0], xmm15
movdqa xmmword [rsp + 0x9b0], xmm14
movdqa xmmword [rsp + 0x9a0], xmm13
movdqa xmmword [rsp + 0x990], xmm12
movdqa xmmword [rsp + 0x980], xmm11
movdqa xmmword [rsp + 0x970], xmm10
movdqa xmmword [rsp + 0x960], xmm9
movdqa xmmword [rsp + 0x950], xmm8
movdqa xmmword [rsp + 0x940], xmm7
movaps xmmword [rsp + 0x930], xmm6
mov rbx, rdx
mov qword [rsp + 0x190], rcx
lea rcx, [rsp + 0x5b0]
mov r8d, 0x98
call fcn.180181ff0
mov r14d, dword [rbx + 0xa0]
cmp r14d, 0x3b9aca00
jne 0x1800f6ebd
mov r14d, 0x3b9aca00
jmp 0x1800f7008
mov rdi, qword [rbx + 0x98]
mov qword [rsp + 0x218], 0
lea rcx, [rsp + 0x218]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1800f9e15
mov rsi, qword [rsp + 0x218]
mov rcx, qword [0x1802219d0]
test rcx, rcx
jne 0x1800f6f34
mov qword [rsp + 0x218], 0
lea rcx, [rsp + 0x218]
call qword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800f9e15
mov rcx, qword [rsp + 0x218]
mov qword [0x1802219d0], rcx
test rcx, rcx
je 0x1800f9b84
mov rax, rsi
or rax, rcx
shr rax, 0x20
je 0x1800f6f4a
mov rax, rsi
xor edx, edx
div rcx
jmp 0x1800f6f50
mov eax, esi
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1800f6f74
xor edx, edx
div rcx
mov rcx, rax
jmp 0x1800f6f7a
xor edx, edx
div ecx
mov ecx, eax
add rcx, r8
mov r8, rcx
shr r8, 9
mov rax, r8
movabs rdx, 0x44b82fa09b5a53
mul rdx
mov r9, rdx
shr r9, 0xb
add r9, rdi
jb 0x1800f9b84
mov rax, r8
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
add r14d, ecx
cmp r14d, 0x3b9aca00
jb 0x1800f6fe6
inc r9
je 0x1800f9b84
mov qword [rsp + 0xc0], r9
add r14d, 0xc4653600
jmp 0x1800f6fee
mov qword [rsp + 0xc0], r9
mov eax, r14d
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub r14d, eax
call fcn.180102950
test rax, rax
je 0x1800f9b84
mov rsi, rax
movzx eax, byte [0x180221a30]
mov rcx, qword [0x1802219b8]
test rcx, rcx
jne 0x1800f7045
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9e29
mov rcx, rax
mov qword [0x1802219b8], rax
mov r8d, 0x18
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9e29
mov qword [rsp + 0x130], rbx
mov qword [rax], 1
mov qword [rax + 8], 1
mov rcx, rax
add rcx, 0x10
mov qword [rax + 0x10], rsi
lea rax, fcn.1800e76a0
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], rcx
lea rax, [rsp + 0x198]
mov qword [rsp + 0x1d8], rax
lea rcx, [rsp + 0x218]
lea rdx, [rsp + 0x5b0]
mov r8d, 0x98
call fcn.180181ff0
lea rax, [0x1801e4ba3]
mov qword [rsp + 0x2b0], rax
mov qword [rsp + 0x2b8], 5
lea rcx, [rsp + 0x2c0]
lea rdx, [rsp + 0x648]
mov r8d, 0x2e8
call fcn.180181ff0
mov byte [rsp + 0x5a8], 0
mov eax, dword [rsp + 0x1a9]
mov ecx, dword [rsp + 0x1ac]
mov dword [rsp + 0x5a9], eax
mov dword [rsp + 0x5ac], ecx
lea rdi, [rsp + 0x3c0]
lea r15, [rsp + 0x70]
xorps xmm6, xmm6
mov ebp, 0xff
lea r12, [0x1800f9edc]
movdqa xmm7, xmmword [0x180191120]
movdqa xmm8, xmmword [0x180191130]
movdqa xmm9, xmmword [0x180191140]
movdqa xmm10, xmmword [0x180191100]
movdqa xmm11, xmmword [0x180191110]
movdqa xmm12, xmmword [str._________________t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t]
movdqa xmm13, xmmword [0x1801910e0]
movdqa xmm14, xmmword [0x1801910f0]
mov qword [rsp + 0xb8], rax
xor eax, eax
mov dword [rsp + 0x168], r14d
test al, al
je 0x1800f71c0
nop word cs:[rax + rax]
movzx eax, al
cmp eax, 3
je 0x1800f7f14
jmp 0x1800f9b84
mov r8d, 0x98
lea rsi, [rsp + 0x2c0]
mov rcx, rsi
lea rdx, [rsp + 0x218]
call fcn.180181ff0
mov r14, qword [rsp + 0x2b0]
mov r13, qword [rsp + 0x2b8]
movups xmm0, xmmword [0x1801e51d0]
movaps xmmword [rsp + 0x80], xmm0
movdqu xmm0, xmmword [0x1801e51c0]
movdqa xmmword [rsp + 0x70], xmm0
mov rcx, rsi
mov rdx, r15
call fcn.180042b20
mov rsi, rax
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1800f723b
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
lea rcx, [rsp + 0x88]
call qword [rax + 0x10]
test rsi, rsi
je 0x1800f7269
mov rdi, qword [rsi + 8]
mov rsi, qword [rsi + 0x10]
lea r10, [rdi + rsi]
xor eax, eax
nop
cmp rsi, rax
je 0x1800f7280
movzx ecx, byte [rdi + rax]
inc rax
cmp cl, 9
je 0x1800f7250
add cl, 0xe0
cmp cl, 0x5f
jb 0x1800f7250
mov qword [rsp + 0x358], 2
xor r8d, r8d
jmp 0x1800f7e66
cmp rsi, 3
mov qword [rsp + 0x138], r14
jne 0x1800f72a6
movzx eax, word [rdi]
xor eax, 0x2f2a
movzx ecx, byte [rdi + 2]
xor ecx, 0x2a
or cx, ax
je 0x1800f737c
mov qword [rsp + 0x38], r13
mov ecx, 0xa
mov edx, 1
xor eax, eax
lea r9, [0x1801e1e10]
nop
cmp rsi, rax
je 0x1800f7e40
mov rbp, rax
mov r13, rcx
mov rbx, rdx
movzx r8d, byte [rdi + rax]
inc rax
inc rcx
inc rdx
cmp byte [r8 + r9], 0
jne 0x1800f72c0
cmp r8b, 0x2f
jne 0x1800f7e40
cmp rax, 1
je 0x1800f7e40
cmp rsi, rax
je 0x1800f73c2
mov qword [rsp + 0x60], r10
mov r14, rsi
neg r14
xor r11d, r11d
jmp 0x1800f734a
cmp byte [r8 + r9], 0
mov rdx, r11
mov rcx, r10
je 0x1800f7e40
lea r8, [r14 + r13]
inc r8
inc r13
inc rbx
mov r10, rcx
mov r11, rdx
cmp r8, 9
je 0x1800f73c4
lea rcx, [r13 - 9]
movzx r8d, byte [rdi + r13 - 9]
cmp r8d, 0x2b
je 0x1800f7370
cmp r8d, 0x3b
jne 0x1800f7320
cmp rcx, rax
jbe 0x1800f7320
jmp 0x1800f7531
mov edx, 1
cmp rcx, rax
ja 0x1800f7331
jmp 0x1800f7320
mov esi, 3
mov r15d, 2
mov ebp, 1
xor eax, eax
xor ecx, ecx
xor r10d, r10d
xor r11d, r11d
xor edx, edx
mov qword [rsp + 0xa0], rdx
xor edx, edx
mov qword [rsp + 0xd8], rdx
xor edx, edx
mov qword [rsp + 0xd0], rdx
xor edx, edx
lea r14, [0x1801e4fb8]
jmp 0x1800f8414
xor edx, edx
mov r10, rcx
mov r11, rdx
test rsi, rsi
je 0x1800f7453
js 0x1800f9b84
mov r15, r11
mov rbx, r10
movzx eax, byte [0x180221a30]
mov rax, qword [0x1802219b8]
test rax, rax
jne 0x1800f7408
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9953
mov qword [0x1802219b8], rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9953
mov r13, rax
mov r14, rax
mov rcx, r13
mov rdx, rdi
mov r8, rsi
call fcn.180181ff0
mov rcx, r13
cmp rsi, 8
mov r10, rbx
mov r11, r15
jb 0x1800f83c7
cmp rsi, 0x20
jae 0x1800f745e
xor eax, eax
jmp 0x1800f74e4
mov r14d, 1
jmp 0x1800f83ef
mov rax, rsi
and rax, 0xffffffffffffffe0
xor ecx, ecx
nop word [rax + rax]
movdqu xmm0, xmmword [r14 + rcx]
movdqu xmm1, xmmword [r14 + rcx + 0x10]
movdqa xmm2, xmm0
paddb xmm2, xmm10
movdqa xmm3, xmm1
paddb xmm3, xmm10
movdqa xmm4, xmm2
pminub xmm4, xmm11
pcmpeqb xmm4, xmm2
pand xmm4, xmm12
movdqa xmm2, xmm3
pminub xmm2, xmm11
pcmpeqb xmm2, xmm3
pand xmm2, xmm12
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [r14 + rcx], xmm4
movdqu xmmword [r14 + rcx + 0x10], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x1800f7470
cmp rsi, rax
je 0x1800f83ef
test sil, 0x18
je 0x1800f83c1
mov rdx, rsi
and rdx, 0xfffffffffffffff8
lea rcx, [rdx + r13]
nop
movq xmm0, qword [r14 + rax]
movdqa xmm1, xmm0
paddb xmm1, xmm7
movdqa xmm2, xmm1
pmaxub xmm2, xmm8
pcmpeqb xmm2, xmm1
pandn xmm2, xmm9
por xmm2, xmm0
movq qword [r14 + rax], xmm2
add rax, 8
cmp rdx, rax
jne 0x1800f74f0
cmp rsi, rdx
jne 0x1800f83c7
jmp 0x1800f83ef
mov qword [rsp + 0x1c0], r14
mov qword [rsp + 0x70], 2
lea r8, [r13 - 8]
mov r9, r13
sub r9, rsi
lea rax, [r13 - 9]
mov qword [rsp + 0x160], rax
mov r15d, 2
cmp r8, rsi
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], r11
jae 0x1800f7ddc
lea rdx, [rdi + r13]
add rdx, 0xfffffffffffffff8
mov qword [rsp + 0x58], r9
lea rax, [r9 + 2]
mov qword [rsp + 0x1b0], rax
lea rax, [r13 - 7]
mov qword [rsp + 0x180], rax
lea rax, [rsi + rdi]
add rax, 3
mov qword [rsp + 0x1b8], rax
mov r9, r8
lea r15, [0x1801e1e10]
mov ecx, 1
cmp rdx, qword [rsp + 0x60]
je 0x1800f8997
mov rax, r13
sub rax, r9
add rax, 2
mov qword [rsp + 0x1c8], rax
xor ecx, ecx
mov qword [rsp + 0x120], r8
nop dword [rax]
mov r14, rdx
movzx edx, byte [rdx + rcx]
cmp rdx, 0x20
je 0x1800f7610
cmp byte [rdx + r15], 0
je 0x1800f7650
mov rdx, r14
lea rax, [r14 + rcx]
inc rax
inc rcx
inc r8
cmp rax, qword [rsp + 0x60]
jne 0x1800f75e0
jmp 0x1800f8293
mov rdx, qword [rsp + 0x120]
lea rax, [rdx + rcx]
cmp rax, r9
jne 0x1800f8b16
lea rax, [rdx + rcx]
inc rax
mov rdx, r14
lea rdx, [r14 + rcx]
inc rdx
inc r9
mov rcx, r9
mov r8, rax
mov r9, rcx
cmp rcx, rsi
jb 0x1800f75b0
jmp 0x1800f7dd2
cmp dl, 0x3d
jne 0x1800f8b37
mov r15, qword [rsp + 0x120]
lea rax, [r15 + rcx]
mov qword [rsp + 0x178], rax
cmp rax, r9
jbe 0x1800f8b37
mov qword [rsp + 0x170], r9
add r15, rcx
inc r15
lea rax, [r14 + rcx]
inc rax
mov rdx, qword [rsp + 0x60]
cmp rax, rdx
je 0x1800f771f
mov r9, r14
lea r10, [r14 + rcx]
mov r9, rcx
xor eax, eax
mov qword [rsp + 0x40], r15
mov rdx, r15
lea r15, [0x1801e1e10]
mov r11, rax
movzx eax, byte [r10 + rax + 1]
cmp rax, 0x22
je 0x1800f773e
cmp byte [rax + r15], 0
je 0x1800f77c3
lea rax, [r11 + 1]
lea r15, [r10 + r11]
add r15, 2
inc rdx
inc r9
cmp r15, qword [rsp + 0x60]
lea r15, [0x1801e1e10]
jne 0x1800f76b4
lea rax, [r8 + r11]
add rax, 2
mov qword [rsp + 0x68], rax
mov r14, rsi
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rsi
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
jmp 0x1800f7804
mov r14, rsi
mov qword [rsp + 0x68], r15
mov qword [rsp + 0xa8], rsi
mov r9, r15
lea r15, [0x1801e1e10]
jmp 0x1800f7804
test r11, r11
jne 0x1800f9073
lea rax, [r11 + r10]
add rax, 2
cmp rax, qword [rsp + 0x60]
je 0x1800f9087
lea rax, [r8 + r11]
add rax, 2
mov qword [rsp + 0x40], rax
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov r8, r14
mov rax, qword [rsp + 0x120]
lea rdx, [rax + r9]
add rdx, 2
movzx eax, byte [r8 + r9 + 2]
cmp al, 0x22
jne 0x1800f7799
cmp rdx, qword [rsp + 0x40]
ja 0x1800f79dc
cmp al, 0x20
jb 0x1800f8af2
cmp al, 0x7f
je 0x1800f8af2
mov r8, r14
lea rax, [r14 + r9]
add rax, 3
inc r9
cmp rax, qword [rsp + 0x60]
jne 0x1800f7774
jmp 0x1800f8b07
lea r14, [r8 + r11]
inc r14
cmp al, 0x3b
mov r9, qword [rsp + 0x40]
jne 0x1800f90a0
cmp r14, r9
jbe 0x1800f90a0
lea rax, [r8 + r11]
add rax, 2
lea rdx, [r11 + r10 + 2]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xa8], rax
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov rax, qword [rsp + 0x70]
test rax, rax
mov r8, qword [rsp + 0x120]
mov qword [rsp + 0x158], rdx
je 0x1800f78b4
cmp eax, 1
jne 0x1800f7989
mov rdx, qword [rsp + 0x90]
cmp rdx, qword [rsp + 0x88]
jne 0x1800f7872
lea rcx, [rsp + 0x80]
mov qword [rsp + 0xc8], r14
mov r14, r9
call fcn.18012d6e0
mov r9, r14
mov r14, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x170]
mov rax, qword [rsp + 0x80]
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], r8
mov r8, qword [rsp + 0x178]
mov qword [rax + rcx + 8], r8
mov qword [rax + rcx + 0x10], r9
mov qword [rax + rcx + 0x18], r14
inc rdx
mov qword [rsp + 0x90], rdx
jmp 0x1800f7dae
mov qword [rsp + 0xc8], r14
mov r14, r9
movdqu xmm15, xmmword [rsp + 0x78]
movzx eax, byte [0x180221a30]
mov rax, qword [0x1802219b8]
test rax, rax
jne 0x1800f78ef
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9e93
mov qword [0x1802219b8], rax
mov r8d, 0x40
mov rcx, rax
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9e93
pshufd xmm0, xmm15, 0x44
movdqa xmm1, xmm0
paddq xmm1, xmm13
paddq xmm0, xmm14
movdqu xmmword [rax], xmm0
movdqu xmmword [rax + 0x10], xmm1
mov rcx, qword [rsp + 0x170]
mov qword [rax + 0x20], rcx
mov rcx, qword [rsp + 0x178]
mov qword [rax + 0x28], rcx
mov qword [rax + 0x30], r14
mov rcx, qword [rsp + 0xc8]
mov qword [rax + 0x38], rcx
mov qword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x160]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 2
mov qword [rsp + 0x90], 2
jmp 0x1800f7da4
mov qword [rsp + 0x40], r9
cmp qword [rsp + 0x1c8], 9
jne 0x1800f7d07
mov r9, qword [rsp + 0x178]
cmp r9, qword [rsp + 0x180]
jb 0x1800f9ea4
cmp r13, 7
je 0x1800f7aa7
cmp qword [rsp + 0x180], rsi
jae 0x1800f7a98
cmp byte [rdi + r13 - 7], 0xc0
jge 0x1800f7aa7
jmp 0x1800f9ea4
mov rax, r14
lea r8, [r14 + r9]
add r8, 3
mov r14, qword [rsp + 0x120]
lea rdx, [r14 + r9 + 2]
mov qword [rsp + 0xc8], rdx
add r14, r9
add r14, 3
mov rdx, qword [rsp + 0x60]
cmp r8, rdx
je 0x1800f7bf9
lea rdx, [rax + r9]
add rdx, 3
mov qword [rsp + 0x68], rdx
add rax, r9
mov rdx, qword [rsp + 0x60]
add rdx, rax
add rdx, 3
sub rdx, rax
add rdx, 0xfffffffffffffffd
mov qword [rsp + 0x158], rdx
mov rdx, qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x120]
add rdx, rax
add rdx, r9
sub rdx, qword [rsp + 0x68]
mov r9, qword [rsp + 0x40]
movzx eax, byte [r8]
cmp eax, 0x20
jne 0x1800f7bcd
inc r8
inc r14
cmp r8, qword [rsp + 0x60]
jne 0x1800f7a5c
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0xa8], rsi
mov rdx, qword [rsp + 0x158]
mov r14, qword [rsp + 0xc8]
jmp 0x1800f7804
cmp qword [rsp + 0x1b0], 9
jne 0x1800f9ea4
cmp r9, rsi
jae 0x1800f7abb
add r8, rdi
cmp byte [rcx + r8], 0xbf
jg 0x1800f7acc
jmp 0x1800f9ea4
mov rax, r9
add rax, qword [rsp + 0x1c0]
jne 0x1800f9ea4
cmp r9, r13
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 7]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x63
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 6]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x68
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 5]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x61
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 4]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x72
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 3]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x73
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 2]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x1800f7d07
movzx eax, byte [rdi + r13 - 1]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x74
jne 0x1800f7d07
mov r9, r14
sub r14, qword [rsp + 0x40]
jb 0x1800f9ec9
cmp qword [rsp + 0x40], 0
je 0x1800f7c1e
cmp qword [rsp + 0x40], rsi
jae 0x1800f7c18
mov rcx, qword [rsp + 0x40]
cmp byte [rdi + rcx], 0xc0
jge 0x1800f7c1e
jmp 0x1800f9ec9
cmp eax, 0x3b
jne 0x1800f8fef
inc r14
inc r8
mov rdx, r8
mov qword [rsp + 0x68], r14
mov qword [rsp + 0xa8], r14
mov r14, qword [rsp + 0xc8]
jmp 0x1800f7804
mov qword [rsp + 0x68], r14
mov qword [rsp + 0xa8], rsi
mov r9, qword [rsp + 0x40]
mov r14, qword [rsp + 0xc8]
jmp 0x1800f7804
jne 0x1800f9ec9
test r9, r9
je 0x1800f7c3a
cmp r9, rsi
jae 0x1800f7c34
cmp byte [rdi + r9], 0xbf
jg 0x1800f7c3a
jmp 0x1800f9ec9
jne 0x1800f9ec9
cmp r14, 5
lea r15, [0x1801e1e10]
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov r14, r9
jne 0x1800f7d07
mov rax, qword [rsp + 0x40]
movzx eax, byte [rdi + rax]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x75
jne 0x1800f7d07
mov rax, qword [rsp + 0x40]
movzx eax, byte [rdi + rax + 1]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x74
jne 0x1800f7d07
mov rax, qword [rsp + 0x40]
movzx eax, byte [rdi + rax + 2]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x66
jne 0x1800f7d07
mov rax, qword [rsp + 0x40]
movzx eax, byte [rdi + rax + 3]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x2d
jne 0x1800f7d07
mov rax, qword [rsp + 0x40]
movzx eax, byte [rdi + rax + 4]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x38
jne 0x1800f7d07
mov qword [rsp + 0x70], 0
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x78], rax
jmp 0x1800f7db6
movzx eax, byte [0x180221a30]
mov rax, qword [0x1802219b8]
test rax, rax
jne 0x1800f7d30
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9e82
mov qword [0x1802219b8], rax
mov r8d, 0x20
mov rcx, rax
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9e82
mov rcx, qword [rsp + 0x170]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x178]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], r14
mov qword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x160]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
mov qword [rsp + 0x90], 1
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x158]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xa8]
mov r8, rax
mov r9, rcx
cmp rcx, rsi
jb 0x1800f75b0
mov r15, qword [rsp + 0x70]
mov r9, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xb0], rax
mov rax, rcx
shr rax, 8
mov qword [rsp + 0xb8], rax
mov r14, rcx
shr r14, 0x10
mov rdx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x188], rax
cmp r15, 3
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x1d0], r14
jne 0x1800f8310
nop dword [rax]
mov r13, qword [rsp + 0x38]
mov qword [rsp + 0x358], 2
xor r8d, r8d
lea r15, [rsp + 0x70]
mov ebp, 0xff
mov r14, qword [rsp + 0x138]
test r8, r8
cmovne r14, r8
cmove r10, r13
lea rax, [rsp + 0x88]
movups xmmword [rax - 0x17], xmm6
mov word [rax - 7], 0
test r10, r10
je 0x1800f7ece
lea rcx, [r14 + 1]
add r14, 2
xor eax, eax
mov r8, r14
mov rdx, r10
nop dword [rax + rax]
movzx r9d, byte [rcx - 1]
mov r11d, r9d
add r11d, 0xfffffff7
cmp r11d, 0x56
ja case.0x1800f7ebd.11
movsxd r11, dword [r12 + r11*4]
add r11, r12
jmp r11
inc rcx
inc r8
inc rax
dec rdx
jne 0x1800f7ea0
xor eax, eax
lea rdi, [rsp + 0x3c0]
mov r14d, dword [rsp + 0x168]
test rax, rax
lea rcx, [0x1801bc748]
cmove rax, rcx
mov qword [rsp + 0x3b8], rax
mov r8d, 0x98
mov rcx, rdi
lea rdx, [rsp + 0x2c0]
call fcn.180181ff0
mov byte [rsp + 0x5a0], 0
mov rcx, r15
mov rdx, rdi
lea r8, [rsp + 0x1d8]
call fcn.1800f6490
cmp qword [rsp + 0x70], 0
je 0x1800f90c9
mov byte [rsp + 0x5a8], 3
cmp r14d, 0x3b9aca00
jne 0x1800f7f60
call fcn.180102850
movzx eax, byte [rsp + 0x5a8]
test al, al
jne 0x1800f71a0
jmp 0x1800f71c0
mov qword [rsp + 0x70], 0
mov rcx, r15
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1800f9e15
mov rsi, qword [rsp + 0x70]
mov rcx, qword [0x1802219d0]
test rcx, rcx
jne 0x1800f7fba
mov qword [rsp + 0x70], 0
mov rcx, r15
call qword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800f9e15
mov rcx, qword [rsp + 0x70]
mov qword [0x1802219d0], rcx
test rcx, rcx
je 0x1800f9b84
mov rax, rsi
or rax, rcx
shr rax, 0x20
je 0x1800f7fd0
mov rax, rsi
xor edx, edx
div rcx
jmp 0x1800f7fd6
mov eax, esi
xor edx, edx
div ecx
imul r9, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1800f8000
xor edx, edx
div rcx
mov r8, rax
jmp 0x1800f8007
xor edx, edx
div ecx
mov r8d, eax
add r8, r9
mov rax, r8
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub r8d, eax
mov rax, qword [rsp + 0xc0]
cmp rdx, rax
jb 0x1800f8047
jne 0x1800f91b6
cmp r14d, r8d
jbe 0x1800f91b6
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x78], r14d
mov rcx, r15
call fcn.180108c60
cmp edx, 0x3b9aca00
mov ecx, 0
cmove edx, ecx
mov ecx, 0
cmovne rcx, rax
call fcn.180104a20
movzx eax, byte [rsp + 0x5a8]
test al, al
jne 0x1800f71a0
jmp 0x1800f71c0
lea r11d, [r9 - 0x41]
cmp r11b, 0x1a
jae 0x1800f8272
add r9d, 0x20
nop dword [rax]
mov byte [rsp + 0x70], r9b
cmp rdx, 1
je 0x1800f8151
lea rsi, [rdx - 1]
xor r11d, r11d
nop word cs:[rax + rax]
lea r9, [r11 + 1]
movzx edi, byte [rcx + r11]
mov ebx, edi
add ebx, 0xfffffff7
cmp ebx, 0x56
ja case.0x1800f80e7.11
mov r13, r14
lea r14, [0x1800fa038]
movsxd rbx, dword [r14 + rbx*4]
add rbx, r14
mov r14, r13
jmp rbx
cmp r11, 0x12
je 0x1800f7ece
cmp r9, 0x12
ja 0x1800f9b84
mov byte [rsp + r11 + 0x71], dil
inc r11
inc r8
inc rax
cmp rsi, r11
jne 0x1800f80c0
jmp 0x1800f81a6
lea ebx, [rdi - 0x41]
cmp bl, 0x1a
jae 0x1800f813c
cmp r11, 0x12
je 0x1800f7ece
cmp r9, 0x12
ja 0x1800f9b84
lea r9d, [rdi + 0x20]
mov byte [rsp + r11 + 0x71], r9b
jmp 0x1800f8102
lea ebx, [rdi - 0x61]
cmp bl, 0x1a
jb case.0x1800f80e7.45
lea ebx, [rdi - 0x3a]
cmp bl, 0xf6
jae case.0x1800f80e7.45
jmp 0x1800f7ece
mov r9d, 1
jmp 0x1800f81ac
add rdx, 0xfffffffffffffffe
cmp rdx, r11
je 0x1800f81ac
add r10, 0xfffffffffffffffe
nop word cs:[rax + rax]
movzx ecx, byte [r14 + rax]
cmp rcx, 0x20
ja 0x1800f7ece
movabs rdx, 0x100003600
bt rdx, rcx
jae 0x1800f7ece
inc rax
cmp r10, rax
jne 0x1800f8170
cmp r9, 0x14
jb 0x1800f81ac
jmp 0x1800f9b84
inc r11
mov r9, r11
mov ecx, 0xe4
xor edx, edx
mov eax, 0xe4
lea rdi, [rsp + 0x3c0]
mov r14d, dword [rsp + 0x168]
jmp 0x1800f81de
inc rcx
mov rdx, rcx
mov rcx, rax
sub rcx, rdx
jbe 0x1800f825b
shr rcx, 1
add rcx, rdx
mov r8, rcx
shl r8, 4
lea r10, str.l1l2l3l4l5l6l9866mackoigbkbig5utf8koi8sjisucs_2ms932cp866cp819asciix_gbkgreekcp1250cp1251latin1gb2312cp1252latin2cp1253latin3cp1254latin4cp1255csbig5latin5utf_16cp1256ibm866latin6cp1257cp1258greek8ibm819arabicvisualkoreaneuc_jpkoi8_rkoi8_reuc_krx_sjiskoi8_uhebrewtis_620ksc5601gb_2312dos_874cn_big5unicodechineselogicalcskoi8rcseuckrkoi8_rux_cp1250ksc_5601x_cp1251iso88591csgb2312x_cp1252iso88592x_cp1253iso88593ecma_114x_cp1254iso88594x_cp1255iso88595x_x_big5x_cp1256csibm866iso88596x_cp1257iso88597asmo_708ecma_118elot_928x_cp1258iso88598iso88599cyrillicutf_16beutf_16leus_asciims_kanjix_euc_jpiso885910iso8859_1iso885911iso8859_2iso8859_3iso885913iso8859_4iso885914iso8859_5iso885915iso8859_6iso8859_7iso8859_8iso_ir_58iso8859_9csunicodeshift_jisshift_jisiso_ir_100iso8859_10iso_ir_110gb_2312_80iso_8859_1iso_8859_1iso_ir_101iso8859_11iso_8859_2iso_8859_2hz_gb_2312iso_8859_3iso_8859_3iso8859_13iso_8859_4iso_8859_4iso8859_14iso_ir_144iso_8859_5iso_8859_5iso8859_15iso_8859_6iso_8859_6iso_ir_126iso_8859_7iso_8859_7iso_ir_127iso_ir_157iso_8859_8iso_8859_8iso_ir_138iso_ir_148iso_8859_9iso_8859_9iso_ir_109iso_ir_149big5_hkscscsshiftjisiso_8859_10iso_8859_11csisolatin1csisolatin2iso_8859_13csisolatin3iso_8859_14csisolatin4iso_8859_15iso_8859_15csisolatin5iso_8859_16csisolatin6windows_949csisolatin9csiso88596ecsiso88598eunicodefffeunicodefeffcsmacintoshcsiso88596icsiso88598iwindows_31jx_mac_romaniso_2022_cniso_2022_jpcsiso2022jpiso_2022_krcsiso2022kriso_8859_6_eiso_8859_8_eiso_8859_6_iiso_8859_8_isun_eu_greekcsksc56011987unicode20utf8unicode11utf8ks_c_5601_1987ansi_x3.4_1968ks_c_5601_1989csiso58gb231280iso_10646_ucs_2iso_8859_1:1987iso_8859_2:1987iso_8859_6:1987iso_8859_7:1987iso_8859_3:1988iso_8859_4:1988iso_8859_5:1988iso_8859_8:1988x_unicode20utf8iso_8859_9:1989csisolatingreekx_mac_ukrainianiso_2022_cn_extcsisolatinarabiccsisolatinhebrewunicode_1_1_utf_8csisolatincyrilliccseucpkdfmtjapanese
cmp r9, qword [r8 + r10 + 8]
ja 0x1800f81d0
jne 0x1800f8250
lea r10, str.l1l2l3l4l5l6l9866mackoigbkbig5utf8koi8sjisucs_2ms932cp866cp819asciix_gbkgreekcp1250cp1251latin1gb2312cp1252latin2cp1253latin3cp1254latin4cp1255csbig5latin5utf_16cp1256ibm866latin6cp1257cp1258greek8ibm819arabicvisualkoreaneuc_jpkoi8_rkoi8_reuc_krx_sjiskoi8_uhebrewtis_620ksc5601gb_2312dos_874cn_big5unicodechineselogicalcskoi8rcseuckrkoi8_rux_cp1250ksc_5601x_cp1251iso88591csgb2312x_cp1252iso88592x_cp1253iso88593ecma_114x_cp1254iso88594x_cp1255iso88595x_x_big5x_cp1256csibm866iso88596x_cp1257iso88597asmo_708ecma_118elot_928x_cp1258iso88598iso88599cyrillicutf_16beutf_16leus_asciims_kanjix_euc_jpiso885910iso8859_1iso885911iso8859_2iso8859_3iso885913iso8859_4iso885914iso8859_5iso885915iso8859_6iso8859_7iso8859_8iso_ir_58iso8859_9csunicodeshift_jisshift_jisiso_ir_100iso8859_10iso_ir_110gb_2312_80iso_8859_1iso_8859_1iso_ir_101iso8859_11iso_8859_2iso_8859_2hz_gb_2312iso_8859_3iso_8859_3iso8859_13iso_8859_4iso_8859_4iso8859_14iso_ir_144iso_8859_5iso_8859_5iso8859_15iso_8859_6iso_8859_6iso_ir_126iso_8859_7iso_8859_7iso_ir_127iso_ir_157iso_8859_8iso_8859_8iso_ir_138iso_ir_148iso_8859_9iso_8859_9iso_ir_109iso_ir_149big5_hkscscsshiftjisiso_8859_10iso_8859_11csisolatin1csisolatin2iso_8859_13csisolatin3iso_8859_14csisolatin4iso_8859_15iso_8859_15csisolatin5iso_8859_16csisolatin6windows_949csisolatin9csiso88596ecsiso88598eunicodefffeunicodefeffcsmacintoshcsiso88596icsiso88598iwindows_31jx_mac_romaniso_2022_cniso_2022_jpcsiso2022jpiso_2022_krcsiso2022kriso_8859_6_eiso_8859_8_eiso_8859_6_iiso_8859_8_isun_eu_greekcsksc56011987unicode20utf8unicode11utf8ks_c_5601_1987ansi_x3.4_1968ks_c_5601_1989csiso58gb231280iso_10646_ucs_2iso_8859_1:1987iso_8859_2:1987iso_8859_6:1987iso_8859_7:1987iso_8859_3:1988iso_8859_4:1988iso_8859_5:1988iso_8859_8:1988x_unicode20utf8iso_8859_9:1989csisolatingreekx_mac_ukrainianiso_2022_cn_extcsisolatinarabiccsisolatinhebrewunicode_1_1_utf_8csisolatincyrilliccseucpkdfmtjapanese
mov r8, qword [r8 + r10]
mov r10, r9
nop dword [rax]
test r10, r10
je 0x1800f8262
movzx ebx, byte [rsp + r10 + 0x6f]
xor r11d, r11d
cmp bl, byte [r8 + r10 - 1]
setne r11b
cmova r11d, ebp
dec r10
test r11b, r11b
je 0x1800f8210
movzx r8d, r11b
cmp r8d, 1
je 0x1800f8250
cmp r8d, 0xff
je 0x1800f81d0
jmp 0x1800f8262
mov rax, rcx
mov rcx, rax
sub rcx, rdx
ja 0x1800f81de
xor eax, eax
jmp 0x1800f7ee0
lea rax, [0x1801bdfe8]
mov rax, qword [rax + rcx*8]
jmp 0x1800f7ee0
lea r11d, [r9 - 0x61]
cmp r11b, 0x1a
jb case.0x1800f7ebd.45
lea r11d, [r9 - 0x30]
cmp r11b, 0xa
jae 0x1800f7ece
jmp case.0x1800f7ebd.45
mov r9, qword [rsp + 0x58]
mov ecx, 1
cmp dword [rsp + 0x70], 1
mov r14, qword [rsp + 0x1d0]
jne 0x1800f82e8
cmp qword [rsp + 0x88], 0
je 0x1800f82e8
mov qword [rsp + 0x60], rcx
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x1802219b8]
xor edx, edx
mov r15, r9
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [rsp + 0x60]
mov r9, r15
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
mov r15d, 3
mov rdx, qword [rsp + 0x118]
cmp r15, 3
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x1d0], r14
je 0x1800f7e40
mov rax, r14
shl rax, 0x10
movzx r8d, byte [rsp + 0xb8]
shl r8, 8
mov qword [rsp + 0xa0], rax
add rax, r8
movzx r14d, cl
mov qword [rsp + 0xd8], r14
or rax, r14
mov qword [rsp + 0x128], rax
cmp r15, 2
je 0x1800f86f5
cmp r15, 1
jne 0x1800f8714
test rsi, rsi
mov qword [rsp + 0xd0], r8
je 0x1800f883b
js 0x1800f9b84
mov rbx, rcx
movzx eax, byte [0x180221a30]
mov rax, qword [0x1802219b8]
test rax, rax
mov r13, qword [rsp + 0x38]
jne 0x1800f83a2
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9953
mov qword [0x1802219b8], rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov r14, rax
test rax, rax
jne 0x1800f8849
jmp 0x1800f9953
add rax, r13
mov rcx, rax
add r13, rsi
nop word [rax + rax]
movzx eax, byte [rcx]
lea edx, [rax - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [rcx], dl
lea rax, [rcx + 1]
mov rcx, rax
cmp rax, r13
jne 0x1800f83d0
mov r13, qword [rsp + 0x38]
mov rcx, r10
shr rcx, 8
mov rax, r10
shr rax, 0x10
mov r15d, 2
mov dl, 1
cmp r11, 2
je 0x1800f7e45
shl rax, 0x10
movzx ecx, cl
shl rcx, 8
or rcx, rax
movzx eax, r10b
or rax, rcx
mov qword [rsp + 0x358], r11
mov qword [rsp + 0x360], rax
mov qword [rsp + 0x368], r15
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x370], rax
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x378], rdi
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x380], rax
mov r11, qword [rsp + 0xd0]
mov qword [rsp + 0x388], r11
mov byte [rsp + 0x390], dl
mov eax, dword [0x1801e1dec]
lea rcx, [rsp + 0x218]
mov dword [rcx + 0x17c], eax
mov eax, dword [0x1801e1de9]
mov dword [rcx + 0x179], eax
mov qword [rsp + 0x398], r14
mov qword [rsp + 0x3a0], rsi
mov qword [rsp + 0x3a8], rsi
mov qword [rsp + 0x3b0], rbp
shl r11, 5
add r11, rdi
mov rdx, rsi
mov r9, r14
mov ebp, 0xff
nop word [rax + rax]
mov rcx, r9
test r15, r15
je 0x1800f8550
cmp r15, 1
jne 0x1800f86e0
cmp r11, rdi
lea r15, [rsp + 0x70]
je 0x1800f86ed
mov rax, qword [rdi]
mov r10, qword [rdi + 8]
lea r8, [rsp + 0x390]
movzx ebp, byte [r8]
test bpl, bpl
cmove rdx, rsi
mov rbx, r10
sub rbx, rax
jb 0x1800f9e08
mov r8, qword [rdi + 0x10]
mov r9, qword [rdi + 0x18]
test rax, rax
je 0x1800f8578
cmp rax, rdx
jae 0x1800f8572
cmp byte [rcx + rax], 0xc0
jge 0x1800f8578
jmp 0x1800f9e08
mov r15d, 2
mov r10d, 5
lea rax, [0x1801e4b9c]
lea r8, [0x1801e4ba3]
mov r9, rcx
jmp 0x1800f8622
jne 0x1800f9e08
test r10, r10
je 0x1800f859d
cmp r10, rdx
jae 0x1800f858e
cmp byte [rcx + r10], 0xbf
jg 0x1800f859d
jmp 0x1800f9e08
jne 0x1800f9e08
test rcx, rcx
je 0x1800f9e08
test bpl, bpl
mov rdx, rsi
cmove rdx, rsi
mov r10, r9
sub r10, r8
mov ebp, 0xff
jb 0x1800f9dfe
test r8, r8
je 0x1800f85d4
cmp r8, rdx
jae 0x1800f85ce
cmp byte [r14 + r8], 0xc0
jge 0x1800f85d4
jmp 0x1800f9dfe
jne 0x1800f9dfe
test r9, r9
je 0x1800f85f9
cmp r9, rdx
jae 0x1800f85ea
cmp byte [r14 + r9], 0xc0
jge 0x1800f85f0
jmp 0x1800f9dfe
jne 0x1800f9dfe
test r14, r14
je 0x1800f9dfe
add rdi, 0x20
mov r15d, 1
mov rdx, rsi
mov r9, r14
cmp rbx, 7
jne 0x1800f84e0
add rcx, rax
add r8, r14
mov rax, rcx
mov r9, r14
mov rdx, rsi
movzx ecx, byte [rax]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
cmp bl, 0x63
jne 0x1800f84e0
movzx ecx, byte [rax + 1]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
cmp bl, 0x68
jne 0x1800f84e0
movzx ecx, byte [rax + 2]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
cmp bl, 0x61
jne 0x1800f84e0
movzx ecx, byte [rax + 3]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
cmp bl, 0x72
jne 0x1800f84e0
movzx ecx, byte [rax + 4]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
cmp bl, 0x73
jne 0x1800f84e0
movzx ecx, byte [rax + 5]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
cmp bl, 0x65
jne 0x1800f84e0
movzx eax, byte [rax + 6]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x74
jne 0x1800f84e0
jmp 0x1800f86e3
xor r8d, r8d
lea r15, [rsp + 0x70]
jmp 0x1800f7e5e
xor r8d, r8d
jmp 0x1800f7e5e
cmp qword [rsp + 0x160], rsi
jae 0x1800f87a7
cmp byte [rdi + r13 - 9], 0xbf
jg 0x1800f87b1
jmp 0x1800f9e6b
test rsi, rsi
mov r13, qword [rsp + 0x38]
je 0x1800f888c
js 0x1800f9b84
mov rbx, rdx
movzx eax, byte [0x180221a30]
mov rax, qword [0x1802219b8]
test rax, rax
jne 0x1800f8754
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9953
mov qword [0x1802219b8], rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9953
mov r13, rax
mov r14, rax
mov rcx, r13
mov rdx, rdi
mov r8, rsi
call fcn.180181ff0
mov rcx, r13
cmp rsi, 8
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
jb 0x1800f9002
cmp rsi, 0x20
jae 0x1800f89a1
xor eax, eax
jmp 0x1800f8a1e
cmp r9, 9
jne 0x1800f9e6b
mov rsi, qword [rsp + 0x160]
test rsi, rsi
js 0x1800f9b84
movzx eax, byte [0x180221a30]
mov rax, qword [0x1802219b8]
test rax, rax
jne 0x1800f87eb
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9e58
mov qword [0x1802219b8], rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9e58
mov r14, rax
mov rcx, rax
mov rdx, rdi
mov r8, rsi
call fcn.180181ff0
mov rcx, r14
cmp rsi, 8
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
jb 0x1800f8fb6
cmp rsi, 0x20
jae 0x1800f88c3
xor eax, eax
jmp 0x1800f8947
mov rbx, rcx
mov r14d, 1
mov r13, qword [rsp + 0x38]
mov rcx, r14
mov rdx, rdi
mov r8, rsi
call fcn.180181ff0
cmp qword [rsp + 0x128], 0
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
je 0x1800f8bf5
mov r8, rbx
mov r9, qword [rsp + 0x128]
cmp r9, rsi
jae 0x1800f8897
cmp byte [r14 + r9], 0xbf
jg 0x1800f889d
jmp 0x1800f9eb9
mov r14d, 1
jmp 0x1800f902c
jne 0x1800f9eb9
mov rcx, r14
cmp r9, 8
jb 0x1800f8bbb
mov rdx, qword [rsp + 0x128]
cmp rdx, 0x20
jae 0x1800f8a6a
xor eax, eax
jmp 0x1800f8b54
mov rax, rsi
and rax, 0xffffffffffffffe0
mov rcx, rbx
and rcx, 0xffffffffffffffe0
xor edx, edx
movdqu xmm0, xmmword [r14 + rdx]
movdqu xmm1, xmmword [r14 + rdx + 0x10]
movdqa xmm2, xmm0
paddb xmm2, xmm10
movdqa xmm3, xmm1
paddb xmm3, xmm10
movdqa xmm4, xmm2
pminub xmm4, xmm11
pcmpeqb xmm4, xmm2
pand xmm4, xmm12
movdqa xmm2, xmm3
pminub xmm2, xmm11
pcmpeqb xmm2, xmm3
pand xmm2, xmm12
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [r14 + rdx], xmm4
movdqu xmmword [r14 + rdx + 0x10], xmm2
add rdx, 0x20
cmp rcx, rdx
jne 0x1800f88d3
cmp rsi, rax
je 0x1800f8fe5
test sil, 0x18
je 0x1800f8fb0
mov rdx, rsi
and rdx, 0xfffffffffffffff8
lea rcx, [r14 + rdx]
and rbx, 0xfffffffffffffff8
movq xmm0, qword [r14 + rax]
movdqa xmm1, xmm0
paddb xmm1, xmm7
movdqa xmm2, xmm1
pmaxub xmm2, xmm8
pcmpeqb xmm2, xmm1
pandn xmm2, xmm9
por xmm2, xmm0
movq qword [r14 + rax], xmm2
add rax, 8
cmp rbx, rax
jne 0x1800f8956
cmp rsi, rdx
jne 0x1800f8fb6
jmp 0x1800f8fe5
mov r9, qword [rsp + 0x58]
jmp 0x1800f829d
mov rax, rsi
and rax, 0xffffffffffffffe0
xor ecx, ecx
movdqu xmm0, xmmword [r14 + rcx]
movdqu xmm1, xmmword [r14 + rcx + 0x10]
movdqa xmm2, xmm0
paddb xmm2, xmm10
movdqa xmm3, xmm1
paddb xmm3, xmm10
movdqa xmm4, xmm2
pminub xmm4, xmm11
pcmpeqb xmm4, xmm2
pand xmm4, xmm12
movdqa xmm2, xmm3
pminub xmm2, xmm11
pcmpeqb xmm2, xmm3
pand xmm2, xmm12
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [r14 + rcx], xmm4
movdqu xmmword [r14 + rcx + 0x10], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x1800f89aa
cmp rsi, rax
je 0x1800f9024
test sil, 0x18
je 0x1800f8ffc
mov rdx, rsi
and rdx, 0xfffffffffffffff8
lea rcx, [rdx + r13]
movq xmm0, qword [r14 + rax]
movdqa xmm1, xmm0
paddb xmm1, xmm7
movdqa xmm2, xmm1
pmaxub xmm2, xmm8
pcmpeqb xmm2, xmm1
pandn xmm2, xmm9
por xmm2, xmm0
movq qword [r14 + rax], xmm2
add rax, 8
cmp rdx, rax
jne 0x1800f8a29
cmp rsi, rdx
jne 0x1800f9002
jmp 0x1800f9024
mov ecx, r8d
and ecx, 0x1f
mov rax, rdx
sub rax, rcx
xor edx, edx
movdqu xmm0, xmmword [r14 + rdx]
movdqu xmm1, xmmword [r14 + rdx + 0x10]
movdqa xmm2, xmm0
paddb xmm2, xmm10
movdqa xmm3, xmm1
paddb xmm3, xmm10
movdqa xmm4, xmm2
pminub xmm4, xmm11
pcmpeqb xmm4, xmm2
pand xmm4, xmm12
movdqa xmm2, xmm3
pminub xmm2, xmm11
pcmpeqb xmm2, xmm3
pand xmm2, xmm12
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [r14 + rdx], xmm4
movdqu xmmword [r14 + rdx + 0x10], xmm2
add rdx, 0x20
cmp rax, rdx
jne 0x1800f8a78
test rcx, rcx
je 0x1800f8bf5
cmp ecx, 8
jae 0x1800f8b4c
add rax, r14
mov rcx, rax
jmp 0x1800f8bbb
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rax
jmp 0x1800f90ba
mov ecx, 2
mov r9, qword [rsp + 0x58]
jmp 0x1800f829d
mov cl, 0x20
mov qword [rsp + 0xb8], rcx
mov ecx, 3
mov qword [rsp + 0xb0], rax
mov r9, qword [rsp + 0x58]
jmp 0x1800f829d
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], rdx
jmp 0x1800f90ba
mov rdx, qword [rsp + 0x128]
and r8d, 7
mov rcx, rdx
sub rcx, r8
add rcx, r14
lea rdx, [r14 + rax]
mov r9, qword [rsp + 0xa0]
add r9, qword [rsp + 0xd0]
add r9, qword [rsp + 0xd8]
sub r9, rax
sub r9, r8
xor eax, eax
movq xmm0, qword [rdx + rax]
movdqa xmm1, xmm0
paddb xmm1, xmm7
movdqa xmm2, xmm1
pmaxub xmm2, xmm8
pcmpeqb xmm2, xmm1
pandn xmm2, xmm9
por xmm2, xmm0
movq qword [rdx + rax], xmm2
add rax, 8
cmp r9, rax
jne 0x1800f8b85
test r8, r8
je 0x1800f8bf5
mov rax, qword [rsp + 0x128]
add rax, r14
nop word cs:[rax + rax]
movzx edx, byte [rcx]
lea r8d, [rdx - 0x41]
cmp r8b, 0x1a
setb r8b
shl r8b, 5
or r8b, dl
mov byte [rcx], r8b
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rdx, rax
jne 0x1800f8bd0
mov rax, qword [rsp + 0x188]
test rax, rax
je 0x1800f8fa3
shl rax, 5
mov rdx, qword [rsp + 0xb0]
add rax, rdx
lea rcx, [r14 + 0x10]
mov qword [rsp + 0xa0], rcx
jmp 0x1800f8c47
add rdx, 0x20
cmp rdx, rax
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
je 0x1800f8fa3
mov r8, qword [rdx]
mov r9, qword [rdx + 8]
cmp r9, r8
jb 0x1800f9e3a
test r8, r8
je 0x1800f8c73
cmp r8, rsi
jae 0x1800f8c6d
cmp byte [r14 + r8], 0xc0
jge 0x1800f8c73
jmp 0x1800f9e3a
jne 0x1800f9e3a
test r9, r9
je 0x1800f8c8f
cmp r9, rsi
jae 0x1800f8c89
cmp byte [r14 + r9], 0xbf
jg 0x1800f8c8f
jmp 0x1800f9e3a
jne 0x1800f9e3a
lea r10, [r14 + r8]
lea rdi, [r14 + r9]
mov r11, r9
sub r11, r8
je 0x1800f8dc3
mov r13, r10
cmp r11, 8
jb 0x1800f8da0
cmp r11, 0x20
jae 0x1800f8cbd
xor ebx, ebx
jmp 0x1800f8d4e
mov rbx, r11
and rbx, 0xffffffffffffffe0
mov rcx, qword [rsp + 0xa0]
lea r13, [rcx + r8]
xor ecx, ecx
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r13 + rcx - 0x10]
movdqu xmm1, xmmword [r13 + rcx]
movdqa xmm2, xmm0
paddb xmm2, xmm10
movdqa xmm3, xmm1
paddb xmm3, xmm10
movdqa xmm4, xmm2
pminub xmm4, xmm11
pcmpeqb xmm4, xmm2
pand xmm4, xmm12
movdqa xmm2, xmm3
pminub xmm2, xmm11
pcmpeqb xmm2, xmm3
pand xmm2, xmm12
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [r13 + rcx - 0x10], xmm4
movdqu xmmword [r13 + rcx], xmm2
add rcx, 0x20
cmp rbx, rcx
jne 0x1800f8ce0
cmp r11, rbx
je 0x1800f8dc3
test r11b, 0x18
je 0x1800f8d9a
mov rcx, r11
and rcx, 0xfffffffffffffff8
lea r13, [r10 + rcx]
nop dword [rax]
movq xmm0, qword [r10 + rbx]
movdqa xmm1, xmm0
paddb xmm1, xmm7
movdqa xmm2, xmm1
pmaxub xmm2, xmm8
pcmpeqb xmm2, xmm1
pandn xmm2, xmm9
por xmm2, xmm0
movq qword [r10 + rbx], xmm2
add rbx, 8
cmp rcx, rbx
jne 0x1800f8d60
cmp r11, rcx
jne 0x1800f8da0
jmp 0x1800f8dc3
add rbx, r10
mov r13, rbx
movzx ecx, byte [r13]
lea ebx, [rcx - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, cl
mov byte [r13], bl
lea rcx, [r13 + 1]
mov r13, rcx
cmp rcx, rdi
jne 0x1800f8da0
test r8, r8
mov r13, qword [rsp + 0x38]
je 0x1800f8de3
cmp r8, rsi
jae 0x1800f8ddd
cmp byte [r10], 0xc0
jge 0x1800f8de3
jmp 0x1800f9e3a
jne 0x1800f9e3a
test r9, r9
je 0x1800f8dfd
cmp r9, rsi
jae 0x1800f8df7
cmp byte [rdi], 0xbf
jg 0x1800f8dfd
jmp 0x1800f9e3a
jne 0x1800f9e3a
cmp r11, 7
jne 0x1800f8c30
mov ecx, dword [r10]
mov r8d, 0x72616863
xor ecx, r8d
mov r8d, dword [r10 + 3]
mov r9d, 0x74657372
xor r8d, r9d
or r8d, ecx
jne 0x1800f8c30
mov r8, qword [rdx + 0x10]
mov r9, qword [rdx + 0x18]
cmp r9, r8
jb 0x1800f9e3a
test r8, r8
je 0x1800f8e56
cmp r8, rsi
jae 0x1800f8e50
cmp byte [r14 + r8], 0xc0
jge 0x1800f8e56
jmp 0x1800f9e3a
jne 0x1800f9e3a
test r9, r9
je 0x1800f8e72
cmp r9, rsi
jae 0x1800f8e6c
cmp byte [r14 + r9], 0xbf
jg 0x1800f8e72
jmp 0x1800f9e3a
jne 0x1800f9e3a
mov r10, r9
sub r10, r8
je 0x1800f8c30
lea r11, [r14 + r8]
cmp r10, 8
jae 0x1800f8e90
mov r8, r11
jmp 0x1800f8f6c
cmp r10, 0x20
jae 0x1800f8e9d
xor edi, edi
jmp 0x1800f8f22
mov rdi, r10
and rdi, 0xffffffffffffffe0
add r8, qword [rsp + 0xa0]
xor ecx, ecx
movdqu xmm0, xmmword [r8 + rcx - 0x10]
movdqu xmm1, xmmword [r8 + rcx]
movdqa xmm2, xmm0
paddb xmm2, xmm10
movdqa xmm3, xmm1
paddb xmm3, xmm10
movdqa xmm4, xmm2
pminub xmm4, xmm11
pcmpeqb xmm4, xmm2
pand xmm4, xmm12
movdqa xmm2, xmm3
pminub xmm2, xmm11
pcmpeqb xmm2, xmm3
pand xmm2, xmm12
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [r8 + rcx - 0x10], xmm4
movdqu xmmword [r8 + rcx], xmm2
add rcx, 0x20
cmp rdi, rcx
jne 0x1800f8eae
cmp r10, rdi
je 0x1800f8c30
test r10b, 0x18
je 0x1800f8f9b
mov rcx, r10
and rcx, 0xfffffffffffffff8
lea r8, [r11 + rcx]
nop dword [rax]
movq xmm0, qword [r11 + rdi]
movdqa xmm1, xmm0
paddb xmm1, xmm7
movdqa xmm2, xmm1
pmaxub xmm2, xmm8
pcmpeqb xmm2, xmm1
pandn xmm2, xmm9
por xmm2, xmm0
movq qword [r11 + rdi], xmm2
add rdi, 8
cmp rcx, rdi
jne 0x1800f8f30
cmp r10, rcx
je 0x1800f8c30
add r9, r14
nop
movzx ecx, byte [r8]
lea r10d, [rcx - 0x41]
cmp r10b, 0x1a
setb r10b
shl r10b, 5
or r10b, cl
mov byte [r8], r10b
lea rcx, [r8 + 1]
mov r8, rcx
cmp rcx, r9
jne 0x1800f8f70
jmp 0x1800f8c30
add r11, rdi
jmp 0x1800f8e88
mov rdx, qword [rsp + 0x118]
jmp 0x1800f902c
add rax, r14
mov rcx, rax
lea rax, [r14 + r13]
add rax, 0xfffffffffffffff7
nop
movzx edx, byte [rcx]
lea r8d, [rdx - 0x41]
cmp r8b, 0x1a
setb r8b
shl r8b, 5
or r8b, dl
mov byte [rcx], r8b
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rdx, rax
jne 0x1800f8fc0
mov rdx, qword [rsp + 0x118]
jmp 0x1800f9027
mov qword [rsp + 0xb0], r14
jmp 0x1800f8afa
add rax, r13
mov rcx, rax
add r13, rsi
movzx eax, byte [rcx]
lea edx, [rax - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [rcx], dl
lea rax, [rcx + 1]
mov rcx, rax
cmp rax, r13
jne 0x1800f9005
mov rdx, rbx
mov r13, qword [rsp + 0x38]
mov rcx, r10
shr rcx, 8
mov rax, r10
shr rax, 0x10
mov r8, qword [rsp + 0xb0]
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rsp + 0x188]
mov qword [rsp + 0xd0], rdx
mov dl, 1
cmp r11, 2
je 0x1800f7e45
jmp 0x1800f8414
mov al, 0x22
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xb0], rdx
jmp 0x1800f90b0
mov ecx, 2
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x58]
jmp 0x1800f829d
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xb8], rax
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x58]
mov ecx, 3
jmp 0x1800f829d
mov r13, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
movdqu xmm0, xmmword [rsp + 0x88]
movdqa xmmword [rsp + 0x200], xmm0
mov rcx, rdi
call fcn.1800f6cf0
test r13, r13
je 0x1800f9146
movdqa xmm0, xmmword [rsp + 0x200]
movdqu xmmword [rsp + 0x1f0], xmm0
mov qword [rsp + 0x1e0], r13
mov qword [rsp + 0x1e8], r12
mov rsi, qword [rsp + 0x3b8]
mov rdi, qword [rsp + 0x1f0]
cmp rdi, 3
mov r14, qword [rsp + 0x130]
jae 0x1800f9164
cmp rdi, 2
je 0x1800f9183
mov rdx, r12
mov rbp, rdi
jmp 0x1800f926b
cmp dword [rsp + 0x358], 2
mov r14, qword [rsp + 0x130]
jne 0x1800f91f2
mov rsi, r12
jmp 0x1800f9c37
movzx eax, word [r12]
xor eax, 0xbbef
movzx ecx, byte [r12 + 2]
xor ecx, 0xbf
or cx, ax
je 0x1800f9253
movzx eax, word [r12]
cmp eax, 0xfeff
je 0x1800f9245
cmp word [r12], 0xfffe
mov rdx, r12
mov rbp, rdi
jne 0x1800f926b
lea rsi, [0x1801bc6f8]
mov edx, 2
jmp 0x1800f9262
movzx eax, byte [rsp + 0x5a8]
test eax, eax
je 0x1800f930c
cmp eax, 3
mov r14, qword [rsp + 0x130]
jne 0x1800f91e9
mov rcx, rdi
call fcn.1800f6cf0
cmp dword [rsp + 0x358], 2
jne 0x1800f9478
xor ebx, ebx
xor esi, esi
jmp 0x1800f9c39
cmp byte [rsp + 0x390], 0
je 0x1800f921e
cmp qword [rsp + 0x3a0], 0
je 0x1800f921e
mov r8, qword [rsp + 0x398]
mov rcx, qword [0x1802219b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp dword [rsp + 0x368], 1
jne 0x1800f915c
cmp qword [rsp + 0x380], 0
je 0x1800f915c
xor ebx, ebx
mov rsi, r12
jmp 0x1800f9c1b
lea rax, [0x1801e3568]
mov edx, 2
jmp 0x1800f925f
lea rax, [0x1801e3570]
mov edx, 3
mov rsi, qword [rax]
mov rbp, rdi
sub rbp, rdx
add rdx, r12
lea rax, [0x1801bc720]
cmp rsi, rax
mov qword [rsp + 0xc0], rdx
je 0x1800f92d2
lea rax, [0x1801bc7d0]
cmp rsi, rax
je 0x1800f92d2
lea rax, [0x1801bc6f8]
cmp rsi, rax
je 0x1800f92d2
lea rax, [0x1801bc748]
cmp rsi, rax
je 0x1800f92f1
lea rax, [0x1801bc3e0]
cmp rsi, rax
je 0x1800f9378
mov r15d, edx
neg r15d
and r15d, 7
lea rax, [r15 + 0x10]
cmp rax, rbp
jbe 0x1800f93af
xor r15d, r15d
jmp 0x1800f9454
movzx ecx, byte [rsi]
mov al, 9
lea rdx, [0x1800fa194]
movsxd r8, dword [rdx + rcx*4]
add r8, rdx
jmp r8
mov al, 2
xor edx, edx
jmp case.0x1800f92e5.12
mov rcx, rdx
mov rdx, rbp
call fcn.180033600
mov rdx, qword [rsp + 0xc0]
mov r15, rax
jmp 0x1800f9736
lea rcx, [rsp + 0x218]
call fcn.180008f30
mov rcx, qword [rsp + 0x278]
call fcn.18005cbb0
lea rcx, [rsp + 0x288]
call fcn.180085660
mov rsi, qword [rsp + 0x2a8]
cmp qword [rsi + 0x18], 0
mov r14, qword [rsp + 0x130]
je 0x1800f935d
mov r8, qword [rsi + 0x10]
mov rcx, qword [0x1802219b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [0x1802219b8]
xor ebx, ebx
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
xor esi, esi
jmp 0x1800f9c39
xor ecx, ecx
mov eax, 0x800c000
nop
cmp rbp, rcx
je 0x1800f973e
mov r15, rcx
movzx r8d, byte [rdx + rcx]
test r8b, r8b
js 0x1800f9736
lea rcx, [r15 + 1]
cmp r8d, 0x1b
ja 0x1800f9380
bt eax, r8d
jae 0x1800f9380
jmp 0x1800f9736
test r15, r15
je 0x1800f941d
cmp byte [rdx], 0
js 0x1800f9706
cmp r15d, 1
je 0x1800f941d
cmp byte [rdx + 1], 0
js 0x1800f971e
cmp r15d, 2
je 0x1800f941d
cmp byte [rdx + 2], 0
js 0x1800f9dd2
cmp r15d, 3
je 0x1800f941d
cmp byte [rdx + 3], 0
js 0x1800f9ddd
cmp r15d, 4
je 0x1800f941d
cmp byte [rdx + 4], 0
js 0x1800f9de8
cmp r15d, 5
je 0x1800f941d
cmp byte [rdx + 5], 0
js 0x1800f9df3
cmp r15d, 6
je 0x1800f941d
cmp byte [rdx + 6], 0
js 0x1800f9e1e
lea rax, [rbp - 0x10]
movabs rcx, 0x8080808080808080
nop dword [rax + rax]
mov r10, qword [rdx + r15]
and r10, rcx
mov r8, qword [rdx + r15 + 8]
and r8, rcx
mov r9, r8
or r9, r10
jne 0x1800f96f6
add r15, 0x10
cmp r15, rax
jbe 0x1800f9430
cmp r15, rbp
jae 0x1800f973e
nop dword [rax]
cmp byte [rdx + r15], 0
js 0x1800f9736
inc r15
cmp rbp, r15
jne 0x1800f9460
jmp 0x1800f973e
cmp byte [rsp + 0x390], 0
je 0x1800f94a4
cmp qword [rsp + 0x3a0], 0
je 0x1800f94a4
mov r8, qword [rsp + 0x398]
mov rcx, qword [0x1802219b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
xor ebx, ebx
cmp dword [rsp + 0x368], 1
jne 0x1800f970b
cmp qword [rsp + 0x380], 0
mov esi, 0
je 0x1800f9c39
mov r8, qword [rsp + 0x378]
mov rcx, qword [0x1802219b8]
xor ebx, ebx
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
xor esi, esi
jmp 0x1800f9c39
mov rdx, qword [rsi + 8]
xor eax, eax
jmp case.0x1800f92e5.12
mov dword [rsp + 0x148], 0
mov qword [rsp + 0x140], 0
mov al, 1
xor edx, edx
jmp case.0x1800f92e5.12
mov al, 3
jmp case.0x1800f92e5.12
mov al, 4
jmp case.0x1800f92e5.12
mov al, 5
jmp case.0x1800f92e5.12
mov al, 6
jmp case.0x1800f92e5.12
mov al, 7
jmp case.0x1800f92e5.12
mov al, 8
jmp case.0x1800f92e5.12
mov al, 0xa
mov cl, 1
jmp case.0x1800f92e5.12
mov al, 0xa
xor ecx, ecx
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x100], rsi
mov byte [rsp + 0xe0], al
mov dword [rsp + 0xe1], 0
mov byte [rsp + 0xe5], 0
mov byte [rsp + 0xe6], cl
mov byte [rsp + 0xe7], 0
mov qword [rsp + 0xe8], rdx
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xf0], rax
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0xf8], eax
mov word [rsp + 0xfc], 0xbf80
mov byte [rsp + 0x108], 9
lea rcx, [rsp + 0xe0]
mov rdx, rbp
call fcn.1800332d0
test rax, rax
je 0x1800f9601
mov rsi, rax
lea rax, [rdx - 1]
bsr rcx, rax
not ecx
mov rax, 0xffffffffffffffff
shr rax, cl
inc rax
cmp rdx, 2
mov edi, 1
cmovae rdi, rax
lea rcx, [rsp + 0xe0]
mov rdx, rbp
call fcn.180033460
cmp rsi, 1
jne 0x1800f9611
cmp rax, 1
jne 0x1800f961d
cmp rdi, rdx
cmovae rdi, rdx
jmp 0x1800f961d
lea rcx, [rsp + 0xe0]
mov rdx, rbp
call fcn.180033460
mov rdi, rdx
test rax, rax
je 0x1800f9b84
test rdi, rdi
je 0x1800f966f
js 0x1800f9b84
movzx eax, byte [0x180221a30]
mov rcx, qword [0x1802219b8]
test rcx, rcx
jne 0x1800f9650
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9660
mov rcx, rax
mov qword [0x1802219b8], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
jne 0x1800f9674
mov ecx, 1
mov rdx, rdi
call fcn.180183f50
ud2
mov eax, 1
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xd8], r12
movdqu xmm0, xmmword [rsp + 0xe0]
movdqu xmm1, xmmword [rsp + 0xf0]
movdqu xmm2, xmmword [rsp + 0x100]
movdqa xmmword [rsp + 0x90], xmm2
movdqa xmmword [rsp + 0x80], xmm1
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x100], xmm2
movdqa xmmword [rsp + 0xf0], xmm1
movdqa xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rdi
mov qword [rsp + 0x150], 0
xor r15d, r15d
jmp 0x1800f99f1
test r10, r10
je 0x1800f9712
tzcnt rax, r10
shr rax, 3
jmp 0x1800f9733
xor r15d, r15d
jmp 0x1800f9736
xor esi, esi
jmp 0x1800f9c39
test r8, r8
je 0x1800f9726
tzcnt rax, r8
jmp 0x1800f972b
mov r15d, 1
jmp 0x1800f9736
mov eax, 0x40
shr rax, 3
add rax, 8
add r15, rax
mov rbx, rbp
sub rbx, r15
jne 0x1800f979b
test rbp, rbp
je 0x1800f97bf
js 0x1800f9b84
movzx eax, byte [0x180221a30]
mov rcx, qword [0x1802219b8]
test rcx, rcx
jne 0x1800f9771
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f978c
mov rcx, rax
mov qword [0x1802219b8], rax
xor edx, edx
mov r8, rbp
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
mov rdx, qword [rsp + 0xc0]
and al, 0xc0
add byte [rax], al
add byte [rbp + 0x38], dh
and al, 0xc0
add byte [rax], al
add byte [rbp + 0x38], dh
mov ecx, 1
mov rdx, rbp
call fcn.180183f50
ud2
mov qword [rsp + 0xa0], rdi
movzx ecx, byte [rsi]
mov al, 9
lea rdx, [0x1800fa1c8]
sbb dword [rdx], ecx
add byte [rax], al
sbb dword [rdx], ecx
add byte [rax], al
movsxd r8, dword [rdx + rcx*4]
add r8, rdx
jmp r8
mov al, 2
xor ecx, ecx
jmp case.0x1800f97b6.12
mov ebx, 1
mov rcx, rbx
mov r8, rbp
mov eax, ebp
mov eax, ebp
call fcn.180181ff0
mov rsi, rbp
mov esi, ebp
mov byte [rax], cl
add byte [rax - 0x77], cl
mov esi, ebp
mov esi, ebp
jmp 0x1800f9bbe
add eax, dword [rax]
add byte [rax - 0x75], cl
mov rcx, qword [rsi + 8]
invalid
mov rcx, qword [rsi + 8]
mov ecx, dword [rsi + 8]
xor eax, eax
jmp case.0x1800f97b6.12
shr bl, 0x3f
mov dword [rsp + 0x148], 0
test byte [rax + rcx*2], ah
add dword [rax], eax
add byte [rax], al
add byte [rax], al
add byte [rax], al
mov qword [rsp + 0x140], 0
mov al, 1
xor ecx, ecx
jmp case.0x1800f97b6.12
mov al, 3
jmp case.0x1800f97b6.12
mov al, 4
jmp case.0x1800f97b6.12
mov al, 5
jmp case.0x1800f97b6.12
mov al, 6
add byte [rax], al
add byte [rax], al
mov qword [rsp + 0x140], 0
mov al, 1
xor ecx, ecx
jmp case.0x1800f97b6.12
mov al, 3
jmp case.0x1800f97b6.12
mov al, 4
jmp case.0x1800f97b6.12
mov al, 5
jmp case.0x1800f97b6.12
mov al, 6
jmp case.0x1800f97b6.12
mov al, 7
jmp case.0x1800f97b6.12
mov al, 8
jmp case.0x1800f97b6.12
mov al, 0xa
mov dl, 1
jmp case.0x1800f97b6.12
mov al, 0xa
xor edx, edx
mov qword [rsp + 0x100], rsi
mov byte [rsp + 0xe0], al
mov dword [rsp + 0xe1], 0
mov byte [rsp + 0xe5], 0
mov byte [rsp + 0xe6], dl
mov byte [rsp + 0xe7], 0
mov qword [rsp + 0xe8], rcx
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xf0], rax
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0xf8], eax
mov word [rsp + 0xfc], 0xbf80
mov byte [rsp + 0x108], 9
lea rcx, [rsp + 0xe0]
mov rdx, rbx
call fcn.1800332d0
cmp rax, 1
setne al
add rdx, r15
setb dil
or dil, al
jne 0x1800f98cf
lea rax, [rdx - 1]
bsr rcx, rax
not ecx
mov rax, 0xffffffffffffffff
shr rax, cl
inc rax
cmp rdx, 2
mov r14d, 1
cmovae r14, rax
lea rcx, [rsp + 0xe0]
mov rdx, rbx
call fcn.180033460
cmp rax, 1
jne 0x1800f98f1
mov rsi, rdx
add rsi, r15
jae 0x1800f9db5
mov rsi, r14
test dil, dil
mov rdx, qword [rsp + 0xc0]
jne 0x1800f9b84
test rsi, rsi
je 0x1800f9962
js 0x1800f9b84
movzx eax, byte [0x180221a30]
mov rcx, qword [0x1802219b8]
test rcx, rcx
jne 0x1800f9938
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9953
mov rcx, rax
mov qword [0x1802219b8], rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov rdi, rax
test rax, rax
mov rdx, qword [rsp + 0xc0]
jne 0x1800f9967
mov ecx, 1
mov rdx, rsi
call fcn.180183f50
ud2
mov edi, 1
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xd8], r12
mov rcx, rdi
mov r8, r15
call fcn.180181ff0
movdqu xmm0, xmmword [rsp + 0xe0]
movdqu xmm1, xmmword [rsp + 0xf0]
movdqu xmm2, xmmword [rsp + 0x100]
movdqa xmmword [rsp + 0x90], xmm2
movdqa xmmword [rsp + 0x80], xmm1
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x100], xmm2
movdqa xmmword [rsp + 0xf0], xmm1
movdqa xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0x140], rdi
mov qword [rsp + 0x148], rsi
mov qword [rsp + 0x150], r15
cmp rbp, r15
jb 0x1800f9b84
mov qword [rsp + 0x38], rbp
mov r12, qword [rsp + 0x148]
mov r13, qword [rsp + 0x150]
mov qword [rsp + 0x168], r12
sub r12, r13
jb 0x1800f9b84
mov rax, qword [rsp + 0xc0]
lea r14, [rax + r15]
mov rsi, rbp
sub rsi, r15
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x138], rax
lea rbx, [rax + r13]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0xe0]
mov r8, r14
mov r9, rsi
call fcn.1800339a0
movzx eax, byte [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
cmp eax, 1
je 0x1800f9b22
cmp eax, 2
jne 0x1800f9b88
nop word cs:[rax + rax]
cmp rdi, r12
jae 0x1800f9b84
mov byte [rbx + rdi], 0xef
lea rax, [rdi + 1]
cmp rax, r12
jae 0x1800f9b84
mov byte [rbx + rdi + 1], 0xbf
lea rax, [rdi + 2]
cmp rax, r12
jae 0x1800f9b84
mov byte [rbx + rax], 0xbd
cmp rbp, rsi
ja 0x1800f9b84
add rdi, 3
mov rax, r12
sub rax, rdi
jb 0x1800f9b84
lea r8, [r14 + rbp]
mov r9, rsi
sub r9, rbp
lea rcx, [rbx + rdi]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0xe0]
call fcn.1800339a0
add rbp, qword [rsp + 0x70]
movzx eax, byte [rsp + 0x78]
add rdi, qword [rsp + 0x80]
cmp eax, 2
je 0x1800f9a90
test eax, eax
je 0x1800f9b88
add rdi, r13
mov qword [rsp + 0x150], rdi
add r15, rbp
mov rbp, qword [rsp + 0x38]
mov rdx, rbp
sub rdx, r15
lea rcx, [rsp + 0xe0]
call fcn.180033460
test rax, rax
je 0x1800f9b84
mov r8, rdx
mov rax, qword [rsp + 0x168]
sub rax, rdi
cmp rax, rdx
jb 0x1800f9b6b
cmp rbp, r15
jae 0x1800f99f6
jmp 0x1800f9b84
lea rcx, [rsp + 0x140]
mov rdx, rdi
call fcn.18018a0b0
cmp rbp, r15
jae 0x1800f99f6
ud2
mov r14, qword [rsp + 0x130]
add rdi, r13
mov rbp, rdi
mov r12, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x168]
mov rbx, qword [rsp + 0x138]
lea rcx, [rsp + 0x1f8]
mov rdx, r12
mov r8, rdi
call qword [r13 + 0x10]
cmp dword [rsp + 0x358], 2
je 0x1800f9c32
cmp byte [rsp + 0x390], 0
je 0x1800f9c06
cmp qword [rsp + 0x3a0], 0
je 0x1800f9c06
mov r8, qword [rsp + 0x398]
mov rcx, qword [0x1802219b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp dword [rsp + 0x368], 1
jne 0x1800f9c32
cmp qword [rsp + 0x380], 0
je 0x1800f9c32
mov r8, qword [rsp + 0x378]
mov rcx, qword [0x1802219b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test rbx, rbx
jne 0x1800f9c39
xor ebx, ebx
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x1a0]
call qword [rax + 0x18]
test rbx, rbx
je 0x1800f9c79
mov rax, qword [rsp + 0x190]
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rbp
mov rsi, qword [r14 + 0xa8]
test rsi, rsi
jne 0x1800f9d02
jmp 0x1800f9d32
test rsi, rsi
jne 0x1800f9ce3
movzx eax, byte [0x180221a30]
mov rcx, qword [0x1802219b8]
test rcx, rcx
jne 0x1800f9caa
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1800f9e47
mov rcx, rax
mov qword [0x1802219b8], rax
mov r8d, 0x70
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1800f9e47
mov rsi, rax
mov dword [rax], 2
mov qword [rax + 0x58], 1
lea rax, [0x1801e3978]
mov qword [rsi + 0x60], rax
mov word [rsi + 0x68], 5
mov rax, qword [rsp + 0x190]
mov qword [rax + 8], rsi
mov qword [rax], 0
mov rsi, qword [r14 + 0xa8]
test rsi, rsi
je 0x1800f9d32
mov rdi, qword [r14 + 0xb0]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1800f9d32
cmp qword [rdi + 0x10], 0x11
jb 0x1800f9d20
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1802219b8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [r14 + 0xb8]
test rcx, rcx
je 0x1800f9d49
lock dec qword [rcx]
jne 0x1800f9d49
call fcn.1800f3500
movaps xmm6, xmmword [rsp + 0x930]
movaps xmm7, xmmword [rsp + 0x940]
movaps xmm8, xmmword [rsp + 0x950]
movaps xmm9, xmmword [rsp + 0x960]
movaps xmm10, xmmword [rsp + 0x970]
movaps xmm11, xmmword [rsp + 0x980]
movaps xmm12, xmmword [rsp + 0x990]
movaps xmm13, xmmword [rsp + 0x9a0]
movaps xmm14, xmmword [rsp + 0x9b0]
movaps xmm15, xmmword [rsp + 0x9c0]
add rsp, 0x9d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test dil, dil
mov rdx, qword [rsp + 0xc0]
jne 0x1800f9905
cmp r14, rsi
cmovb rsi, r14
jmp 0x1800f9905
mov r15d, 2
jmp 0x1800f9736
mov r15d, 3
jmp 0x1800f9736
mov r15d, 4
jmp 0x1800f9736
mov r15d, 5
jmp 0x1800f9736
mov rcx, r14
call fcn.180184120
ud2
mov r8, rax
mov r9, r10
call fcn.180184120
ud2
call sub.kernel32.dll_GetLastError
ud2
mov r15d, 6
jmp 0x1800f9736
mov ecx, 8
mov edx, 0x18
call fcn.180183f50
ud2
mov rcx, r14
mov rdx, rsi
call fcn.180184120
ud2
mov ecx, 8
mov edx, 0x70
call fcn.180183f50
ud2
add r13, 0xfffffffffffffff7
mov ecx, 1
mov rdx, r13
call fcn.180183f50
ud2
add r13, 0xfffffffffffffff7
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, r13
call fcn.180184120
ud2
mov ecx, 8
mov edx, 0x20
call fcn.180183f50
ud2
mov ecx, 8
mov edx, 0x40
call fcn.180183f50
ud2
mov rcx, rdi
mov rdx, rsi
mov r8, qword [rsp + 0x180]
call fcn.180184120
ud2
mov rcx, r14
mov rdx, rsi
xor r8d, r8d
call fcn.180184120
ud2
mov rcx, rdi
mov rdx, rsi
mov r8, qword [rsp + 0x40]
call fcn.180184120
ud2