Function at 0x18001dbe0
Capabilities:
Check os version
Get local ipv4 addresses
Get memory capacity

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
movdqa xmmword [rsp + 0x430], xmm8
movdqa xmmword [rsp + 0x420], xmm7
movaps xmmword [rsp + 0x410], xmm6
mov rdi, rcx
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa0], 0
jne 0x18001dc33
call fcn.18011f150
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movdqu xmm6, xmmword [rax + 0xa8]
inc qword [rax + 0xa8]
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x18001dc81
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b72
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x56410
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x180020b72
mov rsi, rax
add rsi, 0x56000
mov r8d, 0x410
mov rcx, rsi
mov dl, 0xff
call fcn.180167a10
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x18001dcde
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b7e
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 9
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x180020b7e
movabs rcx, 0x5043206c61746f54
mov qword [rax], rcx
mov byte [rax + 8], 0x55
pxor xmm7, xmm7
movdqu xmmword [rsp + 0x200], xmm7
movdqu xmmword [rsp + 0x218], xmm7
mov qword [rsp + 0x228], 0
movdqu xmmword [rsp + 0x258], xmm7
mov byte [rsp + 0x268], 0
movdqu xmmword [rsp + 0x1c0], xmm7
movdqu xmmword [rsp + 0x1d0], xmm7
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x198], 0x3ff
mov qword [rsp + 0x1a0], 0x380
mov qword [rsp + 0x1a8], 0
movdqu xmmword [rsp + 0x1b0], xmm6
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], 9
mov qword [rsp + 0x1f0], 9
mov qword [rsp + 0x1f8], 1
mov qword [rsp + 0x210], 1
mov qword [rsp + 0x240], 0
mov dword [rsp + 0x248], 0
mov qword [rsp + 0x250], 8
movdqa xmmword [rsp + 0x2f0], xmm7
movdqa xmmword [rsp + 0x320], xmm7
movdqa xmmword [rsp + 0x310], xmm7
movdqa xmmword [rsp + 0x300], xmm7
mov dword [rsp + 0x2f0], 0x40
lea rcx, [rsp + 0x2f0]
call qword [sym.imp.kernel32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x18001de2d
call sub.kernel32.dll_GetLastError
mov qword [rsp + 0x2e8], rdi
movups xmm0, xmmword [rsp + 0x2f8]
movups xmmword [rsp + 0x1c0], xmm0
movdqa xmmword [rsp + 0x340], xmm7
movdqa xmmword [rsp + 0x330], xmm7
movdqa xmmword [rsp + 0x320], xmm7
movdqa xmmword [rsp + 0x310], xmm7
movdqa xmmword [rsp + 0x300], xmm7
movdqa xmmword [rsp + 0x2f0], xmm7
mov qword [rsp + 0x350], 0
lea rcx, [rsp + 0x2f0]
mov edx, 0x68
call qword [sym.imp.kernel32.dll_K32GetPerformanceInfo]
test eax, eax
je 0x18001defa
mov r8, qword [rsp + 0x310]
mov r9, qword [rsp + 0x300]
xor r10d, r10d
sub r9, r8
cmovb r9, r10
mov rcx, qword [rsp + 0x340]
mov rax, rcx
mul r9
mov r9, 0xffffffffffffffff
cmovo rax, r9
mov r11, qword [rsp + 0x2f8]
sub r11, r8
cmovb r11, r10
mov qword [rsp + 0x1d0], rax
mov rax, rcx
mul r11
cmovo rax, r9
mov qword [rsp + 0x1d8], rax
movabs rdi, 0x202020202020101
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov dl, 1
call fcn.1800fb580
mov byte [rsp + 0x2f0], 1
mov qword [rsp + 0x2f1], rdi
lea rdx, [rsp + 0x2f0]
mov rcx, rsi
call fcn.1800fba30
lea rcx, [rsp + 0x2f0]
mov r8d, 0x120
mov rdx, rsi
call fcn.180167370
pxor xmm6, xmm6
movdqa xmmword [rsp + 0x150], xmm6
movdqa xmmword [rsp + 0x180], xmm6
movdqa xmmword [rsp + 0x170], xmm6
movdqa xmmword [rsp + 0x160], xmm6
mov dword [rsp + 0x150], 0x40
lea rcx, [rsp + 0x150]
call qword [sym.imp.kernel32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x18001df96
call sub.kernel32.dll_GetLastError
movups xmm0, xmmword [rsp + 0x158]
movups xmmword [rsp + 0x360], xmm0
movdqa xmmword [rsp + 0x1a0], xmm6
movdqa xmmword [rsp + 0x190], xmm6
movdqa xmmword [rsp + 0x180], xmm6
movdqa xmmword [rsp + 0x170], xmm6
movdqa xmmword [rsp + 0x160], xmm6
movdqa xmmword [rsp + 0x150], xmm6
mov qword [rsp + 0x1b0], 0
lea rcx, [rsp + 0x150]
mov edx, 0x68
call qword [sym.imp.kernel32.dll_K32GetPerformanceInfo]
test eax, eax
je 0x18001e05b
mov r8, qword [rsp + 0x170]
mov r9, qword [rsp + 0x160]
xor r10d, r10d
sub r9, r8
cmovb r9, r10
mov rcx, qword [rsp + 0x1a0]
mov rax, rcx
mul r9
mov r9, 0xffffffffffffffff
cmovo rax, r9
mov r11, qword [rsp + 0x158]
sub r11, r8
cmovb r11, r10
mov qword [rsp + 0x370], rax
mov rax, rcx
mul r11
cmovo rax, r9
mov qword [rsp + 0x378], rax
lea rsi, [rsp + 0x2f0]
mov rcx, rsi
mov dl, 1
call fcn.1800fb580
mov byte [rsp + 0x150], 1
mov qword [rsp + 0x151], rdi
lea rdx, [rsp + 0x150]
mov rcx, rsi
call fcn.1800fba30
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa0], 0
jne 0x18001e0af
call fcn.18011f150
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
lea r12, [0x1801e8440]
mov qword [rsp + 0xb0], r12
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movdqu xmm0, xmmword [rax + 0xa8]
inc qword [rax + 0xa8]
movdqu xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0x140], 0
lea rcx, [rsp + 0x140]
call qword [sym.imp.iphlpapi.dll_GetIfTable2]
test eax, eax
jne 0x18001e550
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa0], 0
jne 0x18001e144
call fcn.18011f150
lea rax, [0x1801e8440]
mov qword [rsp + 0x150], rax
pxor xmm6, xmm6
movdqu xmmword [rsp + 0x158], xmm6
mov qword [rsp + 0x168], 0
mov eax, dword [0x1801fea34]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movdqu xmm0, xmmword [rax + 0xa8]
inc qword [rax + 0xa8]
movdqu xmmword [rsp + 0x170], xmm0
mov qword [rsp + 0x60], 8
movdqu xmmword [rsp + 0x68], xmm6
mov rax, qword [rsp + 0x140]
mov esi, dword [rax]
test rsi, rsi
je 0x18001e5e8
mov qword [rsp + 0x88], rax
lea r15, [rax + 8]
xor ebx, ebx
mov r14, qword [sym.imp.kernel32.dll_HeapAlloc]
pcmpeqd xmm7, xmm7
mov qword [rsp + 0x50], r15
jmp 0x18001e1fc
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
nop dword [rax + rax]
inc rbx
cmp rbx, rsi
je 0x18001e588
imul rdi, rbx, 0x548
cmp qword [r15 + rdi + 0x4a8], 0
jne 0x18001e219
cmp qword [r15 + rdi + 0x4b0], 0
je 0x18001e1f0
cmp dword [r15 + rdi + 0x48c], 2
je 0x18001e1f0
cmp dword [r15 + rdi + 0x420], 0
je 0x18001e1f0
movzx eax, byte [0x1801fea30]
mov rax, qword [0x1801fe9b8]
test rax, rax
jne 0x18001e258
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b61
mov qword [0x1801fe9b8], rax
mov r8d, 0x14
mov rcx, rax
xor edx, edx
call r14
test rax, rax
je 0x180020b61
mov r12, rax
mov eax, dword [r15 + rdi + 0x10]
movq xmm0, qword [r15 + rdi + 0x14]
punpcklbw xmm0, xmm6
mov dword [r12], eax
movdqu xmmword [r12 + 4], xmm0
movzx eax, byte [0x1801fea30]
mov rax, qword [0x1801fe9b8]
test rax, rax
jne 0x18001e2b6
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b61
mov qword [0x1801fe9b8], rax
mov r8d, 0x14
mov rcx, rax
xor edx, edx
call r14
test rax, rax
je 0x180020b61
mov r13, rax
mov eax, dword [r12 + 0x10]
mov dword [r13 + 0x10], eax
movups xmm0, xmmword [r12]
movups xmmword [r13], xmm0
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
mov r9d, 0xa
mov r8, r13
call fcn.180102110
mov rdi, rax
mov r14, qword [rsp + 0x150]
mov rax, qword [rsp + 0x158]
mov rbp, rdi
shr rbp, 0x39
movd xmm0, ebp
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rcx, [r14 - 0x20]
xor edx, edx
mov r8, rdi
and r8, rax
movdqu xmm1, xmmword [r14 + r8]
movdqa xmm2, xmm0
pcmpeqb xmm2, xmm1
pmovmskb r9d, xmm2
test r9d, r9d
jne 0x18001e380
pcmpeqb xmm1, xmm7
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x18001e45d
add r8, rdx
add r8, 0x10
add rdx, 0x10
jmp 0x18001e336
lea r10d, [r9 - 1]
and r10d, r9d
mov r9d, r10d
test r10w, r10w
je 0x18001e351
tzcnt r10d, r9d
add r10, r8
and r10, rax
mov r15, r10
shl r15, 5
mov r11, rcx
sub r11, r15
cmp qword [r11 + 0x10], 0xa
jne 0x18001e370
mov r11, qword [r11]
movdqu xmm2, xmmword [r11]
movdqu xmm3, xmmword [r13]
pcmpeqb xmm3, xmm2
movd xmm2, dword [r11 + 0x10]
movd xmm4, dword [r13 + 0x10]
pcmpeqb xmm4, xmm2
pand xmm4, xmm3
pmovmskb r11d, xmm4
cmp r11d, 0xffff
jne 0x18001e370
neg r10
shl r10, 5
add r14, r10
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r13
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, r14
mov r15, qword [rsp + 0x50]
mov ecx, dword [rax - 8]
inc ecx
mov dword [rax - 8], ecx
cmp ecx, 1
mov r14, qword [sym.imp.kernel32.dll_HeapAlloc]
jg 0x18001e1d9
mov rdx, qword [rsp + 0x70]
cmp rdx, qword [rsp + 0x68]
jne 0x18001e42a
lea rcx, [rsp + 0x60]
call fcn.1800650f0
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x60]
mov rcx, rdx
shl rcx, 5
mov dword [rax + rcx], ebx
mov qword [rax + rcx + 8], r12
mov qword [rax + rcx + 0x10], 0xa
mov qword [rax + rcx + 0x18], 0xa
inc rdx
mov qword [rsp + 0x70], rdx
jmp 0x18001e1f0
cmp qword [rsp + 0x160], 0
je 0x18001e526
and rdi, rax
movdqu xmm0, xmmword [r14 + rdi]
pmovmskb ecx, xmm0
test ecx, ecx
jne 0x18001e4a8
mov edx, 0x10
nop word cs:[rax + rax]
add rdi, rdx
and rdi, rax
movdqu xmm0, xmmword [r14 + rdi]
pmovmskb ecx, xmm0
add rdx, 0x10
test ecx, ecx
je 0x18001e490
mov r15, qword [rsp + 0x50]
tzcnt ecx, ecx
add rcx, rdi
and rcx, rax
movzx edx, byte [r14 + rcx]
test dl, dl
js 0x18001e4d2
movdqa xmm0, xmmword [r14]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
movzx edx, byte [r14 + rcx]
lea r8, [rcx - 0x10]
and r8, rax
mov byte [r14 + rcx], bpl
mov byte [r8 + r14 + 0x10], bpl
shl rcx, 5
mov rax, r14
sub rax, rcx
and dl, 1
movzx edx, dl
sub qword [rsp + 0x160], rdx
neg rcx
mov qword [r14 + rcx - 0x20], r13
mov qword [rax - 0x18], 0xa
mov qword [rax - 0x10], 0xa
mov dword [rax - 8], 0
inc qword [rsp + 0x168]
jmp 0x18001e3f7
lea rcx, [rsp + 0x150]
lea rdx, [rsp + 0x170]
call fcn.1801725c0
mov r14, qword [rsp + 0x150]
mov rax, qword [rsp + 0x158]
jmp 0x18001e46c
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
call fcn.180118bc0
test rax, rax
je 0x18001e571
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
mov byte [rsp + 0x98], 1
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x58], rax
jmp 0x18001f348
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x278], rax
mov rax, qword [rsp + 0x70]
mov r12, rax
shl r12, 5
add r12, rcx
mov qword [rsp + 0x98], rcx
mov rdi, rcx
test rax, rax
jne 0x18001e9e1
sub r12, rdi
jne 0x18001f5af
cmp qword [rsp + 0x278], 0
je 0x18001e5e8
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, qword [rsp + 0x98]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [rsp + 0x140]
call qword [sym.imp.iphlpapi.dll_FreeMibTable]
test eax, eax
je 0x18001e61b
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
call fcn.180118bc0
test rax, rax
je 0x18001e61b
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
mov rdi, qword [rsp + 0x158]
test rdi, rdi
je 0x18001e66a
mov rbx, qword [rsp + 0x168]
test rbx, rbx
jne 0x18001e945
mov rsi, qword [rsp + 0x150]
mov rax, rdi
shl rax, 5
add rdi, rax
cmp rdi, 0xffffffffffffffcf
je 0x18001e66a
sub rsi, rax
add rsi, 0xffffffffffffffe0
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
mov rsi, qword [rsp + 0xc8]
test rsi, rsi
jne 0x18001e71f
mov dword [rsp + 0xa8], 0x3c00
mov dword [rsp + 0xac], 0
mov ebx, 4
xor esi, esi
lea r14, [rsp + 0xa8]
mov r15, qword [sym.imp.iphlpapi.dll_GetAdaptersAddresses]
nop word [rax + rax]
dec ebx
je 0x18001f0a0
mov edx, dword [rsp + 0xa8]
mov rcx, rsi
call fcn.18015dec0
test rax, rax
je 0x18001e888
mov rdi, rax
mov qword [rsp + 0x20], r14
xor ecx, ecx
mov edx, 0xe
xor r8d, r8d
mov r9, rax
call r15
mov dword [rsp + 0xac], eax
mov rsi, rdi
cmp eax, 0x6f
je 0x18001e6b0
test eax, eax
jne 0x18001f09d
mov qword [rsp + 0x288], rdi
mov qword [rsp + 0x290], rdi
xor edi, edi
test rdi, rdi
jne 0x18001e91f
jmp 0x18001f127
mov r13, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
lea r14, [r13 + 0x10]
movdqa xmm0, xmmword [r13]
pmovmskb ebp, xmm0
not ebp
mov r15, qword [rsp + 0xc0]
pcmpeqd xmm6, xmm6
mov rdi, r13
mov r12, rsi
jmp 0x18001e769
test rsi, rsi
je 0x18001e67b
test bp, bp
je 0x18001e780
lea eax, [rbp - 1]
and eax, ebp
jmp 0x18001e7a7
movdqa xmm0, xmmword [r14]
pmovmskb ebp, xmm0
add rdi, 0xfffffffffffff780
add r14, 0x10
cmp bp, 0xffff
je 0x18001e780
mov ecx, 0xfffffffe
sub ecx, ebp
not ebp
mov eax, ebp
and eax, ecx
mov ecx, ebp
tzcnt ecx, ecx
mov ebp, eax
mov rax, rcx
neg rax
shl rcx, 3
shl rax, 7
sub rax, rcx
dec rsi
cmp byte [rdi + rax - 2], 0
jne 0x18001e760
add rax, rdi
mov rcx, r13
sub rcx, rax
sar rcx, 3
movabs rdx, 0xf0f0f0f0f0f0f0f1
imul rcx, rdx
lea rdx, [rcx - 0x10]
and rdx, rbx
movdqu xmm0, xmmword [r13 + rdx]
pcmpeqb xmm0, xmm6
psllw xmm0, 7
pmovmskb r8d, xmm0
test r8d, r8d
je 0x18001e811
bsr r8w, r8w
xor r8d, 0xf
jmp 0x18001e816
mov r8w, 0x10
movdqu xmm0, xmmword [r13 + rcx]
pcmpeqb xmm0, xmm6
pmovmskb r9d, xmm0
or r9d, 0x10000
tzcnt r9d, r9d
add r8d, r9d
mov r9b, 0x80
cmp r8w, 0xf
ja 0x18001e84d
inc r15
mov qword [rsp + 0xc0], r15
mov r9b, 0xff
mov byte [r13 + rcx], r9b
mov byte [rdx + r13 + 0x10], r9b
dec r12
mov qword [rsp + 0xc8], r12
cmp qword [rax - 0x80], 0
je 0x18001e760
mov r8, qword [rax - 0x88]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x18001e760
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x18001e8b4
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b9c
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, 0x32
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x180020b9c
mov rdi, rax
movups xmm0, xmmword [0x1801c4edc]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [0x1801c4ecc]
movups xmmword [rax + 0x10], xmm0
movdqu xmm0, xmmword [str.failed_to_allocate_memory_for_IP_ADAPTER_ADDRESSESGetAdaptersAddresses___failed_with_code]
movdqu xmmword [rax], xmm0
mov word [rax + 0x30], 0x5345
mov rcx, rsi
call fcn.18015dec8
mov qword [rsp + 0x288], 0x32
mov qword [rsp + 0x290], 0x32
test rdi, rdi
je 0x18001f127
cmp qword [rsp + 0x288], 0
je 0x18001f31b
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x18001f31b
mov rsi, qword [rsp + 0x150]
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
not eax
lea r14, [rsi + 0x10]
mov r15, qword [sym.imp.kernel32.dll_HeapFree]
mov r12, rsi
jmp 0x18001e97b
mov eax, ebp
test rbx, rbx
je 0x18001e641
test ax, ax
je 0x18001e990
lea ebp, [rax - 1]
and ebp, eax
jmp 0x18001e9b7
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
add r12, 0xfffffffffffffe00
add r14, 0x10
cmp ax, 0xffff
je 0x18001e990
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebp, eax
and ebp, ecx
tzcnt ecx, eax
shl rcx, 5
mov rax, r12
sub rax, rcx
dec rbx
cmp qword [rax - 0x18], 0
je 0x18001e970
mov r8, qword [rax - 0x20]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r15
jmp 0x18001e970
mov rsi, qword [rsp + 0x88]
add rsi, 0x2a
pcmpeqd xmm6, xmm6
mov rdi, qword [rsp + 0x98]
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0xa0], r12
jmp 0x18001ea32
mov r15, qword [rsp + 0x50]
test rbx, rbx
je 0x18001ea29
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, qword [rsp + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
cmp rdi, r12
je 0x18001e5c6
mov rax, rdi
add rdi, 0x20
mov rcx, qword [rax + 8]
mov qword [rsp + 0x30], rcx
test rcx, rcx
je 0x18001e5bd
mov rbx, qword [rax + 0x10]
mov edx, dword [rax]
cmp qword [rsp + 0x168], 0
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x138], rbx
je 0x18001eba0
mov qword [rsp + 0x48], rdx
mov rdi, qword [rax + 0x18]
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
mov r8, qword [rsp + 0x30]
mov r9, rdi
call fcn.180102110
mov r13, rax
mov rcx, qword [rsp + 0x150]
mov rbx, qword [rsp + 0x158]
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm7, xmm0, 0
lea rsi, [rcx - 0x20]
lea rbp, [rdi + rdi]
xor r15d, r15d
mov qword [rsp + 0x40], rcx
and r13, rbx
movdqu xmm8, xmmword [rcx + r13]
movdqa xmm0, xmm7
pcmpeqb xmm0, xmm8
pmovmskb r12d, xmm0
test r12d, r12d
jne 0x18001eb20
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x18001eeaa
add r13, r15
add r13, 0x10
add r15, 0x10
mov rcx, qword [rsp + 0x40]
jmp 0x18001eacf
lea eax, [r12 - 1]
and eax, r12d
mov r12d, eax
test ax, ax
je 0x18001eaeb
tzcnt r14d, r12d
add r14, r13
and r14, rbx
mov rcx, r14
shl rcx, 5
mov rax, rsi
sub rax, rcx
cmp qword [rax + 0x10], rdi
jne 0x18001eb10
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x30]
mov r8, rbp
call fcn.180167db0
test eax, eax
jne 0x18001eb10
neg r14
shl r14, 5
mov rcx, qword [rsp + 0x40]
add rcx, r14
lea rax, [rcx - 0x20]
test rcx, rcx
cmove rax, rcx
mov rsi, qword [rsp + 0x88]
mov r15, qword [rsp + 0x50]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x48]
jmp 0x18001eba2
xor eax, eax
lea rcx, [rax + 0x18]
test rax, rax
lea rax, [0x1801c4eb8]
cmove rcx, rax
cmp dword [rcx], 1
jg 0x18001ea10
imul r14, rdx, 0x548
lea rbp, [r15 + r14]
lea rdx, [r15 + r14]
add rdx, 0x1c
lea rax, [rsi + r14]
xor r8d, r8d
cmp word [rax + r8*2 - 6], 0
je 0x18001ec33
cmp r8, 0x100
je 0x18001ec16
cmp word [rax + r8*2 - 4], 0
je 0x18001ec1e
cmp word [rax + r8*2 - 2], 0
je 0x18001ec2f
cmp word [rax + r8*2], 0
je 0x18001ee94
add r8, 4
cmp word [rax + r8*2 - 6], 0
jne 0x18001ebe0
jmp 0x18001ec33
mov r8d, 0x101
jmp 0x18001ec40
inc r8
cmp r8, 0x102
jb 0x18001ec40
jmp 0x180020b5d
add r8, 2
cmp r8, 0x102
jae 0x180020b5d
lea rcx, [rsp + 0x280]
call fcn.1800215e0
mov r13, qword [rsp + 0x280]
test r13, r13
je 0x18001ea0b
mov qword [rsp + 0x130], rbp
mov qword [rsp + 0x80], r14
mov rax, qword [rsp + 0x288]
mov qword [rsp + 0x58], rax
mov rbp, qword [rsp + 0x290]
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov r8, r13
mov r9, rbp
call fcn.1800092b0
mov rdi, rax
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov rcx, rdi
shr rcx, 0x39
mov qword [rsp + 0x128], rcx
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm7, xmm0, 0
lea r15, [rax - 0x88]
xor ecx, ecx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x48], rax
and rdi, r14
movdqu xmm8, xmmword [rax + rdi]
movdqa xmm0, xmm7
pcmpeqb xmm0, xmm8
pmovmskb ebx, xmm0
test ebx, ebx
jne 0x18001ed4c
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x18001eeb1
mov rax, qword [rsp + 0x40]
add rdi, rax
add rdi, 0x10
add rax, 0x10
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x48]
jmp 0x18001eced
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
je 0x18001ed07
tzcnt ecx, ebx
add rcx, rdi
and rcx, r14
mov rsi, rcx
neg rsi
shl rcx, 3
mov r12, rsi
shl r12, 7
mov rax, r12
sub rax, rcx
cmp rbp, qword [r15 + rax + 0x10]
jne 0x18001ed40
add rax, r15
mov rcx, qword [rax]
mov rdx, r13
mov r8, rbp
call fcn.180167db0
test eax, eax
jne 0x18001ed40
lea rax, [r12 + rsi*8]
mov r8, qword [rsp + 0x48]
mov rcx, qword [r8 + rax - 0x68]
mov rdx, qword [r8 + rax - 0x58]
mov qword [r8 + rax - 0x60], rcx
mov r15, qword [rsp + 0x50]
mov r9, qword [rsp + 0x80]
mov rcx, qword [r15 + r9 + 0x500]
mov qword [r8 + rax - 0x68], rcx
mov qword [r8 + rax - 0x50], rdx
mov rcx, qword [r15 + r9 + 0x4b8]
mov qword [r8 + rax - 0x58], rcx
mov rcx, qword [r8 + rax - 0x48]
mov qword [r8 + rax - 0x40], rcx
mov rcx, qword [r15 + r9 + 0x4c0]
add rcx, qword [r15 + r9 + 0x4c8]
mov rdx, 0xffffffffffffffff
cmovb rcx, rdx
mov qword [r8 + rax - 0x48], rcx
mov rcx, qword [r8 + rax - 0x38]
mov qword [r8 + rax - 0x30], rcx
mov rcx, qword [r15 + r9 + 0x508]
add rcx, qword [r15 + r9 + 0x510]
cmovb rcx, rdx
mov qword [r8 + rax - 0x38], rcx
mov rcx, qword [r8 + rax - 0x28]
mov qword [r8 + rax - 0x20], rcx
mov rcx, qword [r15 + r9 + 0x4d8]
mov qword [r8 + rax - 0x28], rcx
mov rcx, qword [r8 + rax - 0x18]
mov qword [r8 + rax - 0x10], rcx
mov rcx, qword [r15 + r9 + 0x520]
mov qword [r8 + rax - 0x18], rcx
mov byte [r8 + rax - 2], 1
cmp qword [rsp + 0x58], 0
mov r12, qword [rsp + 0xa0]
je 0x18001ee70
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r13
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x138], 0
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
jne 0x18001ea15
jmp 0x18001ea29
add r8, 3
cmp r8, 0x102
jb 0x18001ec40
jmp 0x180020b5d
xor ecx, ecx
jmp 0x18001eb61
cmp qword [rsp + 0xc0], 0
mov rbx, qword [rsp + 0x48]
je 0x18001f073
mov r15, qword [rsp + 0x50]
mov r11, qword [rsp + 0x80]
mov rax, qword [r15 + r11 + 0x4c0]
add rax, qword [r15 + r11 + 0x4c8]
mov rdx, qword [r15 + r11 + 0x4b8]
mov r8, 0xffffffffffffffff
cmovb rax, r8
mov rcx, qword [r15 + r11 + 0x508]
add rcx, qword [r15 + r11 + 0x510]
cmovb rcx, r8
mov r8, qword [rsp + 0x130]
mov r8, qword [r8]
mov qword [rsp + 0x40], r8
mov r10, qword [r15 + r11 + 0x500]
mov r9, qword [r15 + r11 + 0x4d8]
mov r8, qword [r15 + r11 + 0x520]
mov r11, qword [rsp + 0x120]
and r11, r14
movdqu xmm0, xmmword [rbx + r11]
pmovmskb esi, xmm0
test esi, esi
mov r12, qword [rsp + 0xa0]
jne 0x18001ef78
mov edi, 0x10
nop word [rax + rax]
add r11, rdi
and r11, r14
movdqu xmm0, xmmword [rbx + r11]
pmovmskb esi, xmm0
add rdi, 0x10
test esi, esi
je 0x18001ef60
tzcnt esi, esi
add rsi, r11
and rsi, r14
movzx r11d, byte [rbx + rsi]
test r11b, r11b
js 0x18001ef9d
movdqa xmm0, xmmword [rbx]
pmovmskb esi, xmm0
tzcnt esi, esi
movzx r11d, byte [rbx + rsi]
lea rdi, [rsi - 0x10]
and rdi, r14
mov r14, qword [rsp + 0x128]
mov byte [rbx + rsi], r14b
mov byte [rdi + rbx + 0x10], r14b
and r11b, 1
movzx edi, r11b
sub qword [rsp + 0xc0], rdi
mov rdi, rsi
neg rdi
shl rsi, 3
shl rdi, 7
sub rdi, rsi
mov qword [rbx + rdi - 0x88], r13
mov rsi, qword [rsp + 0x58]
mov qword [rbx + rdi - 0x80], rsi
mov qword [rbx + rdi - 0x78], rbp
mov r11, qword [rsp + 0x40]
mov qword [rbx + rdi - 0x70], r11
mov qword [rbx + rdi - 0x68], r10
mov qword [rbx + rdi - 0x60], r10
mov qword [rbx + rdi - 0x58], rdx
mov qword [rbx + rdi - 0x50], rdx
mov qword [rbx + rdi - 0x48], rax
mov qword [rbx + rdi - 0x40], rax
mov qword [rbx + rdi - 0x38], rcx
mov qword [rbx + rdi - 0x30], rcx
mov qword [rbx + rdi - 0x28], r9
mov qword [rbx + rdi - 0x20], r9
mov qword [rbx + rdi - 0x18], r8
mov qword [rbx + rdi - 0x10], r8
mov dword [rbx + rdi - 8], 0
mov word [rbx + rdi - 4], 0
mov byte [rbx + rdi - 2], 1
inc qword [rsp + 0xc8]
cmp qword [rsp + 0x138], 0
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
jne 0x18001ea15
jmp 0x18001ea29
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0xd0]
call fcn.180171b50
mov rbx, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
jmp 0x18001eec5
mov rsi, rdi
lea rax, [rsp + 0xac]
mov qword [rsp + 0x60], rax
lea rax, [0x180028290]
mov qword [rsp + 0x68], rax
lea rax, [0x1801c4f18]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 1
mov qword [rsp + 0x170], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], 1
lea rcx, [rsp + 0x280]
lea rdx, [rsp + 0x150]
call fcn.180021230
mov rcx, rsi
call fcn.18015dec8
mov rdi, qword [rsp + 0x280]
test rdi, rdi
jne 0x18001e91f
movdqu xmm0, xmmword [rsp + 0x288]
movdqa xmmword [rsp + 0x60], xmm0
cmp qword [rsp + 0xc8], 0
jne 0x18001f194
lea rsi, [rsp + 0x150]
lea rdi, [rsp + 0x60]
mov rbx, qword [sym.imp.kernel32.dll_HeapFree]
nop word cs:[rax + rax]
mov rcx, rsi
mov rdx, rdi
call fcn.180102080
mov r8, qword [rsp + 0x150]
test r8, r8
je 0x18001f311
cmp qword [rsp + 0x158], 0
je 0x18001f160
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call rbx
jmp 0x18001f160
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov qword [rsp + 0x30], rax
lea rbp, [rax - 0x88]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x90], rax
pcmpeqd xmm6, xmm6
nop word cs:[rax + rax]
lea rcx, [rsp + 0x150]
lea rdx, [rsp + 0x60]
call fcn.180102080
mov r15, qword [rsp + 0x150]
test r15, r15
je 0x18001f311
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x40], rax
mov r12, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
mov r8, r15
mov r9, r12
call fcn.1800092b0
mov r13, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm7, xmm0, 0
xor edi, edi
and r13, r14
mov rax, qword [rsp + 0x30]
movdqu xmm8, xmmword [rax + r13]
movdqa xmm0, xmm7
pcmpeqb xmm0, xmm8
pmovmskb esi, xmm0
test esi, esi
jne 0x18001f29c
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x18001f2ee
add r13, rdi
add r13, 0x10
add rdi, 0x10
jmp 0x18001f24b
lea eax, [rsi - 1]
and eax, esi
mov esi, eax
test ax, ax
je 0x18001f26a
tzcnt eax, esi
add rax, r13
and rax, r14
mov rbx, rax
neg rbx
shl rax, 3
shl rbx, 7
sub rbx, rax
cmp qword [rbp + rbx + 0x10], r12
jne 0x18001f290
add rbx, rbp
mov rdx, qword [rbx]
mov rcx, r15
mov r8, r12
call fcn.180167db0
test eax, eax
jne 0x18001f290
lea rcx, [rsp + 0x168]
movzx eax, word [rcx + 4]
mov word [rbx + 0x84], ax
mov eax, dword [rcx]
mov dword [rbx + 0x80], eax
cmp qword [rsp + 0x40], 0
je 0x18001f1e0
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x18001f1e0
mov rcx, qword [rsp + 0x60]
call fcn.18015dec8
mov r12, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc8]
mov rax, rcx
mov qword [rsp + 0x58], rcx
test rcx, rcx
sete byte [rsp + 0x98]
jne 0x18001f36f
mov qword [rsp + 0x60], 1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
cmp qword [rsp + 0x400], 0
jne 0x180020116
jmp 0x180020b5d
movdqa xmm0, xmmword [r12]
lea rbx, [r12 + 0x10]
pmovmskb ebp, xmm0
cmp bp, 0xffff
mov qword [rsp + 0x2d8], r14
mov r14, r12
jne 0x18001f3a9
nop
movdqa xmm0, xmmword [rbx]
pmovmskb ebp, xmm0
add r14, 0xfffffffffffff780
add rbx, 0x10
cmp bp, 0xffff
je 0x18001f390
mov rax, qword [rsp + 0x58]
lea r15, [rax - 1]
mov rax, r15
inc rax
mov rcx, 0xffffffffffffffff
cmovne rcx, rax
cmp rcx, 5
mov r9d, 4
cmovae r9, rcx
xor esi, esi
mov rax, r9
shr rax, 0x3c
sete al
jne 0x180020b5d
lea rdi, [r9*8]
mov sil, al
shl rsi, 3
test rdi, rdi
jne 0x18001f3fc
mov rax, rsi
jmp 0x18001f439
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
mov r13, r9
test rcx, rcx
jne 0x18001f42b
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b8f
mov rcx, rax
mov qword [0x1801fe9b8], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov r9, r13
test rax, rax
je 0x180020b8f
mov ecx, ebp
not ecx
tzcnt r8d, ecx
mov rdx, r8
neg rdx
shl r8, 3
shl rdx, 7
sub rdx, r8
add rdx, r14
add rdx, 0xffffffffffffff90
mov qword [rax], rdx
mov rdx, rax
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], r9
mov qword [rsp + 0x160], 1
test r15, r15
mov qword [rsp + 0x2d0], r12
jne 0x18001f4a7
mov qword [rsp + 0x2c8], r9
mov r12, qword [rsp + 0x58]
mov rbx, rdx
jmp 0x18001ff8f
mov eax, 0xfffffffe
sub eax, ebp
and eax, ecx
mov esi, 1
mov r12, 0xffffffffffffffff
lea rdi, [rsp + 0x150]
jmp 0x18001f515
lea ebp, [rax - 1]
and ebp, eax
dec r15
tzcnt eax, eax
mov r13, rax
neg r13
shl rax, 3
shl r13, 7
sub r13, rax
cmp rsi, qword [rsp + 0x158]
je 0x18001f548
lea rax, [r14 + r13]
add rax, 0xffffffffffffff90
mov qword [rdx + rsi*8], rax
inc rsi
mov qword [rsp + 0x160], rsi
mov eax, ebp
test r15, r15
je 0x18001f567
test ax, ax
jne 0x18001f4d0
nop word [rax + rax]
movdqa xmm0, xmmword [rbx]
pmovmskb eax, xmm0
add r14, 0xfffffffffffff780
add rbx, 0x10
cmp ax, 0xffff
je 0x18001f520
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebp, eax
and ebp, ecx
jmp 0x18001f4d5
mov r8, r15
inc r8
cmove r8, r12
mov rcx, rdi
mov rdx, rsi
call fcn.180167fc0
mov rdx, qword [rsp + 0x150]
jmp 0x18001f4f7
mov rbx, qword [rsp + 0x150]
mov rax, qword [rsp + 0x158]
mov r12, qword [rsp + 0x58]
cmp r12, 0x15
mov qword [rsp + 0x2c8], rax
jae 0x18001f5e8
cmp r12, 1
jbe 0x18001ff8f
lea r9, [rsp + 0x38]
mov r8d, 1
mov rcx, rbx
mov rdx, r12
call fcn.1800095e0
jmp 0x18001ff8f
shr r12, 5
add rdi, 0x10
jmp 0x18001f5cd
add rdi, 0x20
dec r12
je 0x18001e5c6
cmp qword [rdi], 0
je 0x18001f5c0
mov r8, qword [rdi - 8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x18001f5c0
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x18001f614
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b5d
mov rcx, rax
mov qword [0x1801fe9b8], rax
lea r8, [r12*4]
movabs rax, 0x7ffffffffffffff1
add rax, 7
and r8, rax
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x180020b5d
mov r13, rax
movzx eax, byte [0x1801fea30]
mov rcx, qword [0x1801fe9b8]
test rcx, rcx
jne 0x18001f66d
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b5d
mov rcx, rax
mov qword [0x1801fe9b8], rax
mov r8d, pe_nt_image_headers64
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x180020b5d
lea rcx, [rbx - 0x10]
mov qword [rsp + 0x278], rcx
lea rcx, [rbx + 0x10]
mov qword [rsp + 0x2e0], rcx
lea rcx, [rbx - 8]
mov qword [rsp + 0x130], rcx
mov ecx, 0x10
mov qword [rsp + 0x120], rcx
xor r15d, r15d
mov qword [rsp + 0x80], rbx
xor ebp, ebp
jmp 0x18001f6e7
mov r15d, 1
mov rbp, qword [rsp + 0x128]
cmp rbp, r12
jae 0x18001ff6c
mov r8, r12
sub r8, rbp
lea rcx, [rbx + rbp*8]
cmp r8, 2
mov r14, rax
jae 0x18001f710
mov rdx, r12
jmp 0x18001fa20
mov rax, qword [rcx]
mov r9, qword [rcx + 8]
mov edx, dword [r9 + 0x68]
movzx r9d, word [r9 + 0x6c]
mov word [rsp + 0xb4], r9w
shl r9, 0x20
mov dword [rsp + 0xb0], edx
movzx r11d, word [rax + 0x6c]
mov r10d, dword [rax + 0x68]
mov dword [rsp + 0x150], r10d
mov word [rsp + 0x154], r11w
mov r11d, edx
bswap r11d
bswap r10d
cmp r11d, r10d
jne 0x18001f785
movzx eax, word [rsp + 0xb4]
movzx r10d, word [rsp + 0x154]
rol ax, 8
rol r10w, 8
movzx r11d, ax
movzx r10d, r10w
xor eax, eax
cmp r11d, r10d
je 0x18001f792
cmp r11d, r10d
mov eax, 0
sbb eax, eax
or eax, 1
or rdx, r9
test eax, eax
js 0x18001f7b1
cmp r8, 2
jne 0x18001f7cd
lea rdx, [rbp + 2]
mov r8d, 2
mov rax, r14
jmp 0x18001fa20
cmp r8, 2
jne 0x18001f872
lea rdx, [rbp + 2]
mov r8d, 2
mov rax, r14
jmp 0x18001f91e
mov r9d, 2
nop word cs:[rax + rax]
mov r11, qword [rcx + r9*8]
mov r10d, dword [r11 + 0x68]
movzx r11d, word [r11 + 0x6c]
mov word [rsp + 0xb4], r11w
mov dword [rsp + 0xb0], r10d
mov rsi, rdx
shr rsi, 0x20
mov word [rsp + 0x154], si
mov dword [rsp + 0x150], edx
mov esi, r10d
bswap esi
bswap edx
cmp esi, edx
jne 0x18001f843
movzx edx, word [rsp + 0xb4]
movzx edi, word [rsp + 0x154]
rol dx, 8
rol di, 8
movzx esi, dx
movzx edx, di
xor edi, edi
cmp esi, edx
je 0x18001f84f
cmp esi, edx
mov edi, 0
sbb edi, edi
or edi, 1
test edi, edi
js 0x18001f90c
shl r11, 0x20
or r10, r11
inc r9
mov rdx, r10
cmp r8, r9
jne 0x18001f7e0
jmp 0x18001f909
mov r9d, 2
nop dword [rax + rax]
mov r11, qword [rcx + r9*8]
mov r10d, dword [r11 + 0x68]
movzx r11d, word [r11 + 0x6c]
mov word [rsp + 0xb4], r11w
mov dword [rsp + 0xb0], r10d
mov rsi, rdx
shr rsi, 0x20
mov word [rsp + 0x154], si
mov dword [rsp + 0x150], edx
mov esi, r10d
bswap esi
bswap edx
cmp esi, edx
jne 0x18001f8e3
movzx edx, word [rsp + 0xb4]
movzx edi, word [rsp + 0x154]
rol dx, 8
rol di, 8
movzx esi, dx
movzx edx, di
xor edi, edi
cmp esi, edx
je 0x18001f8ef
cmp esi, edx
mov edi, 0
sbb edi, edi
or edi, 1
test edi, edi
jns 0x18001f90c
shl r11, 0x20
or r10, r11
inc r9
mov rdx, r10
cmp r8, r9
jne 0x18001f880
mov r9, r8
lea rdx, [r9 + rbp]
mov r8, r9
test eax, eax
mov rax, r14
jns 0x18001fa20
cmp rdx, rbp
jb 0x180020b5d
cmp rdx, r12
ja 0x180020b5d
cmp r8, 2
jb 0x18001fa20
mov rdi, rdx
mov rax, r8
shr rax, 1
cmp r8, 8
jae 0x18001f950
xor edx, edx
jmp 0x18001f9d6
movabs rdx, 0x7ffffffffffffff1
add rdx, 0xb
and rdx, rax
lea r9, [r8 + rbp]
mov r10, qword [rsp + 0x278]
lea r9, [r10 + r9*8]
mov r10, qword [rsp + 0x2e0]
lea r10, [r10 + rbp*8]
xor r11d, r11d
movdqu xmm0, xmmword [r10 + r11*8 - 0x10]
movdqu xmm1, xmmword [r10 + r11*8]
movdqu xmm2, xmmword [r9 - 0x10]
movdqu xmm3, xmmword [r9]
pshufd xmm3, xmm3, 0x4e
pshufd xmm2, xmm2, 0x4e
movdqu xmmword [r10 + r11*8 - 0x10], xmm3
movdqu xmmword [r10 + r11*8], xmm2
pshufd xmm0, xmm0, 0x4e
movdqu xmmword [r9], xmm0
pshufd xmm0, xmm1, 0x4e
movdqu xmmword [r9 - 0x10], xmm0
add r11, 4
add r9, 0xffffffffffffffe0
cmp rdx, r11
jne 0x18001f980
cmp rax, rdx
je 0x18001fa1a
neg rax
mov r9, rdx
neg r9
shl rdx, 3
lea rdx, [rdx + rbp*8]
add rdx, rbx
lea r10, [r8 + rbp]
mov r11, qword [rsp + 0x130]
lea r10, [r11 + r10*8]
nop word [rax + rax]
mov r11, qword [rdx]
mov rsi, qword [r10 + r9*8]
mov qword [rdx], rsi
mov qword [r10 + r9*8], r11
dec r9
add rdx, 8
cmp rax, r9
jne 0x18001fa00
mov rax, r14
mov rdx, rdi
mov rdi, rdx
sub rdi, rbp
jb 0x180020b5d
cmp rdx, r12
ja 0x180020b5d
jae 0x18001fa90
cmp r8, 0xa
jae 0x18001fa90
lea rdi, [rbp + 0xa]
cmp rdi, r12
cmovae rdi, r12
mov qword [rsp + 0x128], rdi
sub rdi, rbp
jb 0x180020b5d
cmp r8, 2
mov eax, 1
cmovb r8, rax
mov rdx, rdi
lea r9, [rsp + 0x38]
call fcn.1800095e0
mov rax, r14
cmp r15, qword [rsp + 0x120]
je 0x18001faa6
jmp 0x18001fb2b
mov qword [rsp + 0x128], rdx
cmp r15, qword [rsp + 0x120]
jne 0x18001fb2b
movzx eax, byte [0x1801fea30]
mov rax, qword [0x1801fe9b8]
test rax, rax
jne 0x18001facf
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x180020b5d
mov qword [0x1801fe9b8], rax
mov r8, r15
shl r8, 5
mov rcx, rax
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x180020b5d
mov rbx, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x120], rax
mov r8, r15
shl r8, 4
mov rcx, rbx
mov rsi, r14
mov rdx, r14
call fcn.180167370
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, rbx
mov rbx, qword [rsp + 0x80]
mov rcx, r15
shl rcx, 4
mov qword [rax + rcx], rdi
mov qword [rax + rcx + 8], rbp
inc r15
mov rcx, r15
cmp r15, 2
mov qword [rsp + 0xa0], rax
jae 0x18001fbcb
jmp 0x18001f6d6
mov rsi, qword [rsp + 0x30]
sub r8, rdx
mov rcx, rdi
call fcn.180167370
mov rax, qword [rsp + 0x138]
add rax, r12
mov qword [r14], rax
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
lea rdx, [rsi + 0x10]
mov rax, qword [rsp + 0x50]
not rax
add r15, rax
shl r15, 4
mov rcx, rsi
mov r8, r15
call fcn.180167370
mov rcx, qword [rsp + 0x40]
cmp rcx, 1
mov r12, qword [rsp + 0x58]
mov rax, qword [rsp + 0xa0]
jbe 0x18001f6d0
mov r15, rcx
lea r11, [rcx - 1]
mov rcx, r11
shl rcx, 4
mov r10, qword [rax + rcx]
mov rcx, qword [rax + rcx + 8]
add rcx, r10
cmp rcx, r12
je 0x18001fc40
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rax - 0x20]
cmp r8, r10
jbe 0x18001fc40
cmp r15, 2
jbe 0x18001ff56
lea rdi, [r15 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [rax + rcx]
lea r9, [r8 + r10]
cmp rcx, r9
jbe 0x18001fc55
cmp r15, 3
jbe 0x18001ff61
add r8, rcx
cmp qword [rdx + rax - 0x40], r8
jbe 0x18001fc55
jmp 0x18001f6d6
cmp r15, 3
jb 0x18001fc5a
lea rdi, [r15 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [rax + rcx]
cmp rcx, r10
jb 0x18001fc5e
lea rdi, [r15 - 2]
cmp r15, rdi
jbe 0x180020b5d
lea rdx, [rdi + 1]
cmp r15, rdx
jbe 0x180020b5d
mov r14, r15
mov r15, r13
mov rcx, rdi
shl rcx, 4
mov r8, qword [rax + rcx + 8]
shl rdx, 4
mov r9, qword [rax + rdx]
mov rsi, qword [rax + rdx + 8]
add rsi, r9
mov r13, rsi
sub r13, r8
jb 0x180020b5d
cmp rsi, r12
ja 0x180020b5d
mov qword [rsp + 0x138], r9
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x40], r11
lea r9, [rax + rcx]
mov qword [rsp + 0x30], r9
mov r12, qword [rax + rcx]
lea rcx, [rax + rdx]
mov qword [rsp + 0x48], rcx
lea rax, [rax + rdx + 8]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], r8
lea rdi, [rbx + r8*8]
lea rbp, [rdi + r12*8]
mov rbx, r13
sub rbx, r12
cmp rbx, r12
jae 0x18001fe10
lea r8, [rbx*8]
mov r13, r15
mov rcx, r15
mov rdx, rbp
call fcn.180167370
lea r8, [r15 + rbx*8]
test r12, r12
jle 0x18001ff16
test rbx, rbx
mov r15, r14
jle 0x18001ff1e
mov rax, qword [rsp + 0x130]
lea rax, [rax + rsi*8]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
nop dword [rax]
mov rcx, qword [r8 - 8]
mov rdx, qword [rbp - 8]
movzx r9d, word [rcx + 0x6c]
mov ecx, dword [rcx + 0x68]
mov dword [rsp + 0xb0], ecx
mov word [rsp + 0xb4], r9w
movzx r10d, word [rdx + 0x6c]
mov r9d, dword [rdx + 0x68]
mov dword [rsp + 0x150], r9d
mov word [rsp + 0x154], r10w
bswap ecx
bswap r9d
cmp ecx, r9d
jne 0x18001fdba
movzx ecx, word [rsp + 0xb4]
movzx edx, word [rsp + 0x154]
rol cx, 8
rol dx, 8
movzx ecx, cx
movzx r9d, dx
xor edx, edx
cmp ecx, r9d
je 0x18001fdc7
cmp ecx, r9d
mov edx, 0
sbb edx, edx
or edx, 1
xor ecx, ecx
test edx, edx
setns cl
mov r9d, edx
sar r9d, 0x1f
shl rcx, 3
sub r8, rcx
test edx, edx
movsxd rcx, r9d
lea rbp, [rbp + rcx*8]
mov rcx, rbp
cmovns rcx, r8
mov rcx, qword [rcx]
mov qword [rax], rcx
cmp rbp, rdi
jbe 0x18001fe05
add rax, 0xfffffffffffffff8
cmp r8, r13
ja 0x18001fd50
mov rdi, rbp
mov rdx, r13
jmp 0x18001fb65
lea r8, [r12*8]
mov rbx, r15
mov rcx, r15
mov rdx, rdi
call fcn.180167370
lea r8, [r15 + r12*8]
test r12, r12
jle 0x18001ff2e
cmp r13, r12
mov rbx, qword [rsp + 0x80]
jle 0x18001ff3e
lea rax, [rbx + rsi*8]
mov r13, r15
mov rdx, r15
mov r15, r14
mov r14, qword [rsp + 0x48]
nop word cs:[rax + rax]
mov rcx, qword [rbp]
mov r9, qword [rdx]
movzx r10d, word [rcx + 0x6c]
mov r11d, dword [rcx + 0x68]
mov dword [rsp + 0xb0], r11d
mov word [rsp + 0xb4], r10w
movzx r10d, word [r9 + 0x6c]
mov esi, dword [r9 + 0x68]
mov dword [rsp + 0x150], esi
mov word [rsp + 0x154], r10w
bswap r11d
bswap esi
cmp r11d, esi
jne 0x18001fecd
movzx r10d, word [rsp + 0xb4]
movzx esi, word [rsp + 0x154]
rol r10w, 8
rol si, 8
movzx r11d, r10w
movzx esi, si
xor r10d, r10d
cmp r11d, esi
je 0x18001fedd
cmp r11d, esi
mov r10d, 0
sbb r10d, r10d
or r10d, 1
xor r11d, r11d
test r10d, r10d
setns r11b
cmovns rcx, r9
mov qword [rdi], rcx
add rdi, 8
lea rdx, [rdx + r11*8]
cmp rdx, r8
jae 0x18001fb60
shr r10d, 0x1f
lea rbp, [rbp + r10*8]
cmp rbp, rax
jb 0x18001fe60
jmp 0x18001fb60
mov rdi, rbp
mov rdx, r13
jmp 0x18001ff34
mov rdi, rbp
mov rdx, r13
mov rbx, qword [rsp + 0x80]
jmp 0x18001ff47
mov r13, r15
mov rdx, r15
mov rbx, qword [rsp + 0x80]
jmp 0x18001ff44
mov r13, r15
mov rdx, r15
mov r15, r14
mov rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
jmp 0x18001fb65
mov r15d, 2
jmp 0x18001f6d6
mov r15d, 3
jmp 0x18001f6d6
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rax
mov rsi, qword [sym.imp.kernel32.dll_HeapFree]
call rsi
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r13
call rsi
mov qword [rsp + 0x60], 1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
lea r14, [r12*8]
xor r15d, r15d
lea rdi, [rsp + 0x150]
jmp 0x18001ffd0
add r15, 8
cmp r14, r15
mov rbx, rsi
je 0x1800200da
mov rsi, rbx
mov rax, qword [rbx + r15]
mov ecx, dword [rax + 0x68]
mov eax, dword [rax + 0x6c]
mov word [rsp + 0x144], ax
mov dword [rsp + 0x140], ecx
lea rax, [rsp + 0x140]
mov qword [rsp + 0x280], rax
lea rax, [0x1801022b0]
mov qword [rsp + 0x288], rax
lea rax, str._b_f
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 2
mov qword [rsp + 0x170], 0
lea rax, [rsp + 0x280]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], 1
lea rcx, [rsp + 0xb0]
mov rdx, rdi
call fcn.180021230
mov r12, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
sub rax, rbp
cmp rax, r13
jb 0x1800200c3
mov rcx, qword [rsp + 0x60]
add rcx, rbp
mov rdx, r12
mov r8, r13
call fcn.180167370
add rbp, r13
mov qword [rsp + 0x70], rbp
test rbx, rbx
je 0x18001ffc0
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x18001ffc0
lea rcx, [rsp + 0x60]
mov rdx, rbp
mov r8, r13
call fcn.18016b290
mov rbp, qword [rsp + 0x70]
jmp 0x180020088
cmp qword [rsp + 0x2c8], 0
je 0x1800200f7
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r12, qword [rsp + 0x2d0]
mov r14, qword [rsp + 0x2d8]
cmp qword [rsp + 0x400], 0
je 0x180020b5d
mov rax, qword [rsp + 0x3f0]
mov rcx, qword [rax + 0x30]
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0xb0], rax
lea rax, [0x18000bcd0]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0xc0], rax
lea rax, [0x1800254a0]
mov qword [rsp + 0xc8], rax
lea rax, [0x180176b00]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 3
mov qword [rsp + 0x170], 0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], 2
lea rcx, [rsp + 0x280]
lea rdx, [rsp + 0x150]
call fcn.180021230
mov rsi, qword [rsp + 0x280]
mov r13, qword [rsp + 0x288]
mov rdi, qword [rsp + 0x290]
lea rbx, [rsp + 0xd8]
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x108], xmm0
movdqu xmmword [rsp + 0xf8], xmm0
movdqu xmmword [rsp + 0xe8], xmm0
movdqu xmmword [rsp + 0xd8], xmm0
mov byte [rsp + 0x118], 0
movaps xmm0, xmmword [0x180175a50]
movups xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [0x180175a60]
movups xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xd0], 0
cmp rdi, 0x3f
ja 0x180020259
mov rcx, rbx
mov rdx, rsi
mov r8, rdi
call fcn.180167370
jmp 0x1800202a6
mov r15, rdi
and r15, 0xffffffffffffffc0
mov rbp, r13
mov r13, r12
mov r12d, edi
and r12d, 0x3f
add r15, rsi
shr rdi, 6
mov qword [rsp + 0xd0], rdi
lea rcx, [rsp + 0xb0]
mov rdx, rsi
mov r8, rdi
call fcn.1800f1a70
mov rcx, rbx
mov rdx, r15
mov r8, r12
call fcn.180167370
mov rdi, r12
mov r12, r13
mov r13, rbp
mov byte [rsp + 0x118], dil
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x1b0], rax
movzx eax, byte [rsp + 0x118]
mov byte [rsp + 0x1b8], al
mov eax, dword [rsp + 0x119]
mov dword [rsp + 0x1b9], eax
movzx eax, word [rsp + 0x11d]
mov word [rsp + 0x1bd], ax
movzx eax, byte [rsp + 0x11f]
mov byte [rsp + 0x1bf], al
movdqu xmm0, xmmword [rsp + 0xb0]
movups xmm1, xmmword [rsp + 0xc0]
movups xmm2, xmmword [rsp + 0xd0]
movups xmm3, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x170], xmm2
movups xmm2, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x1a0], xmm2
movups xmm2, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x190], xmm2
movaps xmmword [rsp + 0x180], xmm3
movaps xmmword [rsp + 0x160], xmm1
movdqa xmmword [rsp + 0x150], xmm0
lea rdi, [rsp + 0x178]
movzx ebx, byte [rsp + 0x1b8]
mov rax, qword [rsp + 0x170]
shl rax, 9
lea r15, [rbx*8]
or r15, rax
mov byte [rsp + rbx + 0x178], 0x80
mov r8, rbx
xor r8, 0x3f
je 0x1800203a2
lea rcx, [rbx + rdi]
inc rcx
xor edx, edx
call fcn.180167a10
bswap r15
xor ebx, 0x38
cmp ebx, 8
jae 0x18002040c
lea rbx, [rsp + 0x150]
mov r8d, 1
mov rcx, rbx
mov rdx, rdi
call fcn.1800f1a70
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x2a0], xmm0
movdqa xmmword [rsp + 0x290], xmm0
movdqa xmmword [rsp + 0x280], xmm0
mov qword [rsp + 0x2b0], 0
mov qword [rsp + 0x2b8], r15
lea rdx, [rsp + 0x280]
mov r8d, 1
mov rcx, rbx
jmp 0x180020425
mov qword [rsp + 0x1b0], r15
lea rcx, [rsp + 0x150]
mov r8d, 1
mov rdx, rdi
call fcn.1800f1a70
pxor xmm0, xmm0
movdqa xmm1, xmmword [rsp + 0x150]
movdqa xmm2, xmmword [rsp + 0x160]
movdqa xmm3, xmm1
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqa xmmword [rsp + 0x280], xmm1
movdqa xmm1, xmm2
punpckhbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm1
movdqa xmmword [rsp + 0x290], xmm2
mov qword [rsp + 0x150], 1
movdqu xmmword [rsp + 0x158], xmm0
xor ebx, ebx
lea rdi, [rsp + 0x150]
mov r8d, 0x40
mov rcx, rdi
xor edx, edx
call fcn.18016b290
mov edx, 0x110000
lea r15, str.0123456789abcdefuuuuuuuubtnufruuuuuuuuuuuuuuuuuu
jmp 0x1800204ef
mov ebp, 0x110000
mov rcx, rdi
call fcn.18000b990
mov edx, ebp
cmp edx, 0x110000
jne 0x1800204e0
cmp rbx, 0x20
je 0x18002051d
movzx eax, byte [rsp + rbx + 0x280]
inc rbx
mov ecx, eax
and ecx, 0xf
shr rax, 4
movzx edx, byte [rax + r15]
movzx ebp, byte [rcx + r15]
jmp 0x1800204e5
mov rax, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x2e8]
mov qword [rcx + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x150]
movdqu xmmword [rcx], xmm0
test r13, r13
je 0x180020555
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x68], 0
je 0x180020571
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test r14, r14
je 0x1800205b6
cmp byte [rsp + 0x98], 0
je 0x180020a61
lea rax, [r14 + 1]
mov ecx, 0x88
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add r14, rax
cmp r14, 0xffffffffffffffef
je 0x1800205b6
sub r12, rax
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x338]
test rax, rax
je 0x18002084a
mov qword [rsp + 0x40], rax
mov rsi, qword [rsp + 0x348]
test rsi, rsi
je 0x18002080e
mov r14, qword [rsp + 0x330]
movdqa xmm0, xmmword [r14]
pmovmskb r13d, xmm0
not r13d
lea r15, [r14 + 0x10]
mov r12, qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x180020609
test rsi, rsi
je 0x18002080e
test r13w, r13w
je 0x180020620
lea eax, [r13 - 1]
and eax, r13d
jmp 0x18002064c
movdqa xmm0, xmmword [r15]
pmovmskb r13d, xmm0
add r14, 0xffffffffffffea80
add r15, 0x10
cmp r13w, 0xffff
je 0x180020620
mov ecx, 0xfffffffe
sub ecx, r13d
not r13d
mov eax, r13d
and eax, ecx
mov qword [rsp + 0x30], rsi
mov ecx, r13d
tzcnt ecx, ecx
mov r13d, eax
neg rcx
imul rax, rcx, 0x158
lea rbp, [r14 + rax]
cmp qword [r14 + rax - 0xd0], 0
je 0x180020687
mov r8, qword [rbp - 0xd8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
mov rsi, qword [rbp - 0xc0]
mov rdi, qword [rbp - 0xb0]
test rdi, rdi
je 0x1800206d0
lea rbx, [rsi + 8]
jmp 0x1800206a9
add rbx, 0x18
dec rdi
je 0x1800206d0
cmp qword [rbx], 0
je 0x1800206a0
mov r8, qword [rbx - 8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
jmp 0x1800206a0
cmp qword [rbp - 0xb8], 0
je 0x1800206e9
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rsi
call r12
cmp byte [rbp - 0x120], 2
je 0x18002070f
cmp qword [rbp - 0x130], 0
je 0x18002070f
mov r8, qword [rbp - 0x138]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
mov r8, qword [rbp - 0x88]
test r8, r8
je 0x18002072e
cmp qword [rbp - 0x80], 0
je 0x18002072e
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
mov rsi, qword [rbp - 0xa8]
mov rdi, qword [rbp - 0x98]
test rdi, rdi
je 0x180020780
lea rbx, [rsi + 8]
jmp 0x180020759
add rbx, 0x18
dec rdi
je 0x180020780
cmp qword [rbx], 0
je 0x180020750
mov r8, qword [rbx - 8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
jmp 0x180020750
cmp qword [rbp - 0xa0], 0
je 0x180020799
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rsi
call r12
cmp byte [rbp - 0x100], 2
je 0x1800207bf
cmp qword [rbp - 0x110], 0
je 0x1800207bf
mov r8, qword [rbp - 0x118]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
cmp byte [rbp - 0xe0], 2
mov rsi, qword [rsp + 0x30]
je 0x1800207ea
cmp qword [rbp - 0xf0], 0
je 0x1800207ea
mov r8, qword [rbp - 0xf8]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r12
dec rsi
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x180020600
lock dec qword [rcx]
jne 0x180020600
call fcn.18000af60
jmp 0x180020600
mov r8, qword [rsp + 0x40]
lea rax, [r8 + 1]
mov ecx, 0x158
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add r8, rax
cmp r8, 0xffffffffffffffef
je 0x18002084a
mov r8, qword [rsp + 0x330]
sub r8, rax
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x388], 0
je 0x18002086c
mov r8, qword [rsp + 0x380]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r8, qword [rsp + 0x3c8]
test r8, r8
je 0x180020893
cmp qword [rsp + 0x3d0], 0
je 0x180020893
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x3a0], 0
je 0x1800208b5
mov r8, qword [rsp + 0x398]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x3b8], 0
je 0x1800208d7
mov r8, qword [rsp + 0x3b0]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rsi, qword [rsp + 0x3f0]
mov rdi, qword [rsp + 0x400]
test rdi, rdi
je 0x18002096b
lea rbx, [rsi + 0x50]
mov r14, qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x180020909
add rbx, 0x70
dec rdi
je 0x18002096b
cmp qword [rbx - 0x48], 0
je 0x180020920
mov r8, qword [rbx - 0x50]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r14
mov r8, qword [rbx - 8]
test r8, r8
je 0x18002093b
cmp qword [rbx], 0
je 0x18002093b
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r14
cmp qword [rbx - 0x30], 0
je 0x180020952
mov r8, qword [rbx - 0x38]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r14
cmp qword [rbx - 0x18], 0
je 0x180020900
mov r8, qword [rbx - 0x20]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r14
jmp 0x180020900
cmp qword [rsp + 0x3f8], 0
je 0x180020988
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x2f0], 0
je 0x180020b30
lea rcx, [rsp + 0x2f0]
call fcn.1801015b0
mov rdi, qword [rsp + 0x2f8]
test rdi, rdi
je 0x180020b30
mov rbx, qword [rsp + 0x308]
test rbx, rbx
je 0x180020aff
mov rsi, qword [rsp + 0x2f0]
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
not eax
lea r14, [rsi + 0x10]
mov r15, qword [sym.imp.kernel32.dll_HeapFree]
mov r12, rsi
jmp 0x1800209fb
mov eax, ebp
test rbx, rbx
je 0x180020b07
test ax, ax
je 0x180020a10
lea ebp, [rax - 1]
and ebp, eax
jmp 0x180020a37
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
add r12, 0xfffffffffffffe00
add r14, 0x10
cmp ax, 0xffff
je 0x180020a10
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebp, eax
and ebp, ecx
tzcnt ecx, eax
shl rcx, 5
mov rax, r12
sub rax, rcx
dec rbx
cmp qword [rax - 0x18], 0
je 0x1800209f0
mov r8, qword [rax - 0x20]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call r15
jmp 0x1800209f0
movdqa xmm0, xmmword [r12]
pmovmskb eax, xmm0
not eax
lea rsi, [r12 + 0x10]
mov rdi, qword [sym.imp.kernel32.dll_HeapFree]
mov rbx, r12
jmp 0x180020a8e
mov eax, ebp
cmp qword [rsp + 0x58], 0
je 0x180020584
test ax, ax
je 0x180020aa0
lea ebp, [rax - 1]
and ebp, eax
jmp 0x180020ac6
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
add rbx, 0xfffffffffffff780
add rsi, 0x10
cmp ax, 0xffff
je 0x180020aa0
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebp, eax
and ebp, ecx
tzcnt ecx, eax
mov rax, rcx
neg rax
shl rcx, 3
shl rax, 7
sub rax, rcx
dec qword [rsp + 0x58]
cmp qword [rbx + rax - 0x80], 0
je 0x180020a80
add rax, rbx
mov r8, qword [rax - 0x88]
mov rcx, qword [0x1801fe9b8]
xor edx, edx
call rdi
jmp 0x180020a80
mov rsi, qword [rsp + 0x2f0]
mov rax, rdi
shl rax, 5
add rdi, rax
cmp rdi, 0xffffffffffffffcf
je 0x180020b30
sub rsi, rax
add rsi, 0xffffffffffffffe0
mov rcx, qword [0x1801fe9b8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
movaps xmm6, xmmword [rsp + 0x410]
movaps xmm7, xmmword [rsp + 0x420]
movaps xmm8, xmmword [rsp + 0x430]
add rsp, 0x448
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
mov ecx, 2
mov edx, 0x14
call fcn.180169390
ud2
mov ecx, 0x56410
call fcn.180048210
ud2
mov ecx, 1
mov edx, 9
call fcn.180169390
ud2
mov rcx, rsi
mov rdx, rdi
call fcn.180169390
ud2
mov ecx, 1
mov edx, 0x32
call fcn.180169390
ud2