Function at 0x140002eb5
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
mov rbx, rcx
cmp qword [rcx + 0x208], 0
mov qword [rsp + 0x20], rcx
je 0x140002f30
cmp qword [rbx + 0x238], 0
je 0x14000423a
mov rsi, qword [rbx + 0x240]
lea rdi, [rsi + 0xc8]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0xc8], cl
jne 0x14000419a
cmp byte [rsi + 0xf8], 0
je 0x14000308c
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi], cl
je 0x1400031d1
mov rcx, rdi
call fcn.140086b5d
jmp 0x1400031d1
mov rdx, qword [rbx + 0x238]
mov r8, qword [rbx + 0x240]
lea rcx, [rsp + 0x180]
call fcn.140042774
cmp qword [rbx + 0x238], 0
jne 0x14000423a
xor esi, esi
xchg qword [rbx + 0x230], rsi
test rsi, rsi
je 0x1400041a7
mov rdi, qword [rbx + 0x240]
lock inc qword [rdi]
jle 0x14000423a
lea rax, [rbx + 0x210]
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xf8], xmm0
xor ecx, ecx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], 8
mov qword [rsp + 0x108], rax
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x168]
cmp eax, 1
je 0x14000301e
test eax, eax
jne 0x140003064
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rbx, qword [rcx + rax*8]
lea rcx, [rbx + 0x118]
lea rdx, [0x140040434]
call fcn.1400362ce
mov byte [rbx + 0x168], 1
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movabs rcx, 0x7fffffffffffffff
cmp qword [rax + 0x118], rcx
jae 0x14000423e
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp dword [rax + 0x120], 2
jne 0x1400030df
add rdi, 0x10
mov rcx, rsi
mov rdx, rdi
call fcn.140042a0c
lea rdi, [rsp + 0xc8]
mov qword [rdi + 0x18], rsi
mov qword [rdi + 0x10], 0
jmp 0x1400031aa
mov byte [rsi + 0xf8], 1
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi + 0xc8], cl
jne 0x14000422d
mov rdi, qword [rsi + 0x68]
test rdi, rdi
je 0x1400031d1
mov rbx, qword [rsi + 0x60]
add rsi, 0x120
shl rdi, 4
xor r14d, r14d
mov rcx, qword [rbx + r14 + 8]
mov rdx, rsi
call fcn.1400413d2
add r14, 0x10
cmp rdi, r14
jne 0x1400030c4
jmp 0x1400031d1
lea rax, [rsp + 0x50]
lea rsi, [rsp + 0xc8]
mov ecx, 9
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
cmp qword [rax], 0
jne 0x14000423a
cmp qword [rsp + 0x60], 0
jne 0x14000423e
mov rsi, qword [rsp + 0x68]
mov qword [rsp + 0x68], 0
test rsi, rsi
je 0x14000423a
mov qword [rsp + 0x60], 0
mov ecx, dword [0x1400ea9e4]
mov rdx, qword gs:[0x58]
mov rdi, qword [rdx + rcx*8]
mov rbx, qword [rdi + 0x150]
mov qword [rdi + 0x150], rax
mov rax, qword [rsp + 0x20]
mov rdx, qword [rax + 0x240]
add rdx, 0x10
mov rcx, rsi
call fcn.140042a0c
mov qword [rdi + 0x150], rbx
cmp qword [rsp + 0x60], 0
jne 0x14000423e
mov qword [rsp + 0x60], 0xffffffffffffffff
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14000319b
call fcn.140040f11
mov rax, qword [rsp + 0x60]
inc rax
jmp 0x14000319d
xor eax, eax
lea rdi, [rsp + 0x50]
mov qword [rdi + 0x18], rsi
mov qword [rdi + 0x10], rax
mov rcx, rdi
call fcn.140044bd3
mov rcx, rdi
call fcn.140040864
cmp dword [rsp + 0x180], 3
je 0x1400031d1
lea rcx, [rsp + 0x180]
call fcn.1400409e0
mov rbx, qword [rsp + 0x20]
cmp qword [rbx + 0x208], 0
jne 0x1400031f3
xor ecx, ecx
xchg qword [rbx + 0x230], rcx
test rcx, rcx
je 0x1400031f3
call fcn.140040f11
lea rcx, [rbx + 0x238]
call fcn.14005c085
mov rdi, qword [rbx + 0x248]
lea rsi, [rdi + 0x40]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x40], cl
jne 0x140003784
lea r14, [rbx + 0x248]
cmp byte [rdi + 0xc4], 0
je 0x140003244
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi], cl
je 0x140004044
mov rcx, rsi
call fcn.140086b5d
jmp 0x140004044
mov byte [rdi + 0xc4], 1
mov rax, qword [rdi + 0x98]
test rax, rax
je 0x140003269
lock dec qword [rax]
jne 0x140003269
mov rcx, qword [rdi + 0x98]
call fcn.14003f655
mov qword [rdi + 0x98], 0
mov rcx, qword [r14]
mov rdx, qword [rcx + 0xc8]
test rdx, rdx
jne 0x1400041c9
mov rax, qword [rdi + 0xb0]
mov qword [rsp + 0x120], rax
movups xmm0, xmmword [rdi + 0xa0]
movaps xmmword [rsp + 0x110], xmm0
mov qword [rdi + 0xa0], 0
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x100], 0
jne 0x1400032d3
xor ecx, ecx
call fcn.14003f43e
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x108]
mov rdx, qword [rax + 0x110]
lea r8, [rcx + 1]
mov qword [rax + 0x108], r8
movdqu xmm0, xmmword [rdi + 0x68]
movups xmm1, xmmword [rdi + 0x78]
movups xmm2, xmmword [rdi + 0x88]
movaps xmmword [rsp + 0x1a0], xmm2
movaps xmmword [rsp + 0x190], xmm1
movdqa xmmword [rsp + 0x180], xmm0
lea rax, [0x1400e3d80]
mov qword [rdi + 0x68], rax
pxor xmm0, xmm0
movdqu xmmword [rdi + 0x70], xmm0
mov qword [rdi + 0x80], 0
mov qword [rdi + 0x88], rcx
mov qword [rdi + 0x90], rdx
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 0x40], cl
jne 0x1400041da
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x168]
cmp eax, 1
je 0x1400033b4
test eax, eax
jne 0x1400033d4
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rsi, qword [rcx + rax*8]
lea rcx, [rsi + 0x118]
lea rdx, [0x140040434]
call fcn.1400362ce
mov byte [rsi + 0x168], 1
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x166], 2
jne 0x1400041e7
call fcn.14004438a
test rax, rax
mov qword [rsp + 0xa8], r14
je 0x1400035d2
lea rdi, [rsp + 0x50]
mov qword [rdi], rax
mov qword [rdi + 8], rdx
xor r15d, r15d
lea r14, [0x140040434]
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x168]
cmp eax, 1
je 0x14000344f
mov bpl, 2
test eax, eax
jne 0x140003479
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rsi, qword [rcx + rax*8]
lea rcx, [rsi + 0x118]
mov rdx, r14
call fcn.1400362ce
mov byte [rsi + 0x168], 1
mov eax, dword [0x1400ea9e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov bpl, byte [rax + 0x164]
mov sil, byte [rax + 0x165]
mov word [rax + 0x164], 0x8001
mov r13, qword [rbx + 0x250]
test r13, r13
je 0x14000423a
mov rcx, rdi
call fcn.140043275
mov ebx, eax
cmp bl, 2
cmove ebx, r15d
mov r12b, 1
test bl, 1
jne 0x14000355d
mov rax, qword [r13 + 0x30]
test al, 2
jne 0x14000356a
test al, 4
jne 0x14000355a
test al, 1
je 0x14000351a
mov rax, qword [r13 + 0x28]
cmp rax, qword [rsp + 0x58]
jne 0x1400034f8
mov rax, qword [r13 + 0x20]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rax]
cmp rdx, qword [rcx]
jne 0x1400034f8
mov rdx, qword [rax + 8]
cmp rdx, qword [rcx + 8]
jne 0x1400034f8
mov rdx, qword [rax + 0x10]
cmp rdx, qword [rcx + 0x10]
jne 0x1400034f8
mov rax, qword [rax + 0x18]
cmp rax, qword [rcx + 0x18]
je 0x140003545
mov rax, qword [r13 + 0x30]
mov rcx, rax
and rcx, 0xfffffffffffffffe
lock cmpxchg qword [r13 + 0x30], rcx
jne 0x1400034fc
test al, 2
jne 0x140003564
mov rax, qword [r13 + 0x20]
mov rcx, qword [r13 + 0x28]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
call qword [rax]
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rdx
mov rax, qword [r13 + 0x30]
mov rcx, rax
or rcx, 1
lock cmpxchg qword [r13 + 0x30], rcx
jne 0x140003532
test al, 2
jne 0x14000356a
mov ecx, ebx
shr ecx, 8
test cl, cl
je 0x14000355d
shr ebx, 0x10
mov edx, ebx
call fcn.14004334b
jmp 0x14000355d
xor r12d, r12d
mov rbx, qword [rsp + 0x20]
jmp 0x14000359f
lock or qword [r13 + 0x30], 1
mov al, byte [r13 + 0x38]
mov byte [r13 + 0x38], 0
xor al, 1
test al, al
mov rbx, qword [rsp + 0x20]
jne 0x14000359c
lock dec qword [r13]
jne 0x140003591
mov rcx, qword [rbx + 0x250]
call fcn.14003f6d8
mov qword [rbx + 0x250], 0
xor r12d, r12d
cmp bpl, 2
je 0x1400035ae
mov ecx, ebp
mov edx, esi
call fcn.14004334b
test r12b, r12b
je 0x1400035bd
call fcn.140044437
jmp 0x140003400
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
call qword [rax + 0x18]
mov r14, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x110]
test rax, rax
je 0x140003607
lea rcx, [rsp + 0x50]
mov qword [rcx], rax
movdqu xmm0, xmmword [rsp + 0x118]
movdqu xmmword [rcx + 8], xmm0
call fcn.14004282e
test rax, rax
je 0x140003607
mov rcx, rax
call fcn.1400043f3
mov rcx, qword [rsp + 0x180]
mov r9, qword [rsp + 0x188]
mov rax, qword [rsp + 0x198]
movdqa xmm0, xmmword [rcx]
test r9, r9
je 0x140003649
mov rdx, r9
shl rdx, 5
lea r10, [r9 + rdx]
add r10, 0x31
mov rsi, rcx
sub rsi, rdx
add rsi, 0xffffffffffffffe0
mov r11d, 0x10
jmp 0x14000364c
xor r11d, r11d
lea r8, [rcx + 0x10]
pmovmskb edi, xmm0
mov edx, edi
not edx
add r9, rcx
inc r9
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd0], r11
mov qword [rsp + 0xd8], r10
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xf0], r9
mov word [rsp + 0xf8], dx
mov qword [rsp + 0x100], rax
test rax, rax
je 0x140003772
cmp di, 0xffff
jne 0x1400036db
movdqa xmm0, xmmword [r8]
pmovmskb edx, xmm0
add rcx, 0xfffffffffffffe00
add r8, 0x10
cmp edx, 0xffff
je 0x1400036ad
not edx
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xe0], rcx
lea r8d, [rdx - 1]
and r8d, edx
mov word [rsp + 0xf8], r8w
bsf edx, edx
shl rdx, 5
sub rcx, rdx
dec rax
mov qword [rsp + 0x100], rax
mov rdi, qword [rcx - 0x18]
test rdi, rdi
je 0x140003772
mov rbx, qword [rcx - 0x20]
movups xmm0, xmmword [rcx - 0x10]
movaps xmmword [rsp + 0x1b0], xmm0
inc rax
mov rcx, 0xffffffffffffffff
cmovne rcx, rax
cmp rcx, 5
mov r14d, 4
cmovae r14, rcx
mov rax, r14
shr rax, 0x3a
jne 0x140004245
mov rsi, r14
shl rsi, 5
je 0x140003791
mov al, byte [0x1400ea9e0]
mov edx, 8
mov rcx, rsi
call fcn.140010eab
test rax, rax
jne 0x140003796
mov ecx, 8
mov rdx, rsi
call fcn.140085d53
ud2
lea rcx, [rsp + 0xc8]
call fcn.140040321
jmp 0x140004044
mov rcx, rsi
call fcn.140086e07
jmp 0x140003219
mov eax, 8
mov qword [rax], rbx
mov qword [rax + 8], rdi
movaps xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rax + 0x10], xmm0
lea rsi, [rsp + 0x168]
mov qword [rsi], rax
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], 1
movdqu xmm0, xmmword [rsp + 0xc8]
movups xmm1, xmmword [rsp + 0xd8]
movups xmm2, xmmword [rsp + 0xe8]
movups xmm3, xmmword [rsp + 0xf8]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
mov rdi, qword [rsp + 0x88]
movzx ebp, word [rsp + 0x80]
mov rbx, qword [rsp + 0x68]
mov r15d, 1
mov r14, qword [rsp + 0x70]
mov r10, 0xffffffffffffffff
mov edx, 1
sub rdi, 1
mov qword [rsp + 0x28], rdx
jb 0x14000390b
test bp, bp
jne 0x140003861
movdqa xmm0, xmmword [r14]
pmovmskb ebp, xmm0
add rbx, 0xfffffffffffffe00
add r14, 0x10
cmp ebp, 0xffff
je 0x140003839
not ebp
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], rbx
mov ecx, ebp
lea ebp, [rcx - 1]
and ebp, ecx
mov word [rsp + 0x80], bp
test rbx, rbx
je 0x140003904
bsf r8d, ecx
shl r8, 5
mov rcx, rbx
sub rcx, r8
mov r12, qword [rcx - 0x18]
test r12, r12
je 0x140003904
mov r13, qword [rcx - 0x20]
movups xmm0, xmmword [rcx - 0x10]
movaps xmmword [rsp + 0x1c0], xmm0
cmp rdx, qword [rsp + 0x170]
je 0x1400038dc
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], r13
mov qword [rax + rcx + 8], r12
movdqa xmm0, xmmword [rsp + 0x1c0]
movdqu xmmword [rax + rcx + 0x10], xmm0
inc rdx
mov qword [rsp + 0x178], rdx
dec r15
jmp 0x140003825
mov r8, rdi
inc r8
cmove r8, r10
mov rcx, rsi
call fcn.140088216
mov r10, 0xffffffffffffffff
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x168]
jmp 0x1400038aa
mov qword [rsp + 0x48], r15
jmp 0x140003912
mov qword [rsp + 0x48], r15
xor edi, edi
lea rcx, [rsp + 0x50]
mov qword [rcx + 0x38], rdi
call fcn.140040321
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x30], rax
mov rsi, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x28]
cmp rdx, 0x15
mov qword [rsp + 0x128], rsi
jae 0x140003974
cmp rdx, 1
jbe 0x140003f9b
mov r8d, 1
mov rsi, qword [rsp + 0x30]
mov rcx, rsi
mov rbx, rdx
call fcn.1400431a5
shl rbx, 5
add rbx, rsi
jmp 0x140003faf
mov rax, rdx
shl rax, 4
movabs rcx, 0x7fffffffffffffff
add rcx, 0xffffffffffffffe1
and rcx, rax
mov al, byte [0x1400ea9e0]
mov edx, 8
call fcn.140010eab
test rax, rax
je 0x14000423a
mov rdi, rax
mov al, byte [0x1400ea9e0]
mov ecx, pe_nt_image_headers64
mov edx, 8
call fcn.140010eab
test rax, rax
je 0x14000423a
mov r13, rax
mov rax, qword [rsp + 0x30]
lea rcx, [rax + 0x40]
mov qword [rsp + 0xa0], rcx
add rax, 0xffffffffffffffe0
mov qword [rsp + 0xc0], rax
mov eax, 0x10
mov qword [rsp + 0xb0], rax
xor r12d, r12d
xor eax, eax
mov r10, qword [rsp + 0x28]
mov qword [rsp + 0x38], rdi
mov rdi, rax
mov r8, r10
sub r8, rax
mov r9, rax
shl r9, 5
mov rax, qword [rsp + 0x30]
lea rcx, [rax + r9]
cmp r8, 2
jae 0x140003a29
mov rax, r10
jmp 0x140003b64
mov rax, qword [rcx]
mov rdx, qword [rcx + 0x20]
cmp rdx, rax
jae 0x140003a4a
cmp r8, 2
jne 0x140003a5f
lea rax, [rdi + 2]
mov r8d, 2
jmp 0x140003aea
cmp r8, 2
jne 0x140003a9a
lea rax, [rdi + 2]
mov r8d, 2
jmp 0x140003b64
mov r10, qword [rsp + 0x48]
lea r11, [r10 + rdi]
add r9, qword [rsp + 0xa0]
mov r10d, 2
mov rsi, rdx
mov rbx, rsi
mov rsi, qword [r9]
cmp rsi, rbx
jae 0x140003ad6
lea rbx, [r11 + r10]
inc rbx
inc r10
add r9, 0x20
cmp rbx, 2
jne 0x140003a79
jmp 0x140003ad3
mov r10, qword [rsp + 0x48]
lea r11, [r10 + rdi]
add r9, qword [rsp + 0xa0]
mov r10d, 2
mov rsi, rdx
mov rbx, rsi
mov rsi, qword [r9]
cmp rsi, rbx
jb 0x140003ad6
lea rbx, [r11 + r10]
inc rbx
inc r10
add r9, 0x20
cmp rbx, 2
jne 0x140003ab4
mov r10, r8
lea r9, [r10 + rdi]
mov r8, r10
cmp rdx, rax
mov rax, r9
mov r10, qword [rsp + 0x28]
jae 0x140003b64
cmp rdi, rax
ja 0x14000423a
cmp rax, r10
ja 0x14000423a
cmp r8, 2
jb 0x140003b64
mov r11, rax
mov rax, r8
shr rax, 1
lea rdx, [rdi + r8]
shl rdx, 5
add rdx, qword [rsp + 0xc0]
mov r9, rcx
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmmword [r9], xmm0
movdqa xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
add r9, 0x20
add rdx, 0xffffffffffffffe0
dec rax
jne 0x140003b1e
mov rax, r11
mov rsi, rax
sub rsi, rdi
jb 0x14000423a
cmp rax, r10
ja 0x14000423a
jae 0x140003bb4
cmp r8, 0xa
jae 0x140003bb4
lea rsi, [rdi + 0xa]
cmp rsi, r10
cmovae rsi, r10
mov qword [rsp + 0xb8], rsi
sub rsi, rdi
jb 0x14000423a
cmp r8, 1
adc r8, 0
mov rdx, rsi
call fcn.1400431a5
mov r10, qword [rsp + 0x28]
jmp 0x140003bbc
mov qword [rsp + 0xb8], rax
mov r15, qword [rsp + 0xb0]
cmp r12, r15
jne 0x140003c24
mov rcx, r15
shl rcx, 5
mov al, byte [0x1400ea9e0]
mov edx, 8
call fcn.140010eab
test rax, rax
je 0x14000423a
mov rbx, rax
lea r14, [r15 + r15]
shl r15, 4
mov rcx, rax
mov rdx, r13
mov r8, r15
call fcn.140085b90
mov rcx, qword [0x1400ea708]
xor edx, edx
mov r8, r13
call qword [sym.imp.kernel32.dll_HeapFree]
mov r13, rbx
mov qword [rsp + 0xb0], r14
mov r10, qword [rsp + 0x28]
mov rax, r12
shl rax, 4
mov qword [r13 + rax], rsi
mov qword [r13 + rax + 8], rdi
inc r12
mov rax, r12
cmp r12, 2
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0x130], r13
jb 0x140003f62
mov r12, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [r13 + rcx]
mov rcx, qword [r13 + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x140003cc0
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + r13 - 0x20]
cmp r8, rax
jbe 0x140003cc0
cmp r12, 2
jbe 0x140003f54
lea rbx, [r12 - 3]
mov rcx, rbx
shl rcx, 4
mov rcx, qword [r13 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140003cd7
cmp r12, 3
jbe 0x140003f5c
add r8, rcx
cmp qword [rdx + r13 - 0x40], r8
jbe 0x140003cd7
jmp 0x140003f62
cmp r12, 3
jb 0x140003cdc
lea rbx, [r12 - 3]
mov rcx, rbx
shl rcx, 4
mov rcx, qword [r13 + rcx]
cmp rcx, rax
jb 0x140003ce1
lea rbx, [r12 - 2]
cmp r12, rbx
jbe 0x14000423a
lea rax, [rbx + 1]
cmp r12, rax
jbe 0x14000423a
mov rcx, rbx
shl rcx, 4
mov r14, qword [r13 + rcx + 8]
shl rax, 4
mov r15, qword [r13 + rax]
mov rbp, qword [r13 + rax + 8]
add rbp, r15
mov rsi, rbp
sub rsi, r14
jb 0x14000423a
mov qword [rsp + 0x158], rbx
mov qword [rsp + 0x160], r12
cmp rbp, r10
ja 0x14000423a
mov qword [rsp + 0x150], r11
lea rdx, [rcx + r13]
mov qword [rsp + 0x40], rdx
mov r12, qword [r13 + rcx]
lea rcx, [rax + r13]
mov qword [rsp + 0x140], rcx
add rax, r13
add rax, 8
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x148], r14
shl r14, 5
add r14, qword [rsp + 0x30]
mov rbx, r12
shl rbx, 5
lea r13, [r14 + rbx]
shl rbp, 5
mov rdi, rsi
sub rdi, r12
cmp rdi, r12
jae 0x140003e3f
mov rbx, rdi
shl rbx, 5
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
mov rdx, r13
mov r8, rbx
call fcn.140085b90
add rbx, rsi
test r12, r12
jle 0x140003ec8
test rdi, rdi
mov rsi, qword [rsp + 0x40]
jle 0x140003ebb
add rbp, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x38]
mov rax, r13
mov rcx, rbx
mov rdx, qword [rbx - 0x20]
mov r8, qword [r13 - 0x20]
cmp rdx, r8
mov r13d, 0
sbb r13, r13
cmp rdx, r8
mov ebx, 0
adc rbx, 0xffffffffffffffff
shl r13, 5
add r13, rax
shl rbx, 5
add rbx, rcx
cmp rdx, r8
mov rax, rbx
cmovb rax, r13
movdqu xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
movdqu xmmword [rbp], xmm0
cmp r13, r14
jbe 0x140003e37
add rbp, 0xffffffffffffffe0
cmp rbx, rdi
ja 0x140003dda
mov r14, r13
jmp 0x140003ec3
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call fcn.140085b90
add rbx, rdi
test r12, r12
jle 0x140003ed0
cmp rsi, r12
jle 0x140003ed0
add rbp, qword [rsp + 0x30]
mov rdx, rdi
mov rsi, qword [rsp + 0x40]
mov r8, rdx
mov rcx, qword [r13]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, r13
movdqu xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movups xmmword [r14 + 0x10], xmm1
movdqu xmmword [r14], xmm0
add r14, 0x20
shl rdx, 5
add rdx, r8
cmp rdx, rbx
jae 0x140003ed8
mov al, cl
shl rax, 5
add r13, rax
cmp r13, rbp
jb 0x140003e6c
jmp 0x140003ed8
mov r14, r13
mov rdi, qword [rsp + 0x38]
mov rdx, rdi
jmp 0x140003ed8
mov r14, r13
mov rdi, qword [rsp + 0x38]
mov rdx, rdi
mov rsi, qword [rsp + 0x40]
sub rbx, rdx
mov rcx, r14
mov r8, rbx
call fcn.140085b90
add r15, r12
mov rax, qword [rsp + 0x140]
mov qword [rax], r15
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x138]
mov qword [rcx], rax
lea rdx, [rsi + 0x10]
mov rax, qword [rsp + 0x158]
not rax
mov r8, qword [rsp + 0x160]
add r8, rax
shl r8, 4
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rsp + 0x150]
cmp rax, 1
mov r10, qword [rsp + 0x28]
mov r13, qword [rsp + 0x130]
ja 0x140003c52
mov r12d, 1
jmp 0x140003f62
mov r12d, 2
jmp 0x140003f62
mov r12d, 3
mov rax, qword [rsp + 0xb8]
cmp rax, r10
jb 0x140003a02
mov rcx, qword [0x1400ea708]
xor edx, edx
mov r8, r13
mov rsi, qword [sym.imp.kernel32.dll_HeapFree]
call rsi
mov rcx, qword [0x1400ea708]
xor edx, edx
mov r8, rdi
call rsi
mov rdx, qword [rsp + 0x28]
mov rbx, rdx
shl rbx, 5
mov rsi, qword [rsp + 0x30]
add rbx, rsi
test rdx, rdx
je 0x140003ffa
lea r14, [rsp + 0x58]
lea rdi, [rsp + 0x50]
mov rsi, qword [rsp + 0x30]
mov rax, qword [rsi + 8]
test rax, rax
je 0x140003ff6
movdqu xmm0, xmmword [rsi + 0x10]
movdqu xmmword [r14], xmm0
mov qword [rsp + 0x50], rax
mov rcx, rdi
call fcn.14004282e
test rax, rax
je 0x140003feb
mov rcx, rax
call fcn.1400043f3
add rsi, 0x20
cmp rsi, rbx
jne 0x140003fbe
jmp 0x140004018
add rsi, 0x20
sub rbx, rsi
je 0x140004018
shr rbx, 5
add rsi, 8
mov rcx, rsi
call fcn.14003fbfa
add rsi, 0x20
dec rbx
jne 0x140004007
cmp qword [rsp + 0x128], 0
mov rbx, qword [rsp + 0x20]
mov r14, qword [rsp + 0xa8]
je 0x140004044
mov rcx, qword [0x1400ea708]
xor edx, edx
mov r8, qword [rsp + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [r14]
lock dec qword [rax]
jne 0x140004055
mov rcx, r14
call fcn.14003fab4
mov rcx, qword [rbx + 0x250]
test rcx, rcx
je 0x1400040a5
mov rax, qword [rcx + 0x30]
mov rdx, rax
or rdx, 4
lock cmpxchg qword [rcx + 0x30], rdx
jne 0x140004065
and eax, 0xa
cmp eax, 8
jne 0x140004087
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
call qword [rax + 0x10]
mov rax, qword [rbx + 0x250]
test rax, rax
je 0x1400040a5
lock dec qword [rax]
jne 0x1400040a5
mov rcx, qword [rbx + 0x250]
call fcn.14003f6d8
cmp word [rbx + 0x170], 2
je 0x1400040bb
lea rcx, [rbx + 0x170]
call fcn.14000424c
mov rdi, qword [rbx + 0x1d0]
test rdi, rdi
je 0x1400040df
mov rsi, qword [rbx + 0x1c0]
mov rcx, rsi
call fcn.14005e0f6
add rsi, 0x50
dec rdi
jne 0x1400040ce
cmp qword [rbx + 0x1c8], 0
je 0x1400040ff
mov r8, qword [rbx + 0x1c0]
mov rcx, qword [0x1400ea708]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rsi, qword [rbx + 0x1e8]
test rsi, rsi
je 0x14000412b
mov rdi, qword [rbx + 0x1d8]
add rdi, 0x28
mov rcx, qword [rdi - 8]
mov rdx, qword [rdi]
call fcn.1400471e1
add rdi, 0x40
dec rsi
jne 0x140004116
cmp qword [rbx + 0x1e0], 0
je 0x14000414b
mov r8, qword [rbx + 0x1d8]
mov rcx, qword [0x1400ea708]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
lea rcx, [rbx + 0x78]
call fcn.14000271c
mov rax, qword [rbx + 0x1f0]
test rax, rax
je 0x140004185
lock dec qword [rax]
jne 0x140004185
mov rcx, qword [rbx + 0x1f0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140004e1d
nop
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdi
call fcn.140086e07
jmp 0x140002f08
mov rax, qword [0x1400ea788]
shl rax, 1
test rax, rax
je 0x14000423a
call fcn.140087b46
test al, al
je 0x1400031ba
jmp 0x14000423a
add rcx, 0xc8
call fcn.14008685d
jmp 0x140003287
mov rcx, rsi
call fcn.140086b5d
jmp 0x140003364
mov rax, qword [0x1400ea788]
shl rax, 1
test rax, rax
je 0x14000423a
call fcn.140087b46
test al, al
jne 0x14000423a
lea rcx, [rsp + 0x180]
call fcn.14003fc3f
cmp qword [rsp + 0x110], 0
je 0x140004044
lea rcx, [rsp + 0x110]
call fcn.14003fbfa
jmp 0x140004044
mov rcx, rdi
call fcn.140086b5d
jmp 0x1400030a5
ud2
call fcn.140012bd3
ud2
call fcn.140012bd3
ud2
push rsi
sub rsp, 0x20
mov rsi, rcx
add rcx, 0x10
call fcn.1400746ea
cmp rsi, 0xffffffffffffffff
je 0x140004e53
lock dec qword [rsi + 8]
jne 0x140004e53
mov rcx, qword [0x1400ea708]
xor edx, edx
mov r8, rsi
add rsp, 0x20
pop rsi
jmp qword [sym.imp.kernel32.dll_HeapFree]
nop
add rsp, 0x20
pop rsi
ret