Function at 0x1400254d0
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, 0x838
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x7a0], xmm8
movdqa xmmword [rbp + 0x790], xmm7
movaps xmmword [rbp + 0x780], xmm6
and rsp, 0xffffffffffffff80
mov r15, rdx
mov qword [rsp + 0xe8], rcx
mov rax, qword [rdx + 0x10]
test rax, rax
jne 0x1400256ae
lea rdx, str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUS
lea rcx, [rsp + 0x200]
mov r8d, 0x11
call fcn.140085a00
mov rax, qword [rsp + 0x200]
movabs rdi, 0x8000000000000000
movabs rsi, 0x8000000000000001
cmp rax, rdi
je 0x1400255d6
cmp rax, rsi
jne 0x1400255bb
mov rcx, qword [rsp + 0x208]
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x1400255d6
mov r8, qword [rsp + 0x210]
mov r9, qword [rsp + 0x218]
test r9, r9
jne 0x140027074
xor ebx, ebx
test rcx, rcx
je 0x1400255a9
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r14, rax
call sub.KERNEL32.dll_HeapFree
mov rax, r14
test bl, bl
je 0x1400255d6
test rax, rax
je 0x140025675
jmp 0x1400256ae
test rax, rax
je 0x1400255d6
mov r8, qword [rsp + 0x208]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
lea rdx, [0x1401d1b29]
lea rcx, [rsp + 0x200]
mov r8d, 0x11
call fcn.140085a00
mov rax, qword [rsp + 0x200]
cmp rax, rdi
je 0x140025675
cmp rax, rsi
jne 0x14002565a
mov rcx, qword [rsp + 0x208]
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x140025675
mov r8, qword [rsp + 0x210]
mov r9, qword [rsp + 0x218]
test r9, r9
jne 0x1400270ea
xor esi, esi
test rcx, rcx
je 0x14002564d
mov rcx, qword [0x1402540f8]
xor edx, edx
mov rdi, rax
call sub.KERNEL32.dll_HeapFree
mov rax, rdi
test rax, rax
setne cl
test sil, cl
je 0x140025675
jmp 0x1400256ae
test rax, rax
je 0x140025675
mov r8, qword [rsp + 0x208]
mov rcx, qword [0x1402540f8]
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 r13d, 0xffff
mov qword [rsp + 0x70], rax
cmovb r13, rax
mov qword [rsp + 0xa0], r15
movzx r12d, byte [r15 + 0x59]
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 rcx, [rsp + 0x200]
xor edx, edx
mov r8, r13
call fcn.1400cbb20
mov rax, qword [rsp + 0x218]
mov rdx, qword [rsp + 0x228]
sub rax, rdx
cmp rax, r13
jae 0x140025745
lea rcx, [rsp + 0x218]
mov r8, r13
call fcn.140028610
lea r14, [rsp + 0x200]
mov qword [rsp + 0x80], r13
jmp 0x14002578d
mov rbx, qword [rsp + 0x220]
mov rax, rdx
shl rax, 4
mov qword [rbx + rax], rsi
mov byte [rbx + rax + 8], dil
lea rsi, [rdx + 1]
mov qword [rsp + 0x228], rsi
dec r13
je 0x1400258ec
mov ecx, 0x40
call fcn.1400288e0
mov rbx, rax
movzx eax, byte [0x140254141]
mov edx, 0x10
xor ecx, ecx
call fcn.14008bd10
mov r15, rax
test r12b, r12b
je 0x140025800
test r15, r15
je 0x140027404
mov qword [r15], rbx
mov qword [r15 + 8], 0x40
movzx eax, byte [0x140254141]
mov edx, 0x200
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov rsi, rax
and rsi, 0xffffffffffffff80
sub rsi, 0xffffffffffffff80
xor edi, edi
jmp 0x14002583e
test r15, r15
je 0x140027404
mov qword [r15], rbx
mov qword [r15 + 8], 0x40
movzx eax, byte [0x140254141]
mov edx, 0x200
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov rsi, rax
and rsi, 0xffffffffffffff80
sub rsi, 0xffffffffffffff80
mov dil, 1
mov qword [rsi - 8], rax
mov qword [rsi], 1
mov qword [rsi + 8], 1
mov qword [rsi + 0x80], r15
movaps xmmword [rsi + 0x100], xmm6
lock inc qword [rsi]
jle 0x140027404
mov rdx, qword [rsp + 0x210]
cmp rdx, qword [rsp + 0x200]
jne 0x14002588b
mov rcx, r14
call fcn.140045c50
mov rdx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x208]
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], rsi
mov qword [rax + rcx + 8], rbx
mov qword [rax + rcx + 0x10], 0x40
mov byte [rax + rcx + 0x18], dil
inc rdx
mov qword [rsp + 0x210], rdx
mov rdx, qword [rsp + 0x228]
cmp rdx, qword [rsp + 0x218]
jne 0x140025760
lea rcx, [rsp + 0x218]
call fcn.140028560
mov rdx, qword [rsp + 0x228]
jmp 0x140025760
mov qword [rsp + 0x88], rdx
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x90], 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 rcx, [rsp + 0x200]
xor edx, edx
mov rdi, qword [rsp + 0x80]
mov r8, rdi
call fcn.1400cbb20
mov rax, qword [rsp + 0x218]
mov rdx, qword [rsp + 0x228]
sub rax, rdx
cmp rax, rdi
jb 0x140026f82
lea r12, [rsp + 0x200]
jmp 0x1400259dd
mov r14, qword [rsp + 0x220]
mov rax, r15
shl rax, 4
mov qword [r14 + rax], r13
mov byte [r14 + rax + 8], 0
inc r15
mov qword [rsp + 0x228], r15
dec rdi
je 0x140025af8
mov ecx, 0x40
call fcn.1400288e0
mov r14, rax
movzx eax, byte [0x140254141]
mov edx, 0x10
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov r15, rax
mov qword [rax], r14
mov qword [rax + 8], 0x40
movzx eax, byte [0x140254141]
mov edx, 0x200
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov r13, rax
and r13, 0xffffffffffffff80
mov qword [r13 + 0x78], rax
mov qword [r13 + 0x80], 1
mov qword [r13 + 0x88], 1
mov qword [r13 + 0x100], r15
movaps xmmword [r13 + 0x180], xmm6
lock inc qword [r13 + 0x80]
jle 0x140027404
mov rdx, qword [rsp + 0x210]
cmp rdx, qword [rsp + 0x200]
jne 0x140025a90
mov rcx, r12
call fcn.140045c50
mov rdx, qword [rsp + 0x210]
sub r13, 0xffffffffffffff80
mov rax, qword [rsp + 0x208]
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], r13
mov qword [rax + rcx + 8], r14
mov qword [rax + rcx + 0x10], 0x40
mov byte [rax + rcx + 0x18], 0
inc rdx
mov qword [rsp + 0x210], rdx
mov r15, qword [rsp + 0x228]
cmp r15, qword [rsp + 0x218]
jne 0x1400259b0
lea rcx, [rsp + 0x218]
mov rdx, r15
call fcn.140028560
mov r15, qword [rsp + 0x228]
jmp 0x1400259b0
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0xd0], rax
movdqu xmm0, xmmword [rsp + 0x200]
movdqa xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x218]
mov r12, rsi
shl r12, 4
add r12, rbx
test rsi, rsi
je 0x140025cb1
mov qword [rsp + 0xe0], rax
movabs rax, 0x1c71c71c71c71c7
cmp rsi, rax
ja 0x140027404
lea rax, [rsi*8]
lea rdx, [rax + rax*8]
movzx eax, byte [0x140254141]
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
lea rdx, [rsp + 0x207]
lea r8, [rsp + 0x137]
mov qword [rsp + 0x98], rax
mov r9, rax
add r9, 0x40
movabs rcx, 0xfffffffffffffff
mov rax, qword [rsp + 0x88]
and rax, rcx
inc rax
pxor xmm0, xmm0
mov r10, rbx
mov rcx, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov r11, qword [r10]
movzx r13d, byte [r10 + 8]
movdqu xmmword [rdx], xmm0
mov byte [rdx + 0x10], 0
movdqu xmmword [r8], xmm0
mov qword [r9 - 0x40], 0
mov byte [r9 - 0x38], 0
movups xmm1, xmmword [rsp + 0x200]
movups xmmword [r9 - 0x37], xmm1
mov rdi, qword [rsp + 0x210]
mov qword [r9 - 0x27], rdi
movdqu xmm1, xmmword [rsp + 0x130]
movdqu xmmword [r9 - 0x1f], xmm1
mov rdi, qword [rsp + 0x13f]
mov qword [r9 - 0x10], rdi
mov qword [r9 - 8], r11
mov byte [r9], r13b
add r9, 0x48
add r10, 0x10
cmp r10, r12
jne 0x140025bc0
cmp qword [rsp + 0x90], 0
je 0x140025c51
mov rcx, qword [0x1402540f8]
mov r12, rax
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov rax, r12
mov rcx, qword [rsp + 0x70]
test rcx, rcx
mov qword [rsp + 0x88], rax
je 0x140025d07
mov rdi, qword [rsp + 0x80]
mov rdx, rdi
shl rdx, 7
movzx eax, byte [0x140254141]
sub rdx, 0xffffffffffffff80
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov edx, eax
and edx, 0x7f
mov r13, rax
and r13, 0xffffffffffffff80
mov qword [r13 + 0x78], rax
mov ecx, edi
and ecx, 3
cmp qword [rsp + 0x70], 4
jae 0x140025d15
xor r12d, r12d
jmp 0x140025dab
cmp r12, rbx
jne 0x140025cf4
mov qword [rsp + 0xe0], rax
mov eax, 8
mov qword [rsp + 0x98], rax
xor eax, eax
mov rcx, qword [rsp + 0x70]
cmp qword [rsp + 0x90], 0
jne 0x140025c35
jmp 0x140025c51
add rbx, 0x10
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x140025cf0
mov rcx, rbx
call fcn.140029300
jmp 0x140025cf0
mov r13d, pe_nt_image_headers64
xor r12d, r12d
jmp 0x140025df2
mov r8d, edi
and r8d, 0xfffc
mov r9, rax
sub r9, rdx
add r9, 0x210
xor r12d, r12d
nop
mov qword [r9 - 0x190], 0
mov byte [r9 - 0x188], 0
mov qword [r9 - 0x180], 0
mov qword [r9 - 0x110], 0
mov byte [r9 - 0x108], 0
mov qword [r9 - 0x100], 0
mov qword [r9 - 0x90], 0
mov byte [r9 - 0x88], 0
mov qword [r9 - 0x80], 0
add r12, 4
mov qword [r9 - 0x10], 0
mov byte [r9 - 8], 0
mov qword [r9], 0
add r9, 0x200
cmp r8, r12
jne 0x140025d30
sub r13, 0xffffffffffffff80
test rcx, rcx
je 0x140025df2
mov r8, r12
shl r8, 7
sub r8, rdx
add rax, r8
add rax, 0x90
neg rcx
xor edx, edx
nop dword [rax]
mov qword [rax - 0x10], 0
mov byte [rax - 8], 0
mov qword [rax], 0
sub rax, 0xffffffffffffff80
dec rdx
cmp rcx, rdx
jne 0x140025dd0
sub r12, 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 [0x140254141]
mov edx, 0x5f0
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
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
mov rax, qword [rsp + 0xa0]
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
movzx eax, byte [0x140254141]
mov edx, 0x300
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
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], rbx
mov qword [rcx + 0x180], 0
mov qword [rcx + 0x188], rbx
mov qword [rcx + 0x200], 0
movdqa xmm0, xmmword [rsp + 0xc0]
movdqu xmmword [rcx + 0x208], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rcx + 0x218], rax
movaps xmmword [rcx + 0x220], xmm6
movdqa xmmword [rcx + 0x230], xmm7
movaps xmmword [rcx + 0x240], xmm8
mov qword [rcx + 0x250], 1
mov rax, qword [rsp + 0x80]
mov qword [rcx + 0x258], rax
mov qword [rcx + 0x260], r13
mov qword [rcx + 0x268], r12
lea rdi, [rcx + 0x80]
mov qword [rcx + 0x270], 0
mov qword [rcx + 0x278], rsi
mov rax, qword [rsp + 0x98]
mov qword [rcx + 0x280], rax
mov rax, qword [rsp + 0x88]
mov qword [rcx + 0x288], rax
mov rax, qword [rsp + 0xb0]
mov r12, rax
shl r12, 5
mov rbx, qword [rsp + 0xa8]
add r12, rbx
shl r15, 4
add r15, r14
mov r13, r14
test rax, rax
je 0x140026dce
add rcx, 0x250
mov qword [rsp + 0x148], rcx
xor eax, eax
mov qword [rsp + 0x80], rax
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x1401b1be0]
mov r13, r14
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x118], r12
jmp 0x140026538
mov rsi, qword [rdi + 0x200]
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov byte [rsi + 8], 1
lea rcx, [rsi + 0x10]
call sub.KERNEL32.dll_WakeAllConditionVariable
mov rcx, rsi
call fcn.140110008
inc qword [rsp + 0x80]
mov rax, rbx
cmp rbx, r12
je 0x140026dfc
lea rbx, [rax + 0x20]
movzx esi, byte [rax + 0x18]
cmp sil, 2
je 0x140026dce
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 r13, r15
je 0x140026db0
lea rcx, [rax + 0x19]
mov rdx, qword [r13]
mov qword [rsp + 0x88], rdx
movzx r12d, byte [r13 + 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 + 0xb8], eax
mov dword [rsp + 0xbb], ecx
mov rdi, qword [rsp + 0xa0]
mov rdx, qword [rdi + 0x28]
movabs r8, 0x8000000000000000
test rdx, rdx
je 0x140026614
mov rax, qword [rdi + 0x30]
lea rcx, [rsp + 0x200]
mov r8, qword [rsp + 0x80]
call qword [rax + 0x20]
mov r8, qword [rsp + 0x200]
lea rax, [rsp + 0x219]
movups xmm0, xmmword [rax - 0x11]
movaps xmmword [rsp + 0xc0], xmm0
mov r10, qword [rdi]
mov r11, qword [rdi + 8]
mov r9, qword [rsp + 0x70]
lock inc qword [r9]
jle 0x140027404
add r13, 0x10
mov qword [rsp + 0x188], r8
movaps xmm0, xmmword [rsp + 0xc0]
lea rdx, [rsp + 0x1b0]
movups xmmword [rdx - 0x20], xmm0
mov qword [rsp + 0x178], r10
mov qword [rsp + 0x180], r11
mov rax, qword [rsp + 0x1f0]
mov qword [rdx + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x1e0]
movdqu xmmword [rdx], xmm0
mov byte [rsp + 0x1c8], sil
mov eax, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xbb]
mov dword [rdx + 0x1c], ecx
mov dword [rdx + 0x19], eax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x1a0], rax
mov byte [rsp + 0x1a8], r12b
mov qword [rsp + 0x1d0], r9
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x1d8], rax
test rax, rax
mov qword [rsp + 0x88], r8
jne 0x1400267a0
mov rax, qword [rsp + 0xa0]
cmp byte [rax + 0x58], 0
je 0x1400267a0
xor ecx, ecx
call fcn.140024e10
test rax, rax
mov r12, qword [rsp + 0x118]
je 0x140027404
cmp qword [rax], 0
lea rdi, [rsp + 0x200]
mov rcx, qword [rsp + 0x88]
jne 0x140026f97
mov rcx, rdi
lea rdx, [rsp + 0x178]
call fcn.140024020
movzx eax, byte [0x140254141]
mov edx, 0x200
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
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.140024e10
test rax, rax
je 0x140027404
cmp qword [rax], 0
mov rdi, qword [rsp + 0x70]
jne 0x140027404
mov qword [rax], rsi
cmp qword [rdi + 0x208], 0
jne 0x140026500
jmp 0x140027404
mov qword [rsp + 0xb0], r11
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x120], 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 rdi, rax
cmp r8, rax
mov r12, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x128], r10
je 0x140026889
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x140026866
js 0x140027404
movzx eax, byte [0x140254141]
xor ecx, ecx
mov rdx, rdi
call fcn.14008bd10
mov rsi, rax
test rax, rax
jne 0x14002686b
jmp 0x140027404
mov esi, 1
mov rcx, rsi
mov rdx, qword [rsp + 0x120]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, rdi
mov r10, qword [rsp + 0x128]
mov rax, qword [rsp + 0xb0]
test r10, r10
mov qword [rsp + 0x90], rdx
jne 0x1400268ab
call fcn.140091f80
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x150], rax
movabs rax, 0x8000000000000000
cmp rdi, rax
mov qword [rsp + 0x158], rsi
jne 0x1400268e0
xor eax, eax
jmp 0x140026af0
cmp rdx, 0x10
jae 0x140026917
test rdx, rdx
je 0x1400269c2
xor eax, eax
nop word cs:[rax + rax]
cmp byte [rsi + rax], 0
je 0x140027404
inc rax
cmp rdx, rax
jne 0x140026900
jmp 0x1400269c2
lea rax, [rsi + 7]
and rax, 0xfffffffffffffff8
sub rax, rsi
jne 0x14002692c
lea rcx, [rdx - 0x10]
xor eax, eax
jmp 0x140026965
cmp rax, rdx
cmovae rax, rdx
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [rsi + rcx], 0
je 0x140027404
inc rcx
cmp rax, rcx
jne 0x140026940
lea rcx, [rdx - 0x10]
nop word cs:[rax + rax]
cmp rax, rcx
ja 0x140026999
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 0x140026999
add rax, 0x10
jmp 0x140026960
mov rdx, qword [rsp + 0x90]
cmp rax, rdx
je 0x1400269c2
nop word cs:[rax + rax]
cmp byte [rsi + rax], 0
je 0x140027404
inc rax
cmp rdx, rax
jne 0x1400269b0
mov qword [rsp + 0xf0], rdi
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0x100], rdx
mov rax, rsi
cmp rdi, rdx
jne 0x140026a69
mov rdi, rdx
inc rdi
je 0x140027404
test rdx, rdx
je 0x140026a0e
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xd0], rdx
mov eax, 1
jmp 0x140026a10
xor eax, eax
mov rdx, rdi
not rdx
shr rdx, 0x3f
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x130]
mov r8, rdi
lea r9, [rsp + 0xc0]
call fcn.14000cd20
cmp qword [rsp + 0x130], 0
jne 0x1400273fb
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0xf0], rdi
mov rdx, qword [rsp + 0x90]
mov rsi, rdx
cmp rdx, rdi
jne 0x140026a96
lea rcx, [rsp + 0xf0]
mov rdx, qword [rsp + 0x90]
call fcn.14000cdb0
mov rax, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x100]
mov byte [rax + rsi], 0
inc rsi
mov qword [rsp + 0x100], rsi
mov rax, qword [rsp + 0xf8]
cmp qword [rsp + 0xf0], rsi
jbe 0x140026af0
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rax
test rsi, rsi
je 0x140026ada
mov r9, rsi
call sub.KERNEL32.dll_HeapReAlloc
test rax, rax
jne 0x140026af0
jmp 0x140027404
call sub.KERNEL32.dll_HeapFree
mov eax, 1
nop word cs:[rax + rax]
mov qword [rsp + 0x78], rax
movzx eax, byte [0x140254141]
mov edx, 0x30
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov rdi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov rax, qword [rsp + 0x78]
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rsi
mov rax, qword [0x1402540d8]
nop word [rax + rax]
mov rcx, rax
inc rcx
je 0x140027404
lock cmpxchg qword [0x1402540d8], rcx
jne 0x140026b40
mov qword [rdi + 0x10], rcx
mov byte [rdi + 0x28], 0
lock inc qword [rdi]
jle 0x140027404
movzx eax, byte [0x140254141]
mov edx, 0x30
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov rsi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
movups xmmword [rax + 0x10], xmm6
mov qword [rsp + 0xc0], rax
lock inc qword [rax]
jle 0x140027404
movzx eax, byte [0x140254058]
test al, al
je 0x140026c20
mov byte [0x140254058], 1
xor ecx, ecx
call fcn.1400878f0
test rax, rax
je 0x140027404
mov rcx, qword [rax]
mov qword [rax], 0
test rcx, rcx
je 0x140026c20
mov rax, rcx
mov qword [rsp + 0x78], rcx
lock inc qword [rcx]
jle 0x140027404
mov byte [0x140254058], 1
xor ecx, ecx
call fcn.1400878f0
test rax, rax
je 0x1400273e4
mov rcx, qword [rax]
mov rdx, qword [rsp + 0x78]
mov qword [rax], rdx
test rcx, rcx
jne 0x140026c58
jmp 0x140026c6c
movzx eax, byte [0x140254058]
test al, al
je 0x140026c65
mov byte [0x140254058], 1
xor ecx, ecx
call fcn.1400878f0
test rax, rax
je 0x140027404
mov rcx, qword [rax]
mov qword [rax], 0
xor eax, eax
mov qword [rsp + 0x78], rax
test rcx, rcx
je 0x140026c6c
lock dec qword [rcx]
jne 0x140026c6c
call fcn.140087690
jmp 0x140026c6c
xor eax, eax
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x110], rax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x140026c90
lock inc qword [rcx + 0x18]
jle 0x1400273d7
movzx eax, byte [0x140254141]
mov edx, pe_nt_image_headers64
xor ecx, ecx
call fcn.14008bd10
test rax, rax
je 0x140027404
mov qword [rax], rdi
mov qword [rax + 8], rsi
mov rcx, qword [rsp + 0x78]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x128]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0xb0]
mov qword [rax + 0x20], rcx
mov rcx, qword [rsp + 0x88]
mov qword [rax + 0x28], rcx
mov rcx, qword [rsp + 0x120]
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 + 0x150]
mov rdx, rax
lea r8, [0x1401d1b40]
call fcn.140087b60
test rax, rax
jne 0x140027019
mov qword [rsp + 0x160], rdi
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rdx
mov rcx, rdx
call sub.KERNEL32.dll_CloseHandle
lock dec qword [rdi]
jne 0x140026d87
mov rcx, qword [rsp + 0x160]
call fcn.1400c1ef0
mov rax, qword [rsp + 0x168]
lock dec qword [rax]
mov rdi, qword [rsp + 0x70]
jne 0x140026524
lea rcx, [rsp + 0x168]
call fcn.140028eb0
jmp 0x140026524
mov rax, qword [rsp + 0x200]
lock dec qword [rax]
jne 0x140026dcb
lea rcx, [rsp + 0x200]
call fcn.140029300
mov r13, r15
sub r12, rbx
je 0x140026dfc
shr r12, 5
jmp 0x140026de9
add rbx, 0x20
dec r12
je 0x140026dfc
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x140026de0
mov rcx, rbx
call fcn.140029300
jmp 0x140026de0
cmp qword [rsp + 0x108], 0
je 0x140026e1d
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, qword [rsp + 0xa8]
call sub.KERNEL32.dll_HeapFree
sub r15, r13
je 0x140026e4d
shr r15, 4
jmp 0x140026e39
add r13, 0x10
dec r15
je 0x140026e4d
mov rax, qword [r13]
lock dec qword [rax]
jne 0x140026e30
mov rcx, r13
call fcn.140029300
jmp 0x140026e30
cmp qword [rsp + 0xe0], 0
je 0x140026e69
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0xe8]
mov qword [rax + 8], rdi
mov qword [rax], 3
mov rbx, qword [rsp + 0xa0]
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x140026eb9
mov rdi, qword [rbx + 0x20]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x140026eb9
cmp qword [rdi + 0x10], 0x11
jb 0x140026ea8
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbx + 0x28]
test rsi, rsi
je 0x140026eee
mov rdi, qword [rbx + 0x30]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x140026eee
cmp qword [rdi + 0x10], 0x11
jb 0x140026edd
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbx + 0x38]
test rsi, rsi
je 0x140026f23
mov rdi, qword [rbx + 0x40]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x140026f23
cmp qword [rdi + 0x10], 0x11
jb 0x140026f12
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbx + 0x48]
test rsi, rsi
je 0x140026f58
mov rdi, qword [rbx + 0x50]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x140026f58
cmp qword [rdi + 0x10], 0x11
jb 0x140026f47
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
movaps xmm6, xmmword [rbp + 0x780]
movaps xmm7, xmmword [rbp + 0x790]
movaps xmm8, xmmword [rbp + 0x7a0]
lea rsp, [rbp + 0x7b8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [rsp + 0x218]
mov r8, rdi
call fcn.140028610
jmp 0x1400259a5
mov rax, qword [rsp + 0xe8]
mov qword [rax], 1
movabs rax, 0x8000000000000000
cmp rcx, rax
je 0x140026fd0
test rcx, rcx
je 0x140026fd0
mov r8, qword [rsp + 0x190]
mov rcx, qword [0x1402540f8]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x1b0]
lock dec qword [rax]
mov rsi, qword [rsp + 0x70]
je 0x140027157
mov rax, qword [rsp + 0x1a0]
lock dec qword [rax]
je 0x140027176
mov rax, qword [rsp + 0x1d0]
lock dec qword [rax]
je 0x140027195
sub r12, rbx
jne 0x1400271a7
jmp 0x1400271cc
mov rax, qword [rsp + 0x110]
lock dec qword [rax]
jne 0x14002703a
lea rcx, [rsp + 0xc0]
mov rsi, rdx
call fcn.140028eb0
mov rdx, rsi
lock dec qword [rdi]
jne 0x14002704e
mov rcx, rdi
mov rsi, rdx
call fcn.1400c1ef0
mov rdx, rsi
mov rax, qword [rsp + 0xe8]
mov qword [rax], 2
mov qword [rax + 8], rdx
mov rsi, qword [rsp + 0x70]
sub r12, rbx
jne 0x1400271a7
jmp 0x1400271cc
movzx eax, byte [r8]
cmp eax, 0x2b
je 0x14002731c
cmp eax, 0x2d
jne 0x140027090
cmp r9, 1
je 0x14002558e
mov r10, r8
cmp r9, 0x10
jbe 0x140027333
xor r11d, r11d
mov ebx, 0xa
xor eax, eax
nop word [rax + rax]
cmp r9, r11
je 0x140027366
movzx r14d, byte [r10 + r11]
mul rbx
seto dl
add r14d, 0xffffffd0
cmp r14d, 9
ja 0x14002558e
test dl, dl
jne 0x14002558e
mov edx, r14d
inc r11
add rax, rdx
jae 0x1400270b0
jmp 0x14002558e
movzx eax, byte [r8]
cmp eax, 0x2b
je 0x140027376
cmp eax, 0x2d
jne 0x140027106
cmp r9, 1
je 0x140025632
mov r10, r8
cmp r9, 0x10
jbe 0x14002738d
xor r11d, r11d
mov esi, 0xa
xor eax, eax
nop dword [rax]
cmp r9, r11
je 0x1400273c6
movzx edi, byte [r10 + r11]
mul rsi
seto dl
add edi, 0xffffffd0
cmp edi, 9
ja 0x140025632
test dl, dl
jne 0x140025632
mov edx, edi
inc r11
add rax, rdx
jae 0x140027120
jmp 0x140025632
lea rcx, [rsp + 0x1b0]
call fcn.140029300
mov rax, qword [rsp + 0x1a0]
lock dec qword [rax]
jne 0x140026ff9
lea rcx, [rsp + 0x1a0]
call fcn.140029300
mov rax, qword [rsp + 0x1d0]
lock dec qword [rax]
jne 0x14002700b
mov rcx, qword [rsp + 0x1d0]
call fcn.1400290d0
sub r12, rbx
je 0x1400271cc
shr r12, 5
jmp 0x1400271b9
add rbx, 0x20
dec r12
je 0x1400271cc
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x1400271b0
mov rcx, rbx
call fcn.140029300
jmp 0x1400271b0
cmp qword [rsp + 0x108], 0
je 0x1400271ed
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, qword [rsp + 0xa8]
call sub.KERNEL32.dll_HeapFree
sub r15, r13
je 0x14002721d
shr r15, 4
jmp 0x140027209
add r13, 0x10
dec r15
je 0x14002721d
mov rax, qword [r13]
lock dec qword [rax]
jne 0x140027200
mov rcx, r13
call fcn.140029300
jmp 0x140027200
cmp qword [rsp + 0xe0], 0
je 0x140027239
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x148]
lock dec qword [rax]
jne 0x1400272fd
mov rax, qword [rsi + 0x208]
test rax, rax
je 0x1400272fd
mov r14, qword [rsi + 0x200]
shl rax, 3
lea rdx, [rax + rax*8]
mov r15d, 0x10
xor r12d, r12d
xor r13d, r13d
mov qword [rsp + 0x80], rdx
jmp 0x1400272a3
mov rcx, rsi
call fcn.140110008
mov rsi, rbx
mov rdx, qword [rsp + 0x80]
add r12, 0x48
sub r15, 0xffffffffffffff80
inc r13
cmp rdx, r12
je 0x1400272fd
mov eax, 3
xchg qword [r14 + r12 + 0x30], rax
cmp rax, 2
jne 0x140027293
cmp qword [rsi + 0x1e8], r13
jbe 0x140027404
mov rbx, rsi
mov rdi, qword [rsi + 0x1e0]
lea rsi, [rdi + r15]
add rsi, 0xfffffffffffffff0
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
cmp byte [rdi + r15 - 8], 0
je 0x140027280
mov byte [rdi + r15 - 8], 0
add rdi, r15
mov rcx, rdi
call sub.KERNEL32.dll_WakeConditionVariable
lock dec qword [rbx + 0x1f0]
jmp 0x140027280
lock dec qword [rsi]
mov rbx, qword [rsp + 0xa0]
jne 0x140026e84
mov rcx, rsi
call fcn.1400290d0
jmp 0x140026e84
dec r9
je 0x14002558e
lea r10, [r8 + 1]
cmp r9, 0x11
jae 0x14002709d
xor edx, edx
xor eax, eax
nop word [rax + rax]
movzx r11d, byte [r10 + rdx]
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x14002558e
lea rax, [rax + rax*4]
mov r11d, r11d
lea rax, [r11 + rax*2]
inc rdx
cmp r9, rdx
jne 0x140027340
mov bl, 1
test rcx, rcx
jne 0x140025595
jmp 0x1400255a9
dec r9
je 0x140025632
lea r10, [r8 + 1]
cmp r9, 0x11
jae 0x140027113
xor edx, edx
xor eax, eax
nop word cs:[rax + rax]
movzx r11d, byte [r10 + rdx]
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x140025632
lea rax, [rax + rax*4]
mov r11d, r11d
lea rax, [r11 + rax*2]
inc rdx
cmp r9, rdx
jne 0x1400273a0
mov sil, 1
test rcx, rcx
jne 0x140025639
jmp 0x14002564d
add rcx, 0x10
xor edx, edx
call fcn.1400876e0
ud2
mov rax, qword [rsp + 0x78]
lock dec qword [rax]
jne 0x140027404
mov rcx, qword [rsp + 0x78]
call fcn.140087690
ud2
cmp qword [rsp + 0x138], 0
ud2