Function at 0x140020ab0
Capabilities:
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x8b8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x820], xmm8
movdqa xmmword [rbp + 0x810], xmm7
movaps xmmword [rbp + 0x800], xmm6
and rsp, 0xffffffffffffff80
mov r15, rdx
mov qword [rsp + 0x120], rcx
mov rax, qword [rdx + 0x10]
test rax, rax
jne 0x140020d46
lea rdx, [0x141d27dd0]
lea rcx, [rsp + 0x200]
call fcn.140024bb0
mov rax, qword [rsp + 0x200]
movabs rdi, 0x8000000000000000
movabs rsi, 0x8000000000000001
cmp rax, rdi
je 0x140020c0f
cmp rax, rsi
jne 0x140020b96
mov rcx, qword [rsp + 0x208]
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x140020c0f
mov r8, qword [rsp + 0x210]
mov r9, qword [rsp + 0x218]
test r9, r9
je 0x140020bfc
cmp r9, 1
jne 0x140020ba5
movzx eax, byte [r8]
cmp eax, 0x2b
je 0x140020bfc
mov r9d, 1
mov r10, r8
cmp eax, 0x2d
je 0x140020bfc
jmp 0x140022adf
test rax, rax
je 0x140020c0f
mov r8, qword [rsp + 0x208]
jmp 0x140020c01
cmp byte [r8], 0x2b
jne 0x140022ad2
lea r10, [r8 + 1]
lea rax, [r9 - 1]
cmp r9, 0x12
mov r9, rax
jb 0x140022adf
xor r11d, r11d
mov ebx, 0xa
xor eax, eax
nop
cmp r9, r11
je 0x140022b16
mul rbx
seto r14b
movzx edx, byte [r10 + r11]
add edx, 0xffffffd0
cmp edx, 9
ja 0x140020bfc
test r14b, r14b
jne 0x140020bfc
mov edx, edx
inc r11
add rax, rdx
jae 0x140020bd0
test rcx, rcx
je 0x140020c0f
mov rcx, qword [0x141d2e0f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
lea rdx, [0x141d27de1]
lea rcx, [rsp + 0x200]
call fcn.140024bb0
mov rax, qword [rsp + 0x200]
cmp rax, rdi
je 0x140020d0d
cmp rax, rsi
jne 0x140020c93
mov rcx, qword [rsp + 0x208]
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x140020d0d
mov r8, qword [rsp + 0x210]
mov r9, qword [rsp + 0x218]
test r9, r9
je 0x140020cfa
cmp r9, 1
jne 0x140020ca2
movzx eax, byte [r8]
cmp eax, 0x2b
je 0x140020cfa
mov r9d, 1
mov r10, r8
cmp eax, 0x2d
je 0x140020cfa
jmp 0x140022bd9
test rax, rax
je 0x140020d0d
mov r8, qword [rsp + 0x208]
jmp 0x140020cff
cmp byte [r8], 0x2b
jne 0x140022bcc
lea r10, [r8 + 1]
lea rax, [r9 - 1]
cmp r9, 0x12
mov r9, rax
jb 0x140022bd9
xor r11d, r11d
mov esi, 0xa
xor eax, eax
nop dword [rax + rax]
cmp r9, r11
je 0x140022c06
mul rsi
seto bl
movzx edx, byte [r10 + r11]
add edx, 0xffffffd0
cmp edx, 9
ja 0x140020cfa
test bl, bl
jne 0x140020cfa
mov edx, edx
inc r11
add rax, rdx
jae 0x140020cd0
test rcx, rcx
je 0x140020d0d
mov rcx, qword [0x141d2e0f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x220], xmm0
movdqa xmmword [rsp + 0x210], xmm0
movdqa xmmword [rsp + 0x200], xmm0
lea rcx, [rsp + 0x200]
call sub.KERNEL32.dll_GetSystemInfo
mov eax, dword [rsp + 0x220]
cmp eax, 1
adc eax, 0
cmp rax, 0xffff
mov esi, 0xffff
mov qword [rsp + 0xa0], rax
cmovb rsi, rax
mov qword [rsp + 0x70], r15
movzx eax, byte [r15 + 0x59]
mov byte [rsp + 0x60], al
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x208], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x220], 8
mov qword [rsp + 0x228], 0
lea rdi, [rsp + 0x218]
lea rcx, [rsp + 0x200]
xor edx, edx
mov r8, rsi
call fcn.1400234b0
mov rcx, rdi
xor edx, edx
mov r8, rsi
call fcn.140023410
mov r12, qword [rsp + 0x228]
mov rax, qword [rsp + 0x208]
mov r15, qword [rsp + 0x210]
mov qword [rsp + 0x88], r15
shl r15, 5
mov qword [rsp + 0xb0], rax
add r15, rax
mov rax, r15
neg rax
mov qword [rsp + 0x78], rax
mov r13, r12
shl r13, 4
add r13, qword [rsp + 0x220]
mov r14d, 8
mov qword [rsp + 0x68], rsi
nop word cs:[rax + rax]
mov ecx, 0x40
call fcn.140024970
mov rdi, rax
movzx eax, byte [0x141d2e108]
mov edx, 0x10
xor ecx, ecx
call fcn.140031680
mov rbx, rax
cmp byte [rsp + 0x60], 0
je 0x140020ea0
test rbx, rbx
je 0x140022c53
mov qword [rbx], rdi
mov qword [rbx + 8], 0x40
movzx eax, byte [0x141d2e108]
mov edx, 0x200
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rcx, rax
and rcx, 0xffffffffffffff80
sub rcx, 0xffffffffffffff80
xor edx, edx
jmp 0x140020edd
test rbx, rbx
je 0x140022c53
mov qword [rbx], rdi
mov qword [rbx + 8], 0x40
movzx eax, byte [0x141d2e108]
mov edx, 0x200
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rcx, rax
and rcx, 0xffffffffffffff80
sub rcx, 0xffffffffffffff80
mov dl, 1
mov qword [rcx - 8], rax
mov qword [rcx], 1
mov qword [rcx + 8], 1
mov qword [rcx + 0x80], rbx
movaps xmmword [rcx + 0x100], xmm6
lock inc qword [rcx]
jle 0x140022c53
mov qword [r15 + r14*2 - 0x10], rcx
mov qword [r15 + r14*2 - 8], rdi
mov qword [r15 + r14*2], 0x40
mov byte [r15 + r14*2 + 8], dl
inc qword [rsp + 0x88]
mov qword [r13 + r14 - 8], rcx
mov byte [r13 + r14], dl
inc r12
add qword [rsp + 0x78], 0xffffffffffffffe0
add r14, 0x10
dec rsi
jne 0x140020e30
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x208], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x220], 8
mov qword [rsp + 0x228], 0
lea rbx, [rsp + 0x218]
lea rcx, [rsp + 0x200]
xor edx, edx
mov r15, qword [rsp + 0x68]
mov r8, r15
call fcn.1400234b0
mov rcx, rbx
xor edx, edx
mov r8, r15
call fcn.140023410
mov rsi, qword [rsp + 0x210]
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x60], rax
mov rcx, rax
shl rcx, 4
mov rax, rcx
neg rax
mov qword [rsp + 0x128], rax
add rcx, qword [rsp + 0x220]
mov qword [rsp + 0xa8], rcx
mov r13, rsi
shl r13, 5
add r13, qword [rsp + 0x208]
mov edi, 8
nop dword [rax]
mov ecx, 0x40
call fcn.140024970
mov rbx, rax
movzx eax, byte [0x141d2e108]
mov edx, 0x10
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov r14, rax
mov qword [rax], rbx
mov qword [rax + 8], 0x40
movzx eax, byte [0x141d2e108]
mov edx, 0x200
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rcx, rax
and rax, 0xffffffffffffff80
mov qword [rax + 0x78], rcx
mov qword [rax + 0x80], 1
mov qword [rax + 0x88], 1
mov qword [rax + 0x100], r14
movaps xmmword [rax + 0x180], xmm6
lock inc qword [rax + 0x80]
jle 0x140022c53
sub rax, 0xffffffffffffff80
mov qword [r13 + rdi*2 - 0x10], rax
mov qword [r13 + rdi*2 - 8], rbx
mov qword [r13 + rdi*2], 0x40
mov byte [r13 + rdi*2 + 8], 0
inc rsi
mov rcx, qword [rsp + 0xa8]
mov qword [rcx + rdi - 8], rax
mov byte [rcx + rdi], 0
inc qword [rsp + 0x60]
add qword [rsp + 0x128], 0xfffffffffffffff0
add rdi, 0x10
dec r15
jne 0x140021030
mov qword [rsp + 0x210], rsi
mov rdi, qword [rsp + 0x218]
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xd0], rsi
movdqu xmm0, xmmword [rsp + 0x200]
movdqa xmmword [rsp + 0xc0], xmm0
test r12, r12
je 0x140022576
movabs rax, 0x333333333333333
cmp r12, rax
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
ja 0x140022c53
lea rax, [r12*8]
lea rdx, [rax + rax*4]
movzx eax, byte [0x141d2e108]
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rcx, r12
shl rcx, 4
mov r8, qword [rsp + 0x98]
add rcx, r8
mov qword [rsp + 0x200], r12
mov qword [rsp + 0x208], rax
mov qword [rsp + 0x210], 0
add rax, 0x20
xor edx, edx
pxor xmm0, xmm0
mov r11, r8
nop word [rax + rax]
mov r9, qword [r11]
movzx r10d, byte [r11 + 8]
movdqu xmmword [rax - 0x20], xmm0
mov qword [rax - 0x10], 0
mov qword [rax - 8], r9
mov byte [rax], r10b
inc rdx
add rax, 0x28
add r11, 0x10
cmp r11, rcx
jne 0x1400211d0
mov qword [rsp + 0x210], rdx
cmp qword [rsp + 0xb8], 0
mov rsi, qword [rsp + 0x68]
je 0x140021222
mov rcx, qword [0x141d2e0f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x110], rax
movdqu xmm0, xmmword [rsp + 0x200]
movdqa xmmword [rsp + 0x100], xmm0
mov rdx, rsi
shl rdx, 7
movzx eax, byte [0x141d2e108]
sub rdx, 0xffffffffffffff80
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov r8d, eax
and r8d, 0x7f
mov rcx, rax
and rcx, 0xffffffffffffff80
mov qword [rcx + 0x78], rax
sub rcx, 0xffffffffffffff80
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x208], rcx
mov qword [rsp + 0x210], 0
mov ecx, esi
and ecx, 3
cmp qword [rsp + 0xa0], 4
jae 0x1400212ac
xor edx, edx
jmp 0x140021305
and esi, 0xfffc
mov r9, rax
sub r9, r8
add r9, 0x200
xor edx, edx
nop word cs:[rax + rax]
mov qword [r9 - 0x180], 0
mov qword [r9 - 0x100], 0
mov qword [r9 - 0x80], 0
add rdx, 4
mov qword [r9], 0
add r9, 0x200
cmp rsi, rdx
jne 0x1400212d0
test rcx, rcx
je 0x140021346
mov r9, rdx
shl r9, 7
sub r9, r8
add rax, r9
add rax, 0x80
neg rcx
xor r8d, r8d
nop word cs:[rax + rax]
mov qword [rax], 0
sub rax, 0xffffffffffffff80
dec r8
cmp rcx, r8
jne 0x140021330
sub rdx, r8
mov qword [rsp + 0x130], rdi
movdqu xmm0, xmmword [rsp + 0x200]
movdqa xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], rdx
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x200], xmm0
mov qword [rsp + 0x210], 0
movdqu xmmword [rsp + 0x218], xmm0
mov qword [rsp + 0x228], 0
movdqa xmmword [rsp + 0x230], xmm0
mov qword [rsp + 0x240], 0
movdqu xmmword [rsp + 0x248], xmm0
mov qword [rsp + 0x258], 0
movdqa xmmword [rsp + 0x260], xmm0
mov qword [rsp + 0x270], 0
movdqu xmmword [rsp + 0x278], xmm0
mov qword [rsp + 0x288], 0
movdqa xmmword [rsp + 0x290], xmm0
mov qword [rsp + 0x2a0], 0
movdqu xmmword [rsp + 0x2a8], xmm0
mov qword [rsp + 0x2b8], 0
movdqa xmmword [rsp + 0x2c0], xmm0
mov qword [rsp + 0x2d0], 0
movdqu xmmword [rsp + 0x2d8], xmm0
mov qword [rsp + 0x2e8], 0
movdqa xmmword [rsp + 0x2f0], xmm0
mov qword [rsp + 0x300], 0
movdqu xmmword [rsp + 0x308], xmm0
mov qword [rsp + 0x318], 0
movdqa xmmword [rsp + 0x320], xmm0
mov qword [rsp + 0x330], 0
movdqu xmmword [rsp + 0x338], xmm0
mov qword [rsp + 0x348], 0
movdqa xmmword [rsp + 0x350], xmm0
mov qword [rsp + 0x360], 0
movdqu xmmword [rsp + 0x368], xmm0
mov qword [rsp + 0x378], 0
movdqa xmmword [rsp + 0x380], xmm0
mov qword [rsp + 0x390], 0
movdqu xmmword [rsp + 0x398], xmm0
mov qword [rsp + 0x3a8], 0
movdqa xmmword [rsp + 0x3b0], xmm0
mov qword [rsp + 0x3c0], 0
movdqu xmmword [rsp + 0x3c8], xmm0
mov qword [rsp + 0x3d8], 0
movdqa xmmword [rsp + 0x3e0], xmm0
mov qword [rsp + 0x3f0], 0
movdqu xmmword [rsp + 0x3f8], xmm0
mov qword [rsp + 0x408], 0
movdqa xmmword [rsp + 0x410], xmm0
mov qword [rsp + 0x420], 0
movdqu xmmword [rsp + 0x428], xmm0
mov qword [rsp + 0x438], 0
movdqa xmmword [rsp + 0x440], xmm0
mov qword [rsp + 0x450], 0
movdqu xmmword [rsp + 0x458], xmm0
mov qword [rsp + 0x468], 0
movdqa xmmword [rsp + 0x470], xmm0
mov qword [rsp + 0x480], 0
movdqu xmmword [rsp + 0x488], xmm0
mov qword [rsp + 0x498], 0
movdqa xmmword [rsp + 0x4a0], xmm0
mov qword [rsp + 0x4b0], 0
movdqu xmmword [rsp + 0x4b8], xmm0
mov qword [rsp + 0x4c8], 0
movdqa xmmword [rsp + 0x4d0], xmm0
mov qword [rsp + 0x4e0], 0
movdqu xmmword [rsp + 0x4e8], xmm0
mov qword [rsp + 0x4f8], 0
movdqa xmmword [rsp + 0x500], xmm0
mov qword [rsp + 0x510], 0
movdqu xmmword [rsp + 0x518], xmm0
mov qword [rsp + 0x528], 0
movdqa xmmword [rsp + 0x530], xmm0
mov qword [rsp + 0x540], 0
movdqu xmmword [rsp + 0x548], xmm0
mov qword [rsp + 0x558], 0
movdqa xmmword [rsp + 0x560], xmm0
mov qword [rsp + 0x570], 0
movdqu xmmword [rsp + 0x578], xmm0
mov qword [rsp + 0x588], 0
movdqa xmmword [rsp + 0x590], xmm0
mov qword [rsp + 0x5a0], 0
movdqu xmmword [rsp + 0x5a8], xmm0
mov qword [rsp + 0x5b8], 0
movdqa xmmword [rsp + 0x5c0], xmm0
mov qword [rsp + 0x5d0], 0
movdqu xmmword [rsp + 0x5d8], xmm0
mov qword [rsp + 0x5e8], 0
movdqa xmmword [rsp + 0x5f0], xmm0
mov qword [rsp + 0x600], 0
movdqu xmmword [rsp + 0x608], xmm0
mov qword [rsp + 0x618], 0
movdqa xmmword [rsp + 0x620], xmm0
mov qword [rsp + 0x630], 0
movdqu xmmword [rsp + 0x638], xmm0
mov qword [rsp + 0x648], 0
movdqa xmmword [rsp + 0x650], xmm0
mov qword [rsp + 0x660], 0
movdqu xmmword [rsp + 0x668], xmm0
mov qword [rsp + 0x678], 0
movdqa xmmword [rsp + 0x680], xmm0
mov qword [rsp + 0x690], 0
movdqu xmmword [rsp + 0x698], xmm0
mov qword [rsp + 0x6a8], 0
movdqa xmmword [rsp + 0x6b0], xmm0
mov qword [rsp + 0x6c0], 0
movdqu xmmword [rsp + 0x6c8], xmm0
mov qword [rsp + 0x6d8], 0
movdqa xmmword [rsp + 0x6e0], xmm0
mov qword [rsp + 0x6f0], 0
movdqu xmmword [rsp + 0x6f8], xmm0
mov qword [rsp + 0x708], 0
movdqa xmmword [rsp + 0x710], xmm0
mov qword [rsp + 0x720], 0
movdqu xmmword [rsp + 0x728], xmm0
mov qword [rsp + 0x738], 0
movdqa xmmword [rsp + 0x740], xmm0
mov qword [rsp + 0x750], 0
movdqu xmmword [rsp + 0x758], xmm0
mov qword [rsp + 0x768], 0
movdqa xmmword [rsp + 0x770], xmm0
mov qword [rsp + 0x780], 0
movdqu xmmword [rsp + 0x788], xmm0
mov qword [rsp + 0x798], 0
movdqa xmmword [rsp + 0x7a0], xmm0
mov qword [rsp + 0x7b0], 0
movdqu xmmword [rsp + 0x7b8], xmm0
mov qword [rsp + 0x7c8], 0
movdqa xmmword [rsp + 0x7d0], xmm0
mov qword [rsp + 0x7e0], 0
movzx eax, byte [0x141d2e108]
mov edx, 0x5f0
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rbx, rax
mov qword [rax], 0
mov rcx, rax
add rcx, 8
lea rdx, [rsp + 0x200]
mov r8d, 0x5e8
call sub.msvcrt.dll_memcpy
movdqa xmm0, xmmword [rsp + 0xc0]
movdqu xmmword [rsp + 0x868], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x878], rax
movups xmm6, xmmword [r14 + 0x18]
movdqu xmm7, xmmword [r14 + 0x38]
movups xmm8, xmmword [r14 + 0x48]
mov qword [r14 + 0x18], 0
mov qword [r14 + 0x38], 0
mov qword [r14 + 0x48], 0
movzx eax, byte [0x141d2e108]
mov edx, 0x300
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rdx, rax
and rax, 0xffffffffffffff80
lea rcx, [rax + 0x80]
mov qword [rsp + 0x68], rcx
mov qword [rax + 0x78], rdx
mov qword [rax + 0x80], 1
mov qword [rax + 0x88], 1
mov qword [rax + 0x100], 0
mov qword [rax + 0x108], rbx
mov qword [rax + 0x180], 0
mov qword [rax + 0x188], rbx
mov byte [rax + 0x200], 0
movups xmm0, xmmword [rsp + 0x861]
movdqu xmm1, xmmword [rsp + 0x870]
movups xmmword [rax + 0x201], xmm0
movdqu xmmword [rax + 0x210], xmm1
movaps xmmword [rax + 0x220], xmm6
movdqa xmmword [rax + 0x230], xmm7
movaps xmmword [rax + 0x240], xmm8
mov qword [rax + 0x250], 1
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [rax + 0x258], xmm0
mov rcx, qword [rsp + 0xf0]
mov qword [rax + 0x268], rcx
mov qword [rax + 0x270], 0
mov rcx, qword [rsp + 0x110]
mov qword [rax + 0x288], rcx
movdqa xmm0, xmmword [rsp + 0x100]
movdqu xmmword [rax + 0x278], xmm0
mov rdx, qword [rsp + 0x88]
mov rcx, rdx
shl rcx, 5
mov rbx, qword [rsp + 0xb0]
add rcx, rbx
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
shl rcx, 4
mov r12, qword [rsp + 0x80]
add rcx, r12
mov qword [rsp + 0x60], rcx
test rdx, rdx
je 0x1400225f4
add rax, 0x250
mov qword [rsp + 0x148], rax
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x14005bd70]
xor eax, eax
mov qword [rsp + 0xa8], rax
mov r12, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xb0]
jmp 0x140021abb
mov r15, qword [rsp + 0x78]
inc qword [rsp + 0xa8]
cmp rbx, qword [rsp + 0xa0]
je 0x14002262c
mov rax, rbx
add rbx, 0x20
movzx esi, byte [rax + 0x18]
cmp sil, 2
je 0x1400225ef
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x210], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x200], xmm0
mov byte [rsp + 0x218], sil
mov ecx, dword [rax + 0x19]
mov edx, dword [rax + 0x1c]
lea r8, [rsp + 0x219]
mov dword [r8 + 3], edx
mov dword [r8], ecx
cmp r12, qword [rsp + 0x60]
je 0x1400225cf
lea rcx, [rax + 0x19]
mov rdi, qword [r12]
movzx r14d, byte [r12 + 8]
mov rdx, qword [rax + 0x10]
mov qword [rsp + 0x1f0], rdx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x1e0], xmm0
mov eax, dword [rcx]
mov ecx, dword [rcx + 3]
mov dword [rsp + 0xd8], eax
mov dword [rsp + 0xdb], ecx
mov r13, qword [rsp + 0x70]
mov rdx, qword [r13 + 0x28]
movabs rax, 0x8000000000000000
mov qword [rsp + 0x88], rax
test rdx, rdx
je 0x140021ba2
mov rax, qword [r13 + 0x30]
lea rcx, [rsp + 0x200]
mov r8, qword [rsp + 0xa8]
call qword [rax + 0x20]
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x219]
movups xmm0, xmmword [rax - 0x11]
movaps xmmword [rsp + 0xe0], xmm0
mov r9, qword [r13]
mov r10, qword [r13 + 8]
mov rdx, qword [rsp + 0x68]
lock inc qword [rdx]
jle 0x140022c53
add r12, 0x10
mov r13, qword [rsp + 0x88]
mov qword [rsp + 0x188], r13
movaps xmm0, xmmword [rsp + 0xe0]
lea r8, [rsp + 0x190]
movups xmmword [r8], xmm0
mov qword [rsp + 0x178], r9
mov qword [rsp + 0x180], r10
mov rax, qword [rsp + 0x1f0]
lea rcx, [rsp + 0x1b0]
mov qword [rcx + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x1e0]
movdqu xmmword [rcx], xmm0
mov byte [rsp + 0x1c8], sil
mov eax, dword [rsp + 0xd8]
mov ecx, dword [rsp + 0xdb]
mov dword [r8 + 0x3c], ecx
mov dword [r8 + 0x39], eax
mov qword [rsp + 0x1a0], rdi
mov byte [rsp + 0x1a8], r14b
mov qword [rsp + 0x1d0], rdx
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x1d8], rax
test rax, rax
jne 0x140021d60
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x58], 0
je 0x140021d60
xor ecx, ecx
call fcn.140020510
test rax, rax
je 0x140022c53
cmp qword [rax], 0
jne 0x1400227e9
lea rdi, [rsp + 0x200]
mov rcx, rdi
lea rdx, [rsp + 0x178]
call fcn.14001f5e0
movzx eax, byte [0x141d2e108]
mov edx, 0x200
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rsi, rax
and rsi, 0xffffffffffffff80
mov qword [rsi + 0x78], rax
sub rsi, 0xffffffffffffff80
mov r8d, 0x180
mov rcx, rsi
mov rdx, rdi
call sub.msvcrt.dll_memcpy
xor ecx, ecx
call fcn.140020510
test rax, rax
mov rcx, qword [rsp + 0x68]
je 0x140022c53
cmp qword [rax], 0
jne 0x140022c53
mov qword [rax], rsi
cmp qword [rcx + 0x208], 0
je 0x140022c53
mov r15, qword [rcx + 0x200]
lea rsi, [r15 + 4]
xor eax, eax
mov cl, 1
lock cmpxchg byte [r15 + 4], cl
jne 0x14002206c
mov byte [r15 + 5], 1
lock inc dword [r15]
mov rcx, r15
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressAll
xor eax, eax
xchg byte [r15 + 4], al
cmp al, 2
jne 0x140021aa0
mov rcx, rsi
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
jmp 0x140021aa0
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x1a0]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movdqa xmmword [rsp + 0x200], xmm0
movdqa xmmword [rsp + 0x210], xmm1
movaps xmmword [rsp + 0x220], xmm2
movaps xmmword [rsp + 0x230], xmm3
movabs rax, 0x8000000000000000
mov r15, rax
cmp r13, rax
mov rdi, qword [rsp + 0x150]
mov r14, qword [rsp + 0x158]
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0x140], r10
je 0x140021e50
mov rsi, qword [rsp + 0x98]
test rsi, rsi
je 0x140021e22
js 0x140022c53
movzx eax, byte [0x141d2e108]
xor ecx, ecx
mov rdx, rsi
call fcn.140031680
test rax, rax
je 0x140022c53
mov rdi, rax
mov r15, rsi
jmp 0x140021e2a
mov edi, 1
xor r15d, r15d
mov rcx, rdi
mov rdx, qword [rsp + 0x138]
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov r14, rsi
mov r9, qword [rsp + 0xb8]
mov r10, qword [rsp + 0x140]
mov qword [rsp + 0x90], r10
test r9, r9
je 0x140021ece
movabs rax, 0x8000000000000000
cmp r15, rax
jne 0x140021efc
movzx eax, byte [0x141d2e108]
mov edx, 0x38
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov r15, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], 2
mov rax, qword [0x141d2e070]
nop dword [rax]
cmp rax, 0xffffffffffffffff
je 0x140022c53
lea rcx, [rax + 1]
lock cmpxchg qword [0x141d2e070], rcx
jne 0x140021eb0
jmp 0x140022309
mov rax, qword [0x141d2e068]
test rax, rax
je 0x140021f5f
dec rax
mov qword [rsp + 0x90], rax
movabs rax, 0x8000000000000000
cmp r15, rax
je 0x140021e70
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], r14
cmp r14, 0xf
ja 0x140021f47
test r14, r14
je 0x140021fcb
xor eax, eax
nop word cs:[rax + rax]
cmp byte [rdi + rax], 0
je 0x140022c53
inc rax
cmp r14, rax
jne 0x140021f30
jmp 0x140022192
lea rax, [rdi + 7]
and rax, 0xfffffffffffffff8
sub rax, rdi
jne 0x140021f9b
lea rcx, [r14 - 0x10]
xor eax, eax
jmp 0x140022140
mov r8d, 0xe
lea rcx, [rsp + 0xe0]
lea rdx, [0x141d280f8]
call fcn.14002ecd0
mov rsi, qword [rsp + 0xe0]
movabs rax, 0x8000000000000000
cmp rsi, rax
jne 0x140021fea
mov r9d, 0x200000
jmp 0x140022041
cmp rax, r14
cmovae rax, r14
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [rdi + rcx], 0
je 0x140022c53
inc rcx
cmp rax, rcx
jne 0x140021fb0
lea rcx, [r14 - 0x10]
jmp 0x140022172
mov rax, rdi
cmp r15, r14
jne 0x140022217
lea r15, [r14 + 1]
mov rdx, r15
not rdx
shr rdx, 0x3f
jmp 0x1400221ce
mov rdx, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xf0]
lea rcx, [rsp + 0x100]
mov qword [rsp + 0x90], rdx
call fcn.140011390
cmp qword [rsp + 0x100], 0
je 0x140022079
mov r9d, 0x200000
test rsi, rsi
je 0x140022041
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, qword [rsp + 0x90]
mov rsi, r9
call sub.KERNEL32.dll_HeapFree
mov r9, rsi
mov qword [rsp + 0x90], r9
lea rax, [r9 + 1]
mov qword [0x141d2e068], rax
movabs rax, 0x8000000000000000
cmp r15, rax
je 0x140021e70
jmp 0x140021efc
mov rcx, rsi
call fcn.14002b010
jmp 0x140021d29
mov r8, qword [rsp + 0x110]
test r8, r8
je 0x14002201a
mov rcx, qword [rsp + 0x108]
cmp r8, 1
jne 0x1400220b1
movzx eax, byte [rcx]
cmp eax, 0x2b
je 0x14002201a
mov r8d, 1
cmp eax, 0x2d
je 0x14002201a
jmp 0x14002210b
cmp byte [rcx], 0x2b
jne 0x140022105
inc rcx
lea rax, [r8 - 1]
cmp r8, 0x12
mov r8, rax
jb 0x14002210b
xor r9d, r9d
xor eax, eax
cmp r8, r9
je 0x140022137
mov edx, 0xa
mul rdx
seto r10b
movzx edx, byte [rcx + r9]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14002201a
test r10b, r10b
jne 0x14002201a
mov edx, edx
inc r9
add rax, rdx
jae 0x1400220cb
jmp 0x14002201a
cmp r8, 0x11
jae 0x1400220c6
xor eax, eax
xor r9d, r9d
movzx edx, byte [rcx + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14002201a
lea r9, [r9 + r9*4]
mov edx, edx
lea r9, [rdx + r9*2]
inc rax
cmp r8, rax
jne 0x140022110
jmp 0x140022020
mov r9, rax
jmp 0x140022020
movdqu xmm0, xmmword [rdi + rax]
movdqa xmm1, xmm0
paddq xmm1, xmm7
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdx, xmm1
movabs r8, 0x8080808080808080
test rdx, r8
jne 0x140022177
add rax, 0x10
cmp rax, rcx
jbe 0x140022140
cmp rax, r14
je 0x140022192
nop dword [rax]
cmp byte [rdi + rax], 0
je 0x140022c53
inc rax
cmp r14, rax
jne 0x140022180
mov rax, rdi
cmp r15, r14
jne 0x140022217
cmp r14, 0xffffffffffffffff
je 0x140022c53
lea r15, [r14 + 1]
mov rdx, r15
not rdx
shr rdx, 0x3f
test r14, r14
je 0x1400221ce
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xf0], r14
mov eax, 1
jmp 0x1400221d0
xor eax, eax
mov qword [rsp + 0xe8], rax
lea rcx, [rsp + 0x100]
mov r8, r15
lea r9, [rsp + 0xe0]
call fcn.140007de0
cmp qword [rsp + 0x100], 0
jne 0x140022c4a
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], r15
cmp r14, r15
jne 0x140022231
lea rcx, [rsp + 0xc0]
call fcn.140007e80
mov rax, qword [rsp + 0xc8]
mov byte [rax + r14], 0
mov r13, r14
lea rsi, [r14 + 1]
mov qword [rsp + 0xd0], rsi
mov r14, qword [rsp + 0xc8]
cmp qword [rsp + 0xc0], rsi
jbe 0x1400222a0
test rsi, rsi
je 0x14002227d
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, r14
mov r9, rsi
call sub.KERNEL32.dll_HeapReAlloc
mov r14, rax
test rax, rax
jne 0x1400222a0
jmp 0x140022c53
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov r14d, 1
nop word cs:[rax + rax]
movzx eax, byte [0x141d2e108]
mov edx, 0x38
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov r15, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], 1
mov qword [rax + 0x18], r14
mov qword [rax + 0x20], rsi
mov rax, qword [0x141d2e070]
mov r14, r13
mov r13, qword [rsp + 0x88]
cmp rax, 0xffffffffffffffff
je 0x140022c53
lea rcx, [rax + 1]
lock cmpxchg qword [0x141d2e070], rcx
jne 0x1400222f0
mov qword [r15 + 0x28], rcx
mov byte [r15 + 0x30], 0
lock inc qword [r15]
jle 0x140022c53
movzx eax, byte [0x141d2e108]
mov edx, 0x30
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov rsi, rax
mov qword [rsp + 0x158], r14
mov qword [rax], 1
mov qword [rax + 8], 1
movups xmmword [rax + 0x10], xmm6
mov qword [rsp + 0xe0], rax
lock inc qword [rax]
jle 0x140022c53
movzx eax, byte [0x141d2e080]
test al, al
mov qword [rsp + 0x150], rdi
je 0x1400223d0
mov byte [0x141d2e080], 1
call fcn.140030d10
test rax, rax
je 0x140022c53
mov r14, qword [rax]
mov qword [rax], 0
test r14, r14
je 0x1400223d0
lock inc qword [r14]
jle 0x140022c53
mov byte [0x141d2e080], 1
call fcn.140030d10
test rax, rax
je 0x140022c3a
mov rcx, qword [rax]
mov qword [rax], r14
test rcx, rcx
jne 0x140022406
jmp 0x140022411
movzx eax, byte [0x141d2e080]
test al, al
je 0x140022559
mov byte [0x141d2e080], 1
call fcn.140030d10
test rax, rax
je 0x140022c53
mov rcx, qword [rax]
mov qword [rax], 0
xor r14d, r14d
test rcx, rcx
je 0x140022411
lock dec qword [rcx]
jne 0x140022411
call fcn.14002f7a0
mov rdi, qword [rsp + 0xe0]
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14002242d
lock inc qword [rcx + 0x18]
jle 0x140022c2d
movzx eax, byte [0x141d2e108]
mov edx, pe_nt_image_headers64
xor ecx, ecx
call fcn.140031680
test rax, rax
je 0x140022c53
mov qword [rax], r15
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r14
mov rcx, qword [rsp + 0xb8]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x140]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], r13
mov rcx, qword [rsp + 0x138]
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0x98]
mov qword [rax + 0x38], rcx
movdqa xmm0, xmmword [rsp + 0x200]
movdqa xmm1, xmmword [rsp + 0x210]
movaps xmm2, xmmword [rsp + 0x220]
movaps xmm3, xmmword [rsp + 0x230]
movdqu xmmword [rax + 0x40], xmm0
movdqu xmmword [rax + 0x50], xmm1
movups xmmword [rax + 0x60], xmm2
movups xmmword [rax + 0x70], xmm3
mov rcx, qword [rsp + 0x90]
mov rdx, rax
lea r8, [0x141d27db0]
call fcn.140030460
test rax, rax
jne 0x1400228b9
mov qword [rsp + 0x160], r15
mov qword [rsp + 0x168], rdi
mov qword [rsp + 0x170], rdx
mov rcx, rdx
call sub.KERNEL32.dll_CloseHandle
lock dec qword [r15]
jne 0x140022530
mov rcx, qword [rsp + 0x160]
call fcn.14001a6c0
mov rax, qword [rsp + 0x168]
lock dec qword [rax]
mov r15, qword [rsp + 0x78]
jne 0x140021aa5
jmp 0x140022547
mov rax, qword [rsp + 0x168]
lock dec qword [rax]
mov r15, qword [rsp + 0x78]
jne 0x140021aa5
lea rcx, [rsp + 0x168]
call fcn.140024a20
jmp 0x140021aa5
xor r14d, r14d
mov rdi, qword [rsp + 0xe0]
mov rcx, qword [rdi + 0x10]
test rcx, rcx
jne 0x140022422
jmp 0x14002242d
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x208], 8
mov qword [rsp + 0x210], 0
xor edx, edx
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
mov r8, qword [rsp + 0x98]
mov qword [rsp + 0x210], rdx
cmp qword [rsp + 0xb8], 0
mov rsi, qword [rsp + 0x68]
jne 0x140021214
jmp 0x140021222
mov rax, qword [rsp + 0x200]
lock dec qword [rax]
jne 0x1400225ea
lea rcx, [rsp + 0x200]
call fcn.14004b9d0
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x70]
cmp qword [rsp + 0xa0], rbx
je 0x140022631
add r15, rbx
neg r15
shr r15, 5
jmp 0x140022619
add rbx, 0x20
dec r15
je 0x140022631
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x140022610
mov rcx, rbx
call fcn.14004b9d0
jmp 0x140022610
mov r14, qword [rsp + 0x70]
cmp qword [rsp + 0x118], 0
mov rdi, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x68]
je 0x14002265f
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, qword [rsp + 0xb0]
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x60], r12
je 0x14002269d
mov rsi, qword [rsp + 0x80]
sub rsi, r12
sub rsi, qword [rsp + 0x128]
shr rsi, 4
jmp 0x140022689
add r12, 0x10
dec rsi
je 0x14002269d
mov rax, qword [r12]
lock dec qword [rax]
jne 0x140022680
mov rcx, r12
call fcn.14004b9d0
jmp 0x140022680
test rdi, rdi
je 0x1400226b8
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, qword [rsp + 0x80]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x120]
mov qword [rax + 8], rbx
mov qword [rax], 3
mov rsi, qword [r14 + 0x18]
test rsi, rsi
je 0x140022708
mov rdi, qword [r14 + 0x20]
mov rax, qword [rdi]
test rax, rax
je 0x1400226e5
mov rcx, rsi
call rax
cmp qword [rdi + 8], 0
je 0x140022708
cmp qword [rdi + 0x10], 0x11
jb 0x1400226f7
mov rsi, qword [rsi - 8]
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [r14 + 0x28]
test rsi, rsi
je 0x140022745
mov rdi, qword [r14 + 0x30]
mov rax, qword [rdi]
test rax, rax
je 0x140022722
mov rcx, rsi
call rax
cmp qword [rdi + 8], 0
je 0x140022745
cmp qword [rdi + 0x10], 0x11
jb 0x140022734
mov rsi, qword [rsi - 8]
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [r14 + 0x38]
test rsi, rsi
je 0x140022782
mov rdi, qword [r14 + 0x40]
mov rax, qword [rdi]
test rax, rax
je 0x14002275f
mov rcx, rsi
call rax
cmp qword [rdi + 8], 0
je 0x140022782
cmp qword [rdi + 0x10], 0x11
jb 0x140022771
mov rsi, qword [rsi - 8]
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [r14 + 0x48]
test rsi, rsi
je 0x1400227bf
mov rdi, qword [r14 + 0x50]
mov rax, qword [rdi]
test rax, rax
je 0x14002279c
mov rcx, rsi
call rax
cmp qword [rdi + 8], 0
je 0x1400227bf
cmp qword [rdi + 0x10], 0x11
jb 0x1400227ae
mov rsi, qword [rsi - 8]
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
movaps xmm6, xmmword [rbp + 0x800]
movaps xmm7, xmmword [rbp + 0x810]
movaps xmm8, xmmword [rbp + 0x820]
lea rsp, [rbp + 0x838]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rsp + 0x120]
mov qword [rax], 1
movabs rax, 0x8000000000000000
cmp r13, rax
je 0x140022822
test r13, r13
je 0x140022822
mov r8, qword [rsp + 0x190]
mov rcx, qword [0x141d2e0f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x1b0]
lock dec qword [rax]
mov rdi, qword [rsp + 0x118]
jne 0x140022881
lea rcx, [rsp + 0x1b0]
call fcn.14004b9d0
mov rax, qword [rsp + 0x1a0]
lock dec qword [rax]
je 0x14002288f
mov rax, qword [rsp + 0x1d0]
lock dec qword [rax]
jne 0x1400228aa
mov rcx, qword [rsp + 0x1d0]
call fcn.14004b780
cmp qword [rsp + 0xa0], rbx
jne 0x140022910
jmp 0x14002293c
mov rax, qword [rsp + 0x1a0]
lock dec qword [rax]
jne 0x140022853
lea rcx, [rsp + 0x1a0]
call fcn.14004b9d0
mov rax, qword [rsp + 0x1d0]
lock dec qword [rax]
je 0x140022861
cmp qword [rsp + 0xa0], rbx
jne 0x140022910
jmp 0x14002293c
lock dec qword [rdi]
jne 0x1400228d2
lea rcx, [rsp + 0xe0]
mov rsi, rdx
call fcn.140024a20
mov rdx, rsi
lock dec qword [r15]
mov rdi, qword [rsp + 0x118]
jne 0x1400228ee
mov rcx, r15
mov rsi, rdx
call fcn.14001a6c0
mov rdx, rsi
mov rax, qword [rsp + 0x120]
mov qword [rax], 2
mov qword [rax + 8], rdx
mov r15, qword [rsp + 0x78]
cmp qword [rsp + 0xa0], rbx
je 0x14002293c
add r15, rbx
neg r15
shr r15, 5
jmp 0x140022929
add rbx, 0x20
dec r15
je 0x14002293c
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x140022920
mov rcx, rbx
call fcn.14004b9d0
jmp 0x140022920
test rdi, rdi
je 0x140022957
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, qword [rsp + 0xb0]
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x60], r12
mov rdi, qword [rsp + 0x130]
mov r15, qword [rsp + 0x68]
je 0x1400229ad
mov rsi, qword [rsp + 0x80]
sub rsi, r12
sub rsi, qword [rsp + 0x128]
shr rsi, 4
jmp 0x140022999
add r12, 0x10
dec rsi
je 0x1400229ad
mov rax, qword [r12]
lock dec qword [rax]
jne 0x140022990
mov rcx, r12
call fcn.14004b9d0
jmp 0x140022990
test rdi, rdi
je 0x1400229c8
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, qword [rsp + 0x80]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x148]
lock dec qword [rax]
jne 0x140022ab6
mov rax, qword [r15 + 0x208]
test rax, rax
je 0x140022ab6
mov rdi, qword [r15 + 0x200]
shl rax, 3
lea rbx, [rax + rax*4]
mov r14d, 4
xor r12d, r12d
xor r13d, r13d
jmp 0x140022a24
add r12, 0x28
sub r14, 0xffffffffffffff80
inc r13
cmp rbx, r12
je 0x140022ab6
mov eax, 3
xchg qword [rdi + r12 + 0x10], rax
cmp rax, 2
jne 0x140022a10
cmp qword [r15 + 0x1e8], r13
jbe 0x140022c53
mov r15, qword [r15 + 0x1e0]
lea rsi, [r15 + r14]
xor eax, eax
mov cl, 1
lock cmpxchg byte [r15 + r14], cl
jne 0x140022aa4
cmp byte [r15 + r14 + 1], 0
je 0x140022a86
lea rcx, [r15 + r14]
add rcx, 0xfffffffffffffffc
mov byte [r15 + r14 + 1], 0
lock inc dword [r15 + r14 - 4]
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
mov rax, qword [rsp + 0x68]
lock dec qword [rax + 0x1f0]
xor eax, eax
xchg byte [rsi], al
cmp al, 2
mov r15, qword [rsp + 0x68]
jne 0x140022a10
mov rcx, rsi
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
jmp 0x140022a10
mov rcx, rsi
call fcn.14002b010
cmp byte [r15 + r14 + 1], 0
jne 0x140022a60
jmp 0x140022a86
lock dec qword [r15]
mov r14, qword [rsp + 0x70]
jne 0x1400226cb
mov rcx, r15
call fcn.14004b780
jmp 0x1400226cb
mov r10, r8
cmp r9, 0x11
jae 0x140020bc4
xor edx, edx
xor eax, eax
nop word cs:[rax + rax]
movzx r11d, byte [r10 + rdx]
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x140020bfc
lea rax, [rax + rax*4]
mov r11d, r11d
lea rax, [r11 + rax*2]
inc rdx
cmp r9, rdx
jne 0x140022af0
test rcx, rcx
je 0x140022b2f
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov rsi, rax
call sub.KERNEL32.dll_HeapFree
mov rax, rsi
test rax, rax
jne 0x140020d46
call fcn.14002f760
mov rcx, rax
mov rax, rdx
test rcx, rcx
je 0x140020d46
mov ecx, edx
and ecx, 3
mov eax, 1
lea r8, [rcx - 2]
cmp r8, 2
jb 0x140020d46
test rcx, rcx
je 0x140020d46
mov rsi, qword [rdx - 1]
mov rbx, qword [rdx + 7]
mov rax, qword [rbx]
test rax, rax
je 0x140022b88
mov rcx, rsi
mov rdi, rdx
call rax
mov rdx, rdi
dec rdx
mov rdi, rdx
cmp qword [rbx + 8], 0
je 0x140022bb1
cmp qword [rbx + 0x10], 0x11
jb 0x140022ba0
mov rsi, qword [rsi - 8]
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov eax, 1
jmp 0x140020d46
mov r10, r8
cmp r9, 0x11
jae 0x140020cc1
xor edx, edx
xor eax, eax
nop dword [rax]
movzx r11d, byte [r10 + rdx]
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x140020cfa
lea rax, [rax + rax*4]
mov r11d, r11d
lea rax, [r11 + rax*2]
inc rdx
cmp r9, rdx
jne 0x140022be0
test rcx, rcx
je 0x140022c1f
mov rcx, qword [0x141d2e0f8]
xor edx, edx
mov rsi, rax
call sub.KERNEL32.dll_HeapFree
mov rax, rsi
test rax, rax
je 0x140020d0d
jmp 0x140020d46
add rcx, 0x10
xor edx, edx
call fcn.140026fa0
ud2
lock dec qword [r14]
jne 0x140022c53
mov rcx, r14
call fcn.14002f7a0
ud2
cmp qword [rsp + 0x108], 0
ud2