Function at 0x140045480
Capabilities:
Get system information on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xdb8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xd20], xmm8
movdqa xmmword [rbp + 0xd10], xmm7
movaps xmmword [rbp + 0xd00], xmm6
and rsp, 0xffffffffffffff80
mov rbx, rdx
mov qword [rsp + 0xd8], rcx
mov rsi, qword [rdx + 0x10]
test rsi, rsi
mov qword [rsp + 0x68], rdx
jne 0x140045922
lea rdx, str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUS
lea rcx, [rsp + 0x180]
mov r8d, 0x11
call fcn.1400e6ce0
mov rcx, qword [rsp + 0x180]
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x1400456f5
cmp byte [rsp + 0x198], 0
mov r8, qword [rsp + 0x188]
je 0x140045553
mov r9, qword [rsp + 0x190]
test r9, r9
je 0x1400456a1
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x140045606
cmp eax, 0x2b
jne 0x140045614
dec r9
je 0x1400456a1
lea r10, [r8 + 1]
jmp 0x140045617
mov r9, qword [rsp + 0x190]
test r9, r9
je 0x1400456c9
lea rax, [r8 + r9]
mov r10, r8
jmp 0x140045588
add r10, 2
cmp rdx, rax
cmovne rdx, r10
nop dword [rax + rax]
mov r10, rdx
cmp rdx, rax
je 0x1400455ee
lea rdx, [r10 + 1]
movzx r11d, byte [r10]
test r11b, r11b
jns 0x140045580
cmp r11b, 0xe0
jb 0x14004556d
cmp r11b, 0xed
jne 0x1400455c3
cmp rdx, rax
je 0x1400455ee
lea rdx, [r10 + 2]
cmp rdx, rax
je 0x1400455ee
cmp byte [r10 + 1], 0x9f
ja 0x1400456df
add r10, 3
mov rdx, r10
jmp 0x140045580
add r10, 2
cmp rdx, rax
cmove r10, rdx
xor edx, edx
cmp r10, rax
setne dl
add rdx, r10
cmp r11b, 0xf0
jb 0x140045580
xor r10d, r10d
cmp rdx, rax
setne r10b
add rdx, r10
jmp 0x140045580
movabs rax, 0x8000000000000000
cmp rcx, rax
jne 0x140045522
jmp 0x1400456f5
mov r10, r8
cmp r9, 1
jne 0x140045617
jmp 0x1400456a1
mov r10, r8
cmp r9, 0x11
jae 0x140045659
xor eax, eax
xor esi, esi
nop word cs:[rax + rax]
movzx edx, byte [r10 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400456a1
lea r11, [rsi + rsi*4]
mov edx, edx
lea rsi, [rdx + r11*2]
inc rax
cmp r9, rax
jne 0x140045630
mov dil, 1
test rcx, rcx
jne 0x1400456a8
jmp 0x1400456b6
xor r11d, r11d
mov edi, 0xa
xor esi, esi
nop word cs:[rax + rax]
cmp r9, r11
je 0x14004564f
movzx ebx, byte [r10 + r11]
mov rax, rsi
mul rdi
seto dl
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x1400456d1
test dl, dl
jne 0x1400456d1
mov rsi, rax
mov eax, ebx
inc r11
add rsi, rax
mov rbx, qword [rsp + 0x68]
jae 0x140045670
xor edi, edi
test rcx, rcx
je 0x1400456b6
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
test dil, dil
je 0x1400456f5
test rsi, rsi
jne 0x140045922
jmp 0x1400458e9
xor r9d, r9d
jmp 0x140045522
xor edi, edi
mov rbx, qword [rsp + 0x68]
test rcx, rcx
jne 0x1400456a8
jmp 0x1400456b6
shl rcx, 1
test rcx, rcx
je 0x1400456f5
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
lea rdx, [0x140123d31]
lea rcx, [rsp + 0x180]
mov r8d, 0x11
call fcn.1400e6ce0
mov rcx, qword [rsp + 0x180]
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x1400458e9
cmp byte [rsp + 0x198], 0
mov r8, qword [rsp + 0x188]
je 0x140045775
mov r9, qword [rsp + 0x190]
test r9, r9
je 0x1400458c9
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x140045826
cmp eax, 0x2b
jne 0x140045834
dec r9
je 0x1400458c9
lea r10, [r8 + 1]
jmp 0x140045837
mov r9, qword [rsp + 0x190]
test r9, r9
je 0x1400475a8
lea rax, [r8 + r9]
mov r10, r8
jmp 0x1400457a8
add r10, 2
cmp rdx, rax
cmovne rdx, r10
nop word [rax + rax]
mov r10, rdx
cmp rdx, rax
je 0x14004580e
lea rdx, [r10 + 1]
movzx r11d, byte [r10]
test r11b, r11b
jns 0x1400457a0
cmp r11b, 0xe0
jb 0x14004578f
cmp r11b, 0xed
jne 0x1400457e3
cmp rdx, rax
je 0x14004580e
lea rdx, [r10 + 2]
cmp rdx, rax
je 0x14004580e
cmp byte [r10 + 1], 0x9f
ja 0x1400475da
add r10, 3
mov rdx, r10
jmp 0x1400457a0
add r10, 2
cmp rdx, rax
cmove r10, rdx
xor edx, edx
cmp r10, rax
setne dl
add rdx, r10
cmp r11b, 0xf0
jb 0x1400457a0
xor r10d, r10d
cmp rdx, rax
setne r10b
add rdx, r10
jmp 0x1400457a0
movabs rax, 0x8000000000000000
cmp rcx, rax
jne 0x140045744
jmp 0x1400458e9
mov r10, r8
cmp r9, 1
jne 0x140045837
jmp 0x1400458c9
mov r10, r8
cmp r9, 0x11
jae 0x140045879
xor eax, eax
xor esi, esi
nop word cs:[rax + rax]
movzx edx, byte [r10 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400458c9
lea r11, [rsi + rsi*4]
mov edx, edx
lea rsi, [rdx + r11*2]
inc rax
cmp r9, rax
jne 0x140045850
mov dil, 1
test rcx, rcx
jne 0x1400458d0
jmp 0x1400458de
xor r11d, r11d
mov edi, 0xa
xor esi, esi
nop word cs:[rax + rax]
cmp r9, r11
je 0x14004586f
movzx ebx, byte [r10 + r11]
mov rax, rsi
mul rdi
seto dl
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x1400475b0
test dl, dl
jne 0x1400475b0
mov rsi, rax
mov eax, ebx
inc r11
add rsi, rax
mov rbx, qword [rsp + 0x68]
jae 0x140045890
xor edi, edi
test rcx, rcx
je 0x1400458de
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
test rsi, rsi
setne al
test dil, al
jne 0x140045922
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x1a0], xmm0
movdqa xmmword [rsp + 0x190], xmm0
movdqa xmmword [rsp + 0x180], xmm0
lea rcx, [rsp + 0x180]
call sub.KERNEL32.dll_GetSystemInfo
mov esi, dword [rsp + 0x1a0]
cmp esi, 1
adc esi, 0
cmp rsi, 0xffff
mov eax, 0xffff
cmovb rax, rsi
mov rsi, rax
movzx ebx, byte [rbx + 0x59]
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 8
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x190], xmm0
mov qword [rsp + 0x1a0], 8
mov qword [rsp + 0x1a8], 0
test rax, rax
mov qword [rsp + 0x80], rax
jne 0x1400470de
mov r12, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x1a8]
mov qword [rsp + 0x70], rdx
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 8
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x190], xmm0
mov qword [rsp + 0x1a0], 8
mov qword [rsp + 0x1a8], 0
test rsi, rsi
jne 0x1400472b1
xor eax, eax
xor edx, edx
sub rax, rdx
cmp rax, rsi
jb 0x1400472df
lea r14, [rsp + 0x198]
xorps xmm6, xmm6
lea r13, [rsp + 0x180]
jmp 0x140045a7c
mov rcx, qword [rsp + 0x1a0]
mov rax, r15
shl rax, 4
mov qword [rcx + rax], rbx
mov byte [rcx + rax + 8], 0
inc r15
mov qword [rsp + 0x1a8], r15
dec rsi
je 0x140045b91
mov ecx, 0x40
call fcn.140049020
mov rdi, rax
movzx eax, byte [0x140188180]
mov edx, 0x10
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov r15, rax
mov qword [rax], rdi
mov qword [rax + 8], 0x40
movzx eax, byte [0x140188180]
mov edx, 0x200
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov rbx, rax
and rbx, 0xffffffffffffff80
mov qword [rbx + 0x78], rax
mov qword [rbx + 0x80], 1
mov qword [rbx + 0x88], 1
mov qword [rbx + 0x100], r15
movaps xmmword [rbx + 0x180], xmm6
lock inc qword [rbx + 0x80]
jle 0x14004761a
mov rdx, qword [rsp + 0x190]
cmp rdx, qword [rsp + 0x180]
jne 0x140045b2e
mov rcx, r13
call fcn.14004b030
mov rdx, qword [rsp + 0x190]
sub rbx, 0xffffffffffffff80
mov rax, qword [rsp + 0x188]
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], rbx
mov qword [rax + rcx + 8], rdi
mov qword [rax + rcx + 0x10], 0x40
mov byte [rax + rcx + 0x18], 0
inc rdx
mov qword [rsp + 0x190], rdx
mov r15, qword [rsp + 0x1a8]
cmp r15, qword [rsp + 0x198]
jne 0x140045a50
mov rcx, r14
mov rdx, r15
call fcn.14004b240
mov r15, qword [rsp + 0x1a8]
jmp 0x140045a50
mov qword [rsp + 0x88], rcx
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0xc0], rax
movdqu xmm0, xmmword [rsp + 0x180]
movdqa xmmword [rsp + 0xb0], xmm0
mov r14, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x70]
mov rsi, rcx
shl rsi, 4
add rsi, r12
test rcx, rcx
je 0x140045d16
movabs rax, 0x1c71c71c71c71c7
cmp rcx, rax
ja 0x14004761a
lea rax, [rcx*8]
lea rdx, [rax + rax*8]
movzx eax, byte [0x140188180]
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov r13, rax
lea rax, [rsp + 0x186]
lea rcx, [rsp + 0x796]
xor ebx, ebx
pxor xmm0, xmm0
mov rdx, r13
mov r8, r12
mov r9, qword [r8]
movzx r10d, byte [r8 + 8]
movdqu xmmword [rax], xmm0
mov word [rax + 0x10], 0
movdqu xmmword [rcx], xmm0
mov qword [rdx], 0
mov word [rdx + 8], 0
movups xmm1, xmmword [rsp + 0x180]
movups xmmword [rdx + 0xa], xmm1
mov r11, qword [rsp + 0x190]
mov qword [rdx + 0x1a], r11
movdqu xmm1, xmmword [rsp + 0x790]
movdqu xmmword [rdx + 0x22], xmm1
mov r11, qword [rsp + 0x79e]
mov qword [rdx + 0x30], r11
mov qword [rdx + 0x38], r9
mov byte [rdx + 0x40], r10b
inc rbx
add rdx, 0x48
add r8, 0x10
cmp r8, rsi
jne 0x140045c30
cmp qword [rsp + 0x78], 0
mov rsi, qword [rsp + 0x80]
je 0x140045cbe
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, r12
call sub.KERNEL32.dll_HeapFree
test rsi, rsi
mov qword [rsp + 0x108], r14
mov qword [rsp + 0x98], r13
je 0x140045d58
mov rdx, rsi
shl rdx, 7
movzx eax, byte [0x140188180]
sub rdx, 0xffffffffffffff80
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov r13, rax
and r13, 0xffffffffffffff80
mov qword [r13 + 0x78], rax
sub r13, 0xffffffffffffff80
cmp rsi, 1
jne 0x140045d66
xor r14d, r14d
jmp 0x140045dc6
cmp rsi, r12
jne 0x140045d44
mov r13d, 8
xor ebx, ebx
cmp qword [rsp + 0x78], 0
mov rsi, qword [rsp + 0x80]
jne 0x140045cad
jmp 0x140045cbe
add r12, 0x10
mov rax, qword [r12]
lock dec qword [rax]
jne 0x140045d40
mov rcx, r12
call fcn.140048780
jmp 0x140045d40
mov r13d, pe_nt_image_headers64
xor r14d, r14d
jmp 0x140045deb
mov edx, eax
and edx, 0x7f
mov ecx, esi
and ecx, 0xfffe
sub rax, rdx
add rax, 0x110
xor r14d, r14d
nop
mov qword [rax - 0x90], 0
mov word [rax - 0x88], 0
mov qword [rax - 0x80], 0
add r14, 2
mov qword [rax - 0x10], 0
mov word [rax - 8], 0
mov qword [rax], 0
add rax, 0x100
cmp rcx, r14
jne 0x140045d80
test sil, 1
je 0x140045deb
lea rax, [r14 + 1]
shl r14, 7
mov qword [r13 + r14], 0
mov word [r13 + r14 + 8], 0
mov qword [r13 + r14 + 0x10], 0
mov r14, rax
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x180], xmm0
mov qword [rsp + 0x190], 0
movdqu xmmword [rsp + 0x198], xmm0
mov qword [rsp + 0x1a8], 0
movdqa xmmword [rsp + 0x1b0], xmm0
mov qword [rsp + 0x1c0], 0
movdqu xmmword [rsp + 0x1c8], xmm0
mov qword [rsp + 0x1d8], 0
movdqa xmmword [rsp + 0x1e0], xmm0
mov qword [rsp + 0x1f0], 0
movdqu xmmword [rsp + 0x1f8], xmm0
mov qword [rsp + 0x208], 0
movdqa xmmword [rsp + 0x210], xmm0
mov qword [rsp + 0x220], 0
movdqu xmmword [rsp + 0x228], xmm0
mov qword [rsp + 0x238], 0
movdqa xmmword [rsp + 0x240], xmm0
mov qword [rsp + 0x250], 0
movdqu xmmword [rsp + 0x258], xmm0
mov qword [rsp + 0x268], 0
movdqa xmmword [rsp + 0x270], xmm0
mov qword [rsp + 0x280], 0
movdqu xmmword [rsp + 0x288], xmm0
mov qword [rsp + 0x298], 0
movdqa xmmword [rsp + 0x2a0], xmm0
mov qword [rsp + 0x2b0], 0
movdqu xmmword [rsp + 0x2b8], xmm0
mov qword [rsp + 0x2c8], 0
movdqa xmmword [rsp + 0x2d0], xmm0
mov qword [rsp + 0x2e0], 0
movdqu xmmword [rsp + 0x2e8], xmm0
mov qword [rsp + 0x2f8], 0
movdqa xmmword [rsp + 0x300], xmm0
mov qword [rsp + 0x310], 0
movdqu xmmword [rsp + 0x318], xmm0
mov qword [rsp + 0x328], 0
movdqa xmmword [rsp + 0x330], xmm0
mov qword [rsp + 0x340], 0
movdqu xmmword [rsp + 0x348], xmm0
mov qword [rsp + 0x358], 0
movdqa xmmword [rsp + 0x360], xmm0
mov qword [rsp + 0x370], 0
movdqu xmmword [rsp + 0x378], xmm0
mov qword [rsp + 0x388], 0
movdqa xmmword [rsp + 0x390], xmm0
mov qword [rsp + 0x3a0], 0
movdqu xmmword [rsp + 0x3a8], xmm0
mov qword [rsp + 0x3b8], 0
movdqa xmmword [rsp + 0x3c0], xmm0
mov qword [rsp + 0x3d0], 0
movdqu xmmword [rsp + 0x3d8], xmm0
mov qword [rsp + 0x3e8], 0
movdqa xmmword [rsp + 0x3f0], xmm0
mov qword [rsp + 0x400], 0
movdqu xmmword [rsp + 0x408], xmm0
mov qword [rsp + 0x418], 0
movdqa xmmword [rsp + 0x420], xmm0
mov qword [rsp + 0x430], 0
movdqu xmmword [rsp + 0x438], xmm0
mov qword [rsp + 0x448], 0
movdqa xmmword [rsp + 0x450], xmm0
mov qword [rsp + 0x460], 0
movdqu xmmword [rsp + 0x468], xmm0
mov qword [rsp + 0x478], 0
movdqa xmmword [rsp + 0x480], xmm0
mov qword [rsp + 0x490], 0
movdqu xmmword [rsp + 0x498], xmm0
mov qword [rsp + 0x4a8], 0
movdqa xmmword [rsp + 0x4b0], xmm0
mov qword [rsp + 0x4c0], 0
movdqu xmmword [rsp + 0x4c8], xmm0
mov qword [rsp + 0x4d8], 0
movdqa xmmword [rsp + 0x4e0], xmm0
mov qword [rsp + 0x4f0], 0
movdqu xmmword [rsp + 0x4f8], xmm0
mov qword [rsp + 0x508], 0
movdqa xmmword [rsp + 0x510], xmm0
mov qword [rsp + 0x520], 0
movdqu xmmword [rsp + 0x528], xmm0
mov qword [rsp + 0x538], 0
movdqa xmmword [rsp + 0x540], xmm0
mov qword [rsp + 0x550], 0
movdqu xmmword [rsp + 0x558], xmm0
mov qword [rsp + 0x568], 0
movdqa xmmword [rsp + 0x570], xmm0
mov qword [rsp + 0x580], 0
movdqu xmmword [rsp + 0x588], xmm0
mov qword [rsp + 0x598], 0
movdqa xmmword [rsp + 0x5a0], xmm0
mov qword [rsp + 0x5b0], 0
movdqu xmmword [rsp + 0x5b8], xmm0
mov qword [rsp + 0x5c8], 0
movdqa xmmword [rsp + 0x5d0], xmm0
mov qword [rsp + 0x5e0], 0
movdqu xmmword [rsp + 0x5e8], xmm0
mov qword [rsp + 0x5f8], 0
movdqa xmmword [rsp + 0x600], xmm0
mov qword [rsp + 0x610], 0
movdqu xmmword [rsp + 0x618], xmm0
mov qword [rsp + 0x628], 0
movdqa xmmword [rsp + 0x630], xmm0
mov qword [rsp + 0x640], 0
movdqu xmmword [rsp + 0x648], xmm0
mov qword [rsp + 0x658], 0
movdqa xmmword [rsp + 0x660], xmm0
mov qword [rsp + 0x670], 0
movdqu xmmword [rsp + 0x678], xmm0
mov qword [rsp + 0x688], 0
movdqa xmmword [rsp + 0x690], xmm0
mov qword [rsp + 0x6a0], 0
movdqu xmmword [rsp + 0x6a8], xmm0
mov qword [rsp + 0x6b8], 0
movdqa xmmword [rsp + 0x6c0], xmm0
mov qword [rsp + 0x6d0], 0
movdqu xmmword [rsp + 0x6d8], xmm0
mov qword [rsp + 0x6e8], 0
movdqa xmmword [rsp + 0x6f0], xmm0
mov qword [rsp + 0x700], 0
movdqu xmmword [rsp + 0x708], xmm0
mov qword [rsp + 0x718], 0
movdqa xmmword [rsp + 0x720], xmm0
mov qword [rsp + 0x730], 0
movdqu xmmword [rsp + 0x738], xmm0
mov qword [rsp + 0x748], 0
movdqa xmmword [rsp + 0x750], xmm0
mov qword [rsp + 0x760], 0
lea rcx, [rsp + 0x790]
lea rdx, [rsp + 0x180]
mov r8d, 0x5e8
call sub.msvcrt.dll_memcpy
movzx eax, byte [0x140188180]
mov edx, 0x5f0
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov r12, rax
mov qword [rax], 0
mov rcx, rax
add rcx, 8
lea rdx, [rsp + 0x790]
mov r8d, 0x5e8
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x197], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x187], xmm0
mov rax, qword [rsp + 0x68]
movups xmm6, xmmword [rax + 0x18]
movdqu xmm7, xmmword [rax + 0x38]
movups xmm8, xmmword [rax + 0x48]
mov qword [rax + 0x18], 0
mov qword [rax + 0x38], 0
mov qword [rax + 0x48], 0
movdqu xmm0, xmmword [rsp + 0x180]
mov rax, qword [rsp + 0x18f]
mov qword [rsp + 0xbf], rax
mov rax, qword [rsp + 0x197]
mov qword [rsp + 0xc7], rax
movdqa xmmword [rsp + 0xb0], xmm0
movzx eax, byte [0x140188180]
mov edx, 0x300
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov rcx, rax
and rcx, 0xffffffffffffff80
mov qword [rcx + 0x78], rax
mov qword [rcx + 0x80], 1
mov qword [rcx + 0x88], 1
mov qword [rcx + 0x100], 0
mov qword [rcx + 0x108], r12
movaps xmm0, xmmword [rsp + 0x180]
movaps xmm1, xmmword [rsp + 0x190]
movaps xmm2, xmmword [rsp + 0x1a0]
movaps xmm3, xmmword [rsp + 0x1b0]
movaps xmmword [rcx + 0x110], xmm0
movaps xmmword [rcx + 0x120], xmm1
movaps xmmword [rcx + 0x130], xmm2
movaps xmmword [rcx + 0x140], xmm3
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rcx + 0x150], xmm0
movaps xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rcx + 0x160], xmm0
movaps xmm0, xmmword [rsp + 0x1e0]
movaps xmmword [rcx + 0x170], xmm0
mov qword [rcx + 0x180], 0
mov qword [rcx + 0x188], r12
movaps xmm0, xmmword [rsp + 0x790]
movdqa xmm1, xmmword [rsp + 0x7a0]
movaps xmm2, xmmword [rsp + 0x7b0]
movaps xmm3, xmmword [rsp + 0x7c0]
movaps xmmword [rcx + 0x190], xmm0
movdqa xmmword [rcx + 0x1a0], xmm1
movaps xmmword [rcx + 0x1b0], xmm2
movaps xmmword [rcx + 0x1c0], xmm3
movaps xmm0, xmmword [rsp + 0x7d0]
movaps xmmword [rcx + 0x1d0], xmm0
movaps xmm0, xmmword [rsp + 0x7e0]
movaps xmmword [rcx + 0x1e0], xmm0
movaps xmm0, xmmword [rsp + 0x7f0]
movaps xmmword [rcx + 0x1f0], xmm0
movaps xmmword [rcx + 0x200], xmm6
movdqa xmmword [rcx + 0x210], xmm7
movaps xmmword [rcx + 0x220], xmm8
mov qword [rcx + 0x230], 0
mov byte [rcx + 0x238], 0
movups xmm0, xmmword [rsp + 0xbf]
movups xmmword [rcx + 0x248], xmm0
movdqa xmm0, xmmword [rsp + 0xb0]
movdqu xmmword [rcx + 0x239], xmm0
mov qword [rcx + 0x258], 1
mov qword [rcx + 0x260], rsi
mov qword [rcx + 0x268], r13
mov qword [rcx + 0x270], r14
lea r12, [rcx + 0x80]
mov qword [rcx + 0x278], 0
mov rax, qword [rsp + 0x70]
mov qword [rcx + 0x280], rax
mov rax, qword [rsp + 0x98]
mov qword [rcx + 0x288], rax
mov qword [rcx + 0x290], rbx
mov rax, qword [rsp + 0xa0]
mov r13, rax
shl r13, 5
mov rbx, qword [rsp + 0x90]
add r13, rbx
shl r15, 4
mov r14, qword [rsp + 0x88]
add r15, r14
test rax, rax
je 0x140046f27
add rcx, 0x258
mov qword [rsp + 0x130], rcx
xor eax, eax
mov qword [rsp + 0x80], rax
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x140119350]
lea rcx, [rsp + 0x180]
mov r14, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x78], r12
mov qword [rsp + 0xe8], r13
jmp 0x14004666c
inc qword [rsp + 0x80]
mov rax, rbx
cmp rbx, r13
lea rcx, [rsp + 0x180]
je 0x140046f5c
lea rbx, [rax + 0x20]
movzx esi, byte [rax + 0x18]
cmp sil, 2
je 0x140046f27
mov rdx, qword [rax + 0x10]
mov qword [rsp + 0x190], rdx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x180], xmm0
mov byte [rsp + 0x198], sil
mov r9d, dword [rax + 0x19]
mov edx, dword [rax + 0x1c]
lea r8, [rsp + 0x199]
mov dword [r8 + 3], edx
mov dword [r8], r9d
cmp r14, r15
je 0x140046f09
lea r8, [rax + 0x19]
mov rdi, qword [r14]
movzx r13d, byte [r14 + 8]
mov rdx, qword [rax + 0x10]
mov qword [rsp + 0x170], rdx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x160], xmm0
mov eax, dword [r8]
mov edx, dword [r8 + 3]
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xab], edx
mov r12, qword [rsp + 0x68]
mov rdx, qword [r12 + 0x28]
test rdx, rdx
je 0x140046720
mov rax, qword [r12 + 0x30]
mov r8, qword [rsp + 0x80]
call qword [rax + 0x20]
jmp 0x140046732
movabs rax, 0x8000000000000000
mov qword [rsp + 0x180], rax
mov r8, qword [r12]
mov r9, qword [r12 + 8]
mov r12, qword [rsp + 0x78]
lock inc qword [r12]
jle 0x14004761a
add r14, 0x10
mov rax, qword [rsp + 0x190]
lea rdx, [rsp + 0x7a0]
mov qword [rdx + 0x10], rax
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [rdx], xmm0
mov qword [rsp + 0x790], r8
mov qword [rsp + 0x798], r9
mov rax, qword [rsp + 0x170]
lea rcx, [rsp + 0x7c8]
mov qword [rcx + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x160]
movdqu xmmword [rcx], xmm0
mov byte [rsp + 0x7e0], sil
mov eax, dword [rsp + 0xa8]
mov ecx, dword [rsp + 0xab]
mov dword [rdx + 0x44], ecx
mov dword [rdx + 0x41], eax
mov qword [rsp + 0x7b8], rdi
mov byte [rsp + 0x7c0], r13b
mov qword [rsp + 0x7e8], r12
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x7f0], rax
test rax, rax
jne 0x1400468e0
mov rax, qword [rsp + 0x68]
cmp byte [rax + 0x58], 0
je 0x1400468e0
xor ecx, ecx
call fcn.140044dd0
test rax, rax
je 0x14004761a
cmp qword [rax], 0
mov r13, qword [rsp + 0xe8]
lea rcx, [rsp + 0x180]
jne 0x1400472f4
lea rdx, [rsp + 0x790]
mov rdi, rcx
call fcn.140044060
movzx eax, byte [0x140188180]
mov edx, 0x200
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
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.140044dd0
test rax, rax
je 0x14004761a
cmp qword [rax], 0
jne 0x14004761a
mov qword [rax], rsi
cmp qword [r12 + 0x210], 0
je 0x14004761a
mov rsi, qword [r12 + 0x208]
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
movzx eax, byte [rsi + 8]
test al, al
jne 0x14004761a
mov byte [rsi + 9], 1
lea rcx, [rsi + 0x10]
call sub.KERNEL32.dll_WakeAllConditionVariable
mov rcx, rsi
call fcn.140114c68
jmp 0x140046650
mov rcx, qword [rsp + 0x7a0]
mov rax, qword [rsp + 0x7a8]
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x7b0]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x7b8]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movdqa xmmword [rsp + 0x180], xmm0
movdqa xmmword [rsp + 0x190], xmm1
movaps xmmword [rsp + 0x1a0], xmm2
movaps xmmword [rsp + 0x1b0], xmm3
movabs rax, 0x8000000000000000
mov r13, rax
mov qword [rsp + 0x140], rcx
cmp rcx, rax
mov rsi, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x128], r9
je 0x1400469d6
mov r13, qword [rsp + 0xa0]
test r13, r13
je 0x1400469ab
js 0x14004761a
movzx eax, byte [0x140188180]
xor ecx, ecx
mov rdx, r13
call fcn.1400f2120
mov rsi, rax
test rax, rax
jne 0x1400469b0
jmp 0x14004761a
mov esi, 1
mov rcx, rsi
mov rdx, qword [rsp + 0x120]
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rdx, r13
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x128]
test r8, r8
mov qword [rsp + 0x70], rdx
jne 0x1400469ed
call fcn.1400f1fd0
mov rdx, qword [rsp + 0x70]
mov r9, rax
movabs rax, 0x8000000000000000
cmp r13, rax
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0x138], r9
jne 0x140046a20
xor r12d, r12d
jmp 0x140046c43
cmp rdx, 0x10
jae 0x140046a57
test rdx, rdx
je 0x140046b02
xor eax, eax
nop word cs:[rax + rax]
cmp byte [rsi + rax], 0
je 0x14004761a
inc rax
cmp rdx, rax
jne 0x140046a40
jmp 0x140046b02
lea rax, [rsi + 7]
and rax, 0xfffffffffffffff8
sub rax, rsi
je 0x140046a98
cmp rax, rdx
cmovae rax, rdx
test rax, rax
je 0x140046a98
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [rsi + rcx], 0
je 0x14004761a
inc rcx
cmp rax, rcx
jne 0x140046a80
lea rcx, [rdx - 0x10]
jmp 0x140046aa0
lea rcx, [rdx - 0x10]
xor eax, eax
jmp 0x140046aa5
cmp rax, rcx
ja 0x140046ad9
movdqu xmm0, xmmword [rsi + 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 0x140046ad9
add rax, 0x10
jmp 0x140046aa0
mov rdx, qword [rsp + 0x70]
cmp rax, rdx
je 0x140046b02
nop word cs:[rax + rax]
cmp byte [rsi + rax], 0
je 0x14004761a
inc rax
cmp rdx, rax
jne 0x140046af0
mov qword [rsp + 0xf0], r13
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0x100], rdx
cmp r13, rdx
je 0x140046b33
mov r8, rsi
mov rsi, rdx
cmp rdx, r13
je 0x140046bce
jmp 0x140046bf8
mov rsi, rdx
inc rsi
je 0x14004761a
test r13, r13
je 0x140046b63
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc0], r13
mov eax, 1
jmp 0x140046b65
xor eax, eax
mov rdx, rsi
not rdx
shr rdx, 0x3f
mov qword [rsp + 0xb8], rax
lea rcx, [rsp + 0x778]
mov r8, rsi
lea r9, [rsp + 0xb0]
call fcn.1400344e0
cmp qword [rsp + 0x778], 0
mov rax, qword [rsp + 0x780]
je 0x140046edd
mov r8, qword [rsp + 0xe0]
movabs rcx, 0x8000000000000001
cmp rax, rcx
mov rdx, qword [rsp + 0x70]
jne 0x140047617
mov rsi, rdx
cmp rdx, r13
jne 0x140046bf8
lea rcx, [rsp + 0xf0]
mov rdx, qword [rsp + 0x70]
call fcn.140034570
mov rsi, qword [rsp + 0x100]
mov r13, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xf8]
mov byte [r8 + rsi], 0
inc rsi
mov qword [rsp + 0x100], rsi
cmp r13, rsi
jbe 0x140046c40
mov rcx, qword [0x140188170]
xor edx, edx
test rsi, rsi
je 0x140046c30
mov r9, rsi
call sub.KERNEL32.dll_HeapReAlloc
mov r8, rax
test rax, rax
jne 0x140046c40
jmp 0x14004761a
call sub.KERNEL32.dll_HeapFree
mov r8d, 1
nop dword [rax + rax]
mov r12, r8
movzx eax, byte [0x140188180]
mov edx, 0x30
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov r13, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], rsi
mov rax, qword [0x140188148]
mov rcx, rax
inc rcx
je 0x14004761a
lock cmpxchg qword [0x140188148], rcx
jne 0x140046c80
mov qword [r13 + 0x10], rcx
mov byte [r13 + 0x28], 0
lock inc qword [r13]
jle 0x14004761a
movzx eax, byte [0x140188180]
mov edx, 0x30
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov rsi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
movups xmmword [rax + 0x10], xmm6
mov qword [rsp + 0xb0], rax
lock inc qword [rax]
jle 0x14004761a
movzx eax, byte [0x1401880a8]
test al, al
je 0x140046d50
mov byte [0x1401880a8], 1
call fcn.1400e6730
test rax, rax
je 0x14004761a
mov rcx, qword [rax]
mov qword [rax], 0
test rcx, rcx
je 0x140046d50
lock inc qword [rcx]
jle 0x14004761a
mov r12, rcx
mov byte [0x1401880a8], 1
call fcn.1400e6730
test rax, rax
je 0x140047606
mov rcx, qword [rax]
mov qword [rax], r12
test rcx, rcx
jne 0x140046d82
jmp 0x140046d92
movzx eax, byte [0x1401880a8]
test al, al
je 0x140046d8f
mov byte [0x1401880a8], 1
call fcn.1400e6730
test rax, rax
je 0x14004761a
mov rcx, qword [rax]
mov qword [rax], 0
xor r12d, r12d
test rcx, rcx
je 0x140046d92
lock dec qword [rcx]
jne 0x140046d92
call fcn.140048730
jmp 0x140046d92
xor r12d, r12d
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x118], rax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x140046db6
lock inc qword [rcx + 0x18]
jle 0x1400475f9
movzx eax, byte [0x140188180]
mov edx, pe_nt_image_headers64
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov qword [rax], r13
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r12
mov rcx, qword [rsp + 0x98]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x128]
mov qword [rax + 0x20], rcx
mov rcx, qword [rsp + 0x140]
mov qword [rax + 0x28], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0xa0]
mov qword [rax + 0x38], rcx
movdqa xmm0, xmmword [rsp + 0x180]
movdqa xmm1, xmmword [rsp + 0x190]
movaps xmm2, xmmword [rsp + 0x1a0]
movaps xmm3, xmmword [rsp + 0x1b0]
movdqu xmmword [rax + 0x40], xmm0
movdqu xmmword [rax + 0x50], xmm1
movups xmmword [rax + 0x60], xmm2
movups xmmword [rax + 0x70], xmm3
mov rcx, qword [rsp + 0x138]
mov rdx, rax
lea r8, [0x140123d48]
call fcn.1400e6130
mov rsi, rdx
test rax, rax
jne 0x140047375
mov qword [rsp + 0x148], r13
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rsi
mov rcx, rsi
call sub.KERNEL32.dll_CloseHandle
lock dec qword [r13]
jne 0x140046eac
mov rcx, qword [rsp + 0x148]
call fcn.1400484a0
mov rax, qword [rsp + 0x150]
lock dec qword [rax]
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0x78]
jne 0x140046650
lea rcx, [rsp + 0x150]
call fcn.140048280
jmp 0x140046650
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0xf0], rsi
mov r8, rax
mov r13, rsi
mov rdx, qword [rsp + 0x70]
mov rsi, rdx
cmp rdx, r13
je 0x140046bce
jmp 0x140046bf8
mov rax, qword [rsp + 0x180]
lock dec qword [rax]
jne 0x140046f24
lea rcx, [rsp + 0x180]
call fcn.140048780
mov r14, r15
sub r13, rbx
je 0x140046f5c
shr r13, 5
jmp 0x140046f49
add rbx, 0x20
dec r13
je 0x140046f5c
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x140046f40
mov rcx, rbx
call fcn.140048780
jmp 0x140046f40
cmp qword [rsp + 0x110], 0
mov rbx, qword [rsp + 0x68]
je 0x140046f82
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, qword [rsp + 0x90]
call sub.KERNEL32.dll_HeapFree
sub r15, r14
je 0x140046fac
shr r15, 4
jmp 0x140046f99
add r14, 0x10
dec r15
je 0x140046fac
mov rax, qword [r14]
lock dec qword [rax]
jne 0x140046f90
mov rcx, r14
call fcn.140048780
jmp 0x140046f90
cmp qword [rsp + 0x108], 0
je 0x140046fcd
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, qword [rsp + 0x88]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0xd8]
mov qword [rax + 8], r12
mov qword [rax], 3
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x140047015
mov rdi, qword [rbx + 0x20]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x140047015
cmp qword [rdi + 0x10], 0x11
jb 0x140047004
mov rsi, qword [rsi - 8]
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbx + 0x28]
test rsi, rsi
je 0x14004704a
mov rdi, qword [rbx + 0x30]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x14004704a
cmp qword [rdi + 0x10], 0x11
jb 0x140047039
mov rsi, qword [rsi - 8]
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbx + 0x38]
test rsi, rsi
je 0x14004707f
mov rdi, qword [rbx + 0x40]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x14004707f
cmp qword [rdi + 0x10], 0x11
jb 0x14004706e
mov rsi, qword [rsi - 8]
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbx + 0x48]
test rsi, rsi
je 0x1400470b4
mov rdi, qword [rbx + 0x50]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1400470b4
cmp qword [rdi + 0x10], 0x11
jb 0x1400470a3
mov rsi, qword [rsi - 8]
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
movaps xmm6, xmmword [rbp + 0xd00]
movaps xmm7, xmmword [rbp + 0xd10]
movaps xmm8, xmmword [rbp + 0xd20]
lea rsp, [rbp + 0xd38]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [rsp + 0x180]
xor edx, edx
mov r8, rsi
call fcn.14004bb60
mov rax, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a8]
sub rax, rdx
cmp rax, rsi
jb 0x1400475c5
xorps xmm6, xmm6
mov r13, rsi
jmp 0x140047154
mov rsi, qword [rsp + 0x80]
mov r12, qword [rsp + 0x1a0]
mov rax, rdx
shl rax, 4
mov qword [r12 + rax], rdi
mov byte [r12 + rax + 8], r14b
inc rdx
mov qword [rsp + 0x1a8], rdx
dec r13
je 0x140045997
mov ecx, 0x40
call fcn.140049020
mov rsi, rax
movzx eax, byte [0x140188180]
mov edx, 0x10
xor ecx, ecx
call fcn.1400f2120
mov r15, rax
test bl, bl
je 0x1400471c0
test r15, r15
je 0x14004761a
mov qword [r15], rsi
mov qword [r15 + 8], 0x40
movzx eax, byte [0x140188180]
mov edx, 0x200
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov rdi, rax
and rdi, 0xffffffffffffff80
sub rdi, 0xffffffffffffff80
xor r14d, r14d
jmp 0x1400471fe
test r15, r15
je 0x14004761a
mov qword [r15], rsi
mov qword [r15 + 8], 0x40
movzx eax, byte [0x140188180]
mov edx, 0x200
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14004761a
mov rdi, rax
and rdi, 0xffffffffffffff80
sub rdi, 0xffffffffffffff80
mov r14b, 1
mov qword [rdi - 8], rax
mov qword [rdi], 1
mov qword [rdi + 8], 1
mov qword [rdi + 0x80], r15
movaps xmmword [rdi + 0x100], xmm6
lock inc qword [rdi]
jle 0x14004761a
mov rdx, qword [rsp + 0x190]
cmp rdx, qword [rsp + 0x180]
jne 0x140047250
lea rcx, [rsp + 0x180]
call fcn.14004b030
mov rdx, qword [rsp + 0x190]
mov rax, qword [rsp + 0x188]
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], rdi
mov qword [rax + rcx + 8], rsi
mov qword [rax + rcx + 0x10], 0x40
mov byte [rax + rcx + 0x18], r14b
inc rdx
mov qword [rsp + 0x190], rdx
mov rdx, qword [rsp + 0x1a8]
cmp rdx, qword [rsp + 0x198]
jne 0x140047120
lea rcx, [rsp + 0x198]
call fcn.14004b240
mov rdx, qword [rsp + 0x1a8]
jmp 0x140047120
lea rcx, [rsp + 0x180]
xor edx, edx
mov r8, rsi
call fcn.14004bb60
mov rax, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a8]
sub rax, rdx
cmp rax, rsi
jae 0x140045a2f
lea rcx, [rsp + 0x198]
mov r8, rsi
call fcn.14004b9f0
jmp 0x140045a2f
mov rax, qword [rsp + 0xd8]
mov qword [rax], 1
mov rax, qword [rsp + 0x7a0]
movabs rcx, 0x8000000000000000
cmp rax, rcx
je 0x140047335
test rax, rax
je 0x140047335
mov r8, qword [rsp + 0x7a8]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x7c8]
lock dec qword [rax]
je 0x1400473c1
mov rax, qword [rsp + 0x7b8]
lock dec qword [rax]
je 0x1400473e0
mov rax, qword [rsp + 0x7e8]
lock dec qword [rax]
je 0x1400473ff
sub r13, rbx
jne 0x140047411
jmp 0x14004743c
mov rax, qword [rsp + 0x118]
lock dec qword [rax]
jne 0x140047390
lea rcx, [rsp + 0xb0]
call fcn.140048280
lock dec qword [r13]
jne 0x14004739f
mov rcx, r13
call fcn.1400484a0
mov rax, qword [rsp + 0xd8]
mov qword [rax], 2
mov qword [rax + 8], rsi
mov r13, qword [rsp + 0xe8]
sub r13, rbx
jne 0x140047411
jmp 0x14004743c
lea rcx, [rsp + 0x7c8]
call fcn.140048780
mov rax, qword [rsp + 0x7b8]
lock dec qword [rax]
jne 0x140047355
lea rcx, [rsp + 0x7b8]
call fcn.140048780
mov rax, qword [rsp + 0x7e8]
lock dec qword [rax]
jne 0x140047367
mov rcx, qword [rsp + 0x7e8]
call fcn.140048500
sub r13, rbx
je 0x14004743c
shr r13, 5
jmp 0x140047429
add rbx, 0x20
dec r13
je 0x14004743c
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x140047420
mov rcx, rbx
call fcn.140048780
jmp 0x140047420
cmp qword [rsp + 0x110], 0
je 0x14004745d
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, qword [rsp + 0x90]
call sub.KERNEL32.dll_HeapFree
sub r15, r14
je 0x14004748c
shr r15, 4
jmp 0x140047479
add r14, 0x10
dec r15
je 0x14004748c
mov rax, qword [r14]
lock dec qword [rax]
jne 0x140047470
mov rcx, r14
call fcn.140048780
jmp 0x140047470
cmp qword [rsp + 0x108], 0
je 0x1400474ad
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, qword [rsp + 0x88]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x130]
lock dec qword [rax]
jne 0x14004758a
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x210]
test rax, rax
je 0x14004758a
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rcx + 0x208]
shl rax, 3
lea r14, [rax + rax*8]
mov r15d, 0x10
xor r12d, r12d
xor r13d, r13d
jmp 0x140047518
mov rcx, rsi
call fcn.140114c68
add r12, 0x48
sub r15, 0xffffffffffffff80
inc r13
cmp r14, r12
je 0x14004758a
mov eax, 3
xchg qword [rbx + r12 + 0x30], rax
cmp rax, 2
jne 0x140047508
mov rax, qword [rsp + 0x78]
cmp qword [rax + 0x1f0], r13
jbe 0x14004761a
mov rdi, qword [rax + 0x1e8]
lea rsi, [rdi + r15]
add rsi, 0xfffffffffffffff0
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
movzx eax, byte [rdi + r15 - 8]
test al, al
jne 0x14004761a
cmp byte [rdi + r15 - 7], 0
je 0x140047500
mov byte [rdi + r15 - 7], 0
add rdi, r15
mov rcx, rdi
call sub.KERNEL32.dll_WakeConditionVariable
mov rax, qword [rsp + 0x78]
lock dec qword [rax + 0x1f8]
jmp 0x140047500
mov rcx, qword [rsp + 0x78]
lock dec qword [rcx]
mov rbx, qword [rsp + 0x68]
jne 0x140046fe0
call fcn.140048500
jmp 0x140046fe0
xor r9d, r9d
jmp 0x140045744
xor edi, edi
mov rbx, qword [rsp + 0x68]
test rcx, rcx
jne 0x1400458d0
jmp 0x1400458de
lea rcx, [rsp + 0x198]
mov r8, rsi
call fcn.14004b9f0
jmp 0x14004710c
shl rcx, 1
test rcx, rcx
je 0x1400458e9
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400458e9
add rcx, 0x10
xor edx, edx
call fcn.1400ee8d0
ud2
lock dec qword [r12]
jne 0x14004761a
mov rcx, r12
call fcn.1400f4120
ud2
test rax, rax
ud2