Function at 0x1400f1ea0
Capabilities:
Allocate or change rwx memory

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm12
movdqa xmmword [rsp + 0xe0], xmm11
movdqa xmmword [rsp + 0xd0], xmm10
movdqa xmmword [rsp + 0xc0], xmm9
movdqa xmmword [rsp + 0xb0], xmm8
movdqa xmmword [rsp + 0xa0], xmm7
movdqa xmmword [rsp + 0x90], xmm6
mov rbx, r9
mov ebp, r8d
mov r11, rdx
mov rdi, rcx
mov r14, qword [rsp + 0x178]
mov r13, qword [rsp + 0x170]
mov rax, qword [0x14029b028]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov byte [r14], 0
cmp byte [rcx + 0x1c], 0
je 0x1400f28f4
cmp r13, 0x4000
ja 0x1400f23a4
mov rcx, qword [rdi]
lea rax, [0x140274ddf]
cmp rcx, rax
je 0x1400f1fe3
test rcx, rcx
je 0x1400f1fe0
xor edx, edx
xor r12d, r12d
mov r8, rcx
mov r9, qword [rcx]
mov rcx, qword [rcx + 8]
mov r10d, dword [r8 + 0x18]
test r10d, 0x3ffe
je 0x1400f208e
test r10d, 0x7ffc000
jne 0x1400f2140
test r9, r9
jne 0x1400f2140
or r10d, 1
mov dword [r8 + 0x18], r10d
mov r9d, dword [rdi + 0x1c]
movzx r10d, r9b
and r9d, 0xffffff00
add r10d, r9d
add r10d, 0x100
mov dword [rdi + 0x1c], r10d
add r9d, 0x100
je 0x1400f2f82
mov qword [r8 + 8], 0
mov r8, rdx
mov rdx, r8
test rcx, rcx
jne 0x1400f1f61
test r12, r12
jne 0x1400f2155
mov qword [rdi], rax
mov r12, qword [rdi + 8]
test r12, r12
jne 0x1400f2001
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x1400f23a4
xor r12d, r12d
test r12, r12
je 0x1400f202e
mov rax, qword [r12 + 8]
mov qword [rdi + 8], rax
cmp qword [r12], 0
jne 0x1400f20c5
mov rax, qword [rdi + 0x10]
mov qword [r12 + 8], rax
mov qword [rdi + 0x10], r12
mov rax, r12
mov r12, qword [rdi + 8]
test r12, r12
jne 0x1400f2001
test bpl, 0x20
jne 0x1400f212a
mov rcx, qword [rax + 8]
mov qword [rdi + 0x10], rcx
mov rcx, qword [rax + 0x10]
mov edx, dword [rcx + 0x1c]
movzx edx, dl
shl edx, 0xc
imul rdx, qword [rcx + 0x20]
shr rdx, 0x1c
mov ecx, 0xf8003fff
and ecx, dword [rax + 0x18]
and edx, 0x7ffc000
or ecx, edx
mov dword [rax + 0x18], ecx
mov rcx, rax
and rcx, 0xffffffffffe00000
inc word [rcx + 0x1012]
mov qword [rax + 8], 0
mov byte [r14], 1
mov r12, rax
jmp 0x1400f2158
test r9, r9
je 0x1400f2393
mov r9, qword [rdi + 8]
mov qword [r8 + 8], r9
mov qword [rdi + 8], r8
jmp 0x1400f1fcc
test r12, r12
cmove r12, r8
test rdx, rdx
jne 0x1400f2880
mov qword [r8 + 8], 0
jmp 0x1400f1fcf
mov qword [r12 + 8], 0
mov rax, r12
and rax, 0xffffffffffe00000
inc word [rax + 0x1012]
mov rax, qword [r12 + 0x10]
mov ecx, dword [rax + 0x18]
mov edx, dword [rax + 0x1c]
movzx edx, dl
shl edx, 0xc
imul rdx, qword [rax + 0x20]
shr rdx, 0x2a
mov eax, dword [r12 + 0x18]
shr eax, 0xe
and eax, 0x1fff
sub rdx, rax
imul rcx, rdx
add rcx, 0xfff
and rcx, 0xfffffffffffff000
sub qword [r11 + 0x14d8], rcx
jmp 0x1400f2158
mov qword [r12 + 0x20], rbx
jmp 0x1400f216b
xor ebx, ebx
jmp 0x1400f21c8
xor edx, edx
jmp 0x1400f21a8
test r9, r9
je 0x1400f20a8
test r12, r12
jne 0x1400f2523
mov r12, r8
mov qword [rdi], r12
mov rax, rdi
mov qword [rax], r12
mov ecx, dword [r12 + 0x18]
test ecx, 0x8000000
jne 0x1400f2123
mov rbx, qword [r12]
test rbx, rbx
je 0x1400f222c
mov rdx, qword [rbx]
test rdx, rdx
je 0x1400f2131
bswap rdx
mov esi, dword [rax + 0x18]
mov rax, rdx
xor rax, rbx
cmp rax, 0x1fffff
ja 0x1400f2f85
mov eax, edx
and eax, 0x1fc000
je 0x1400f2f85
prefetcht0 byte [rdx]
mov qword [r12], rdx
lea eax, [rcx + 2]
and eax, 0x3ffe
and ecx, 0xffffc001
or ecx, eax
mov dword [r12 + 0x18], ecx
mov qword [rbx], 0
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140186020
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, r12
and rax, 0xffffffffffe00000
mov edx, r12d
shl edx, 9
and edx, 0x3fffc000
mov ebp, dword [rdi + 0x18]
mov r8d, ecx
shr r8d, 1
and r8d, 0x1fff
imul r8d, ebp
add rdx, rax
lea rsi, [rdx + r8]
lea rbx, [r8 + rdx]
add rbx, 0xffffffffffe00000
lea r14, [r8 + rdx]
add r14, 0xffffffffffe00fff
and r14, 0xfffffffffffff000
lea r13, [rsi + rbp]
add r13, 0xffffffffffe00fff
and r13, 0xfffffffffffff000
lea eax, [rcx + 2]
and eax, 0x3ffe
mov r8d, ecx
and r8d, 0xffffc001
or r8d, eax
mov dword [r12 + 0x18], r8d
mov rax, r13
sub rax, rbx
mov qword [rsp + 0x28], rdi
mov r9d, dword [rdi + 0x18]
xor edx, edx
div r9
shl eax, 0xe
sub ecx, eax
and ecx, 0x7ffc000
and r8d, 0xf8003fff
or r8d, ecx
mov dword [r12 + 0x18], r8d
mov r15, r13
sub r15, r14
lock inc qword [r11 + 0x14a8]
mov rcx, r14
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
mov rdi, r11
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x1400f2fb6
mov rdx, r15
lock xadd qword [rdi + 0x1478], rdx
lea rcx, [rsi + rbp]
add rcx, 0xffffffffffe00000
add rdx, r15
mov rax, qword [rdi + 0x1480]
cmp rax, rdx
mov r8, rdx
cmova r8, rax
lock cmpxchg qword [rdi + 0x1480], r8
jne 0x1400f2326
mov r9, qword [rsp + 0x28]
mov eax, dword [r9 + 0x18]
add rax, rcx
cmp rax, r13
ja 0x1400f237c
xor edx, edx
nop
mov qword [rcx], 0
cmp qword [r12], 0
je 0x1400f2387
mov r8, rcx
bswap r8
mov qword [rdx], r8
mov rdx, rcx
mov r8d, dword [r9 + 0x18]
add r8, rax
mov rcx, rax
mov rax, r8
cmp r8, r13
jbe 0x1400f2350
or byte [r12 + 0x1b], 0x10
jmp 0x1400f21c8
mov qword [r12], rcx
and byte [r12 + 0x1b], 0xef
jmp 0x1400f2367
mov r9, qword [rdi + 0x10]
mov qword [r8 + 8], r9
mov qword [rdi + 0x10], r8
jmp 0x1400f1fcc
test bpl, 0x20
jne 0x1400f212a
mov eax, dword [rdi + 0x1c]
movzx r15d, al
shl r15d, 0xc
add r15d, 0x3000
and r15d, 0x1fc000
mov rcx, qword [r11 + 0x14f0]
lea r8, [rcx + r13]
dec r8
mov r12, r13
neg r12
and r8, r12
lea rax, [r8 + r15]
cmp rax, qword [r11 + 0x14f8]
ja 0x1400f256d
mov rax, 0xffffffffffe00000
mov rdx, rcx
and rdx, rax
shr ecx, 0xe
movzx r9d, cl
shl r9, 5
or r9, rdx
mov edx, 0x1000
or r9, rdx
and rax, r8
mov ecx, r8d
shr ecx, 0xe
and ecx, 0x7f
shl rcx, 5
lea r12, [rax + rcx]
add r12, 0x1000
cmp r9, r12
jb 0x1400f2fd7
add r8, r15
mov qword [r11 + 0x14f0], r8
pxor xmm0, xmm0
movdqa xmmword [r12], xmm0
mov qword [r12 + 0x10], rdi
xor r8d, r8d
cmp dword [rdi + 0x18], 0x10001
setae r8b
shl r8d, 0x1b
mov r9d, 0xf7ffffff
and r9d, dword [r12 + 0x18]
or r9d, r8d
mov dword [r12 + 0x18], r9d
mov r8d, dword [rdi + 0x1c]
movzx r8d, r8b
shl r8d, 0xc
imul r8, qword [rdi + 0x20]
shr r8, 0x1c
and r8d, 0x7ffc000
and r9d, 0xf8003fff
or r9d, r8d
mov dword [r12 + 0x18], r9d
mov r8, r12
and r8, 0xffffffffffe00000
inc word [r8 + 0x1012]
mov qword [r12 + 8], 0
mov r8d, dword [rdi + 0x1c]
test r8b, r8b
je 0x1400f24ff
or rax, rdx
movzx edx, r8b
add edx, 3
shr edx, 2
shl rdx, 5
add rax, rcx
add rax, 0x1e
mov cl, 0x40
xor r8d, r8d
movzx r9d, byte [rax + r8]
and r9b, 0x80
add r9b, cl
mov byte [rax + r8], r9b
add r8, 0x20
inc cl
cmp edx, r8d
jne 0x1400f24e0
mov r8d, dword [rdi + 0x1c]
movzx eax, r8b
shl eax, 0xc
imul rax, qword [rdi + 0x20]
shr rax, 0x2a
cmp eax, 0x400
ja 0x1400f2fd4
mov byte [r14], 1
jmp 0x1400f2158
mov qword [r8 + 8], r12
mov qword [rdx + 8], rcx
jmp 0x1400f2152
mov eax, 3
jmp 0x1400f25cb
mov ecx, 1
cmp rax, qword [0x14029be48]
je 0x1400f2666
mov rax, qword [0x14029be58]
and rax, r8
mov ecx, 2
cmp rax, qword [0x14029be50]
je 0x1400f2666
jmp 0x1400f2fe8
mov eax, dword [rdi + 0x18]
lea rcx, [rsp + 0x70]
mov qword [rcx + 8], rax
movabs rsi, 0x657a69736e617073
lea rax, [rsi + 0x60dfc00]
mov qword [rcx], rax
mov qword [rsp + 0x20], r11
call fcn.140008da0
lea rcx, [rsp + 0x60]
mov qword [rcx + 8], r15
mov qword [rcx], rsi
call fcn.140008da0
mov rax, qword [rsp + 0x20]
mov rsi, qword [rax + 0x14e8]
cmp byte [rax + 6], 0
jne 0x1400f2530
cmp byte [rax + 5], 1
mov eax, 2
sbb rax, 0
dec eax
imul rax, rax, 0x420
lea rcx, [0x1402aedd8]
add rcx, rax
test rsi, rsi
je 0x1400f2604
mov r8d, 0x200000
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x28]
mov rdx, rsi
call fcn.1400240a0
mov rcx, qword [rsp + 0x28]
test al, al
jne 0x1400f261a
mov edx, 0x200000
call fcn.140008e50
mov rsi, rax
test rax, rax
je 0x1400f3017
movabs rcx, 0xfffffffc00000000
mov rax, rsi
sub rax, 0xffffffffffe00000
mov qword [rsp + 0x28], rax
mov r11, qword [rsp + 0x20]
jae 0x1400f2795
lea rax, [r11 + 0x1508]
mov qword [rsp + 0x48], rax
mov r8, rsi
mov qword [rsp + 0x40], rsi
mov rax, r8
and rax, rcx
cmp rax, qword [0x14029be40]
jne 0x1400f253a
xor ecx, ecx
mov rdx, r8
sub rdx, rax
shl rcx, 0xe
lea rax, [0x14029be80]
add rcx, rax
shr rdx, 0x15
mov word [rcx + rdx*2], 0xfffe
lock add qword [r11 + 0x1488], 0x200000
lea rax, [r8 + 0x200000]
mov qword [rsp + 0x38], rax
mov qword [r11 + 0x14e8], rax
mov eax, 0x4000
add rax, r8
xor ecx, ecx
cmp byte [r11], 0
setne cl
shl rcx, 0xf
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rcx
add rax, rcx
mov qword [r11 + 0x14f0], rax
lea rax, [r8 + 0x1fc000]
mov qword [r11 + 0x14f8], rax
lock inc qword [r11 + 0x14a8]
mov rsi, r8
lea rcx, [r8 + 0x1000]
mov edx, 0x1000
mov qword [rsp + 0x30], rcx
mov r8d, 3
call fcn.140008db0
mov r11, qword [rsp + 0x20]
cmp byte [r11 + 6], 0
jne 0x1400f2718
cmp byte [r11 + 5], 0
jne 0x1400f27f1
mov r8, rsi
mov qword [rsi + 0x1000], r11
mov dword [rsi + 0x1010], 0
mov qword [rsi + 0x1008], 0
mov rax, qword [r11 + 0x1500]
test rsi, rsi
je 0x1400f2832
lea rcx, [rax + 8]
test rax, rax
cmove rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov qword [rcx], rax
mov qword [r11 + 0x1500], rax
mov word [rax + 0x10], 1
movabs rcx, 0xfffffffc00000000
mov rsi, qword [rsp + 0x40]
cmp byte [r11], 2
je 0x1400f283b
mov rax, qword [rsp + 0x38]
mov r8, rax
cmp rax, qword [rsp + 0x28]
jb 0x1400f2651
mov al, byte [r11]
and rcx, rsi
cmp rcx, qword [0x14029be40]
je 0x1400f27ad
cmp rcx, qword [0x14029be48]
jne 0x1400f281a
xor ecx, ecx
test al, al
setne cl
shl rcx, 0xf
or rcx, 0x4000
add rcx, rsi
je 0x1400f2ff1
dec r13
mov rcx, qword [r11 + 0x14f0]
add r13, rcx
mov r8, r13
and r8, r12
lea rax, [r8 + r15]
cmp rax, qword [r11 + 0x14f8]
jbe 0x1400f23ef
jmp 0x1400f2fe5
lock inc qword [r11 + 0x14a8]
lea rcx, [rsi + 0x2000]
mov edx, 0x1000
mov r8d, 3
call fcn.140008db0
mov r11, qword [rsp + 0x20]
jmp 0x1400f2718
mov rcx, qword [0x14029be58]
and rcx, rsi
cmp rcx, qword [0x14029be50]
je 0x1400f27ad
jmp 0x1400f303f
inc word [rax + 0x10]
jmp 0x1400f2769
lock inc qword [r11 + 0x14a8]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x30], r8
mov r8d, 3
call fcn.140008db0
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
call fcn.1401c9b00
movabs rcx, 0xfffffffc00000000
mov r11, qword [rsp + 0x20]
jmp 0x1400f2782
mov qword [rdx + 8], r8
jmp 0x1400f20b8
mov rax, qword [rsp + 0x20]
lock inc qword [rax + 0x14a8]
lea rcx, [rsi + 0x2000]
mov edx, 0x1000
mov r8d, 3
call fcn.140008db0
jmp 0x1400f29af
mov r11d, 1
cmp rax, qword [0x14029be48]
mov rsi, qword [rsp + 0x20]
je 0x1400f29d4
mov rax, qword [0x14029be58]
and rax, r10
mov r11d, 2
cmp rax, qword [0x14029be50]
je 0x1400f29d4
jmp 0x1400f303c
mov r12d, 3
jmp 0x1400f294a
test bpl, 0x20
jne 0x1400f212a
cmp rbx, 0x7fe00001
jae 0x1400f2feb
lea rcx, [r11 + 0x40]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x20], r11
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0x20]
lea r15, [rbx + r13]
add r15, 0x203fff
and r15, 0xffffffffffe00000
cmp byte [rax + 6], 0
jne 0x1400f28ec
cmp byte [rax + 5], 1
mov r12d, 2
sbb r12d, 0
lea eax, [r12 - 1]
imul rax, rax, 0x420
lea rcx, [0x1402aedd8]
add rcx, rax
mov rdx, r15
call fcn.140008e50
test rax, rax
je 0x1400f2e94
mov rcx, qword [rsp + 0x20]
lock add qword [rcx + 0x1490], r15
lock inc qword [rcx + 0x14a8]
lea rcx, [rax + 0x1000]
mov edx, 0x1000
mov qword [rsp + 0x28], rcx
mov r8d, 3
mov rsi, rax
call fcn.140008db0
cmp r12d, 2
je 0x1400f2889
movabs rax, 0xfffffffc00000000
and rax, rsi
cmp rax, qword [0x14029be40]
mov r10, rsi
jne 0x1400f28b2
xor r11d, r11d
mov rsi, qword [rsp + 0x20]
lea rcx, [r10 + r13]
lea rdx, [r10 + r15]
cmp r10, rdx
jae 0x1400f2cea
mov r8, r10
sub r8, rax
lea r9, [r10 + 0x200000]
cmp rdx, r9
cmova r9, rdx
mov rax, r10
not rax
add rax, r9
movq xmm0, rax
shr rax, 0x15
add rax, 8
and rax, 0xfffffffffffffff8
pshufd xmm0, xmm0, 0x44
psrlq xmm0, 0x15
shl r11, 0xe
shr r8, 0x15
lea r8, [r11 + r8*2]
lea rdx, [0x14029be80]
lea r9, [r8 + rdx]
add r9, 0xe
xor edx, edx
movdqa xmm1, xmmword [0x140274d90]
movdqa xmm2, xmmword [0x140274da0]
movdqa xmm3, xmmword [0x140274db0]
movdqa xmm4, xmmword [0x140274dc0]
movdqa xmm5, xmmword [0x14025fab0]
pxor xmm0, xmm5
pcmpeqd xmm6, xmm6
movq xmm7, rdx
pshufd xmm7, xmm7, 0x44
movdqa xmm8, xmm7
por xmm8, xmm4
pxor xmm8, xmm5
movdqa xmm10, xmm8
pcmpgtd xmm10, xmm0
pshufd xmm9, xmm10, 0xa0
pshuflw xmm11, xmm9, 0xe8
pcmpeqd xmm8, xmm0
pshufd xmm8, xmm8, 0xf5
pshuflw xmm12, xmm8, 0xe8
pand xmm12, xmm11
pshufd xmm10, xmm10, 0xf5
pshuflw xmm11, xmm10, 0xe8
por xmm11, xmm12
pxor xmm11, xmm6
packssdw xmm11, xmm11
movd r8d, xmm11
test r8b, 1
je 0x1400f2adb
mov word [r9 + rdx*2 - 0xe], dx
pand xmm8, xmm9
por xmm8, xmm10
packssdw xmm8, xmm8
pxor xmm8, xmm6
packssdw xmm8, xmm8
movd r8d, xmm8
shr r8d, 0x10
test r8b, 1
je 0x1400f2b0d
lea r8d, [rdx + 1]
mov word [r9 + rdx*2 - 0xc], r8w
movdqa xmm9, xmm7
por xmm9, xmm3
pxor xmm9, xmm5
movdqa xmm10, xmm9
pcmpgtd xmm10, xmm0
pshufd xmm8, xmm10, 0xa0
pcmpeqd xmm9, xmm0
pshufd xmm9, xmm9, 0xf5
movdqa xmm11, xmm9
pand xmm11, xmm8
pshufd xmm10, xmm10, 0xf5
por xmm11, xmm10
packssdw xmm11, xmm11
pxor xmm11, xmm6
packssdw xmm11, xmm11
pextrw r8d, xmm11, 2
test r8b, 1
je 0x1400f2b71
lea r8d, [rdx + 2]
mov word [r9 + rdx*2 - 0xa], r8w
pshufhw xmm8, xmm8, 0x84
pshufhw xmm9, xmm9, 0x84
pand xmm9, xmm8
pshufhw xmm8, xmm10, 0x84
por xmm8, xmm9
pxor xmm8, xmm6
packssdw xmm8, xmm8
pextrw r8d, xmm8, 3
test r8b, 1
je 0x1400f2bad
lea r8d, [rdx + 3]
mov word [r9 + rdx*2 - 8], r8w
movdqa xmm8, xmm7
por xmm8, xmm2
pxor xmm8, xmm5
movdqa xmm10, xmm8
pcmpgtd xmm10, xmm0
pshufd xmm9, xmm10, 0xa0
pshuflw xmm11, xmm9, 0xe8
pcmpeqd xmm8, xmm0
pshufd xmm8, xmm8, 0xf5
pshuflw xmm12, xmm8, 0xe8
pand xmm12, xmm11
pshufd xmm10, xmm10, 0xf5
pshuflw xmm11, xmm10, 0xe8
por xmm11, xmm12
pxor xmm11, xmm6
packssdw xmm11, xmm11
pextrw r8d, xmm11, 4
test r8b, 1
je 0x1400f2c19
lea r8d, [rdx + 4]
mov word [r9 + rdx*2 - 6], r8w
pand xmm8, xmm9
por xmm8, xmm10
packssdw xmm8, xmm8
pxor xmm8, xmm6
packssdw xmm8, xmm8
pextrw r8d, xmm8, 5
test r8b, 1
je 0x1400f2c48
lea r8d, [rdx + 5]
mov word [r9 + rdx*2 - 4], r8w
por xmm7, xmm1
pxor xmm7, xmm5
movdqa xmm9, xmm7
pcmpgtd xmm9, xmm0
pshufd xmm8, xmm9, 0xa0
pcmpeqd xmm7, xmm0
pshufd xmm7, xmm7, 0xf5
movdqa xmm10, xmm7
pand xmm10, xmm8
pshufd xmm9, xmm9, 0xf5
por xmm10, xmm9
packssdw xmm10, xmm10
pxor xmm10, xmm6
packssdw xmm10, xmm10
pextrw r8d, xmm10, 6
test r8b, 1
je 0x1400f2ca3
lea r8d, [rdx + 6]
mov word [r9 + rdx*2 - 2], r8w
pshufhw xmm8, xmm8, 0x84
pshufhw xmm7, xmm7, 0x84
pand xmm7, xmm8
pshufhw xmm8, xmm9, 0x84
por xmm8, xmm7
pxor xmm8, xmm6
packssdw xmm7, xmm8
pextrw r8d, xmm7, 7
test r8b, 1
je 0x1400f2cdd
lea r8d, [rdx + 7]
mov word [r9 + rdx*2], r8w
add rdx, 8
cmp rax, rdx
jne 0x1400f2a6a
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x30], r15
mov r8, qword [rsp + 0x28]
mov qword [r8], rsi
lea rdx, [r8 + 0x20]
mov rax, rcx
and rax, 0xffffffffffe00000
mov r9d, ecx
shr r9d, 0xe
and r9d, 0x7f
shl r9, 5
lea r12, [rax + r9]
add r12, 0x1000
cmp r12, rdx
jne 0x1400f2ea8
lea r15, [rbx + 0xfff]
and r15, 0xfffffffffffff000
or rax, 0x1000
or byte [rax + r9 + 0x1e], 0x40
mov al, byte [r12 + 0x3e]
and al, 0xc0
or al, 1
mov byte [r12 + 0x3e], al
lea rax, [r12 + 0x40]
mov dword [r12 + 0x58], r15d
pxor xmm0, xmm0
movdqa xmmword [r12], xmm0
mov qword [rsp + 0x40], rax
mov qword [r12 + 0x10], rax
xor eax, eax
cmp r15d, 0x10001
setae al
shl eax, 0x1b
mov edx, 0xf7ffffff
and edx, dword [r12 + 0x18]
or edx, eax
mov dword [r12 + 0x18], edx
lock inc qword [rsi + 0x14a8]
mov qword [rsp + 0x48], rcx
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x1400f2ed8
mov rcx, r15
lock xadd qword [rsi + 0x1478], rcx
add r13, 0xffffffffffffc000
add rcx, r15
mov rax, qword [rsi + 0x1480]
cmp rax, rcx
mov rdx, rcx
cmova rdx, rax
lock cmpxchg qword [rsi + 0x1480], rdx
jne 0x1400f2ddf
mov rax, qword [rsp + 0x48]
mov qword [rax], 0
mov qword [r12], rax
and byte [r12 + 0x1b], 0xef
lea rsi, [r12 + 0x68]
mov rax, qword [rsp + 0x30]
mov qword [r12 + 0x80], rax
mov qword [r12 + 0x88], r13
mov rax, qword [rsp + 0x40]
mov qword [r12 + 0x78], rax
mov r15b, 1
mov r13, qword [rsp + 0x38]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f2e8a
test r15b, r15b
mov r11, qword [rsp + 0x20]
je 0x1400f2ff1
mov rax, qword [r11 + 0x1510]
mov qword [rsi], rax
test rax, rax
je 0x1400f2e64
mov qword [rax + 8], rsi
mov qword [rsi + 8], 0
mov qword [r11 + 0x1510], rsi
test r12, r12
je 0x1400f2ff1
mov rax, qword [r12 + 0x10]
mov byte [r14], 1
jmp 0x1400f215b
mov rcx, r13
call fcn.1400f1e30
jmp 0x1400f2e43
test bpl, 1
je 0x1400f3045
xor esi, esi
xor r12d, r12d
xor r15d, r15d
jmp 0x1400f2e31
test byte [r8 + 0x3e], 0x40
jne 0x1400f3042
mov r8d, r12d
sub r8d, edx
shr r8d, 5
and r8b, 0x3f
or r8b, 0x80
mov rdx, qword [rsp + 0x28]
mov byte [rdx + 0x3e], r8b
mov rsi, qword [rsp + 0x20]
jmp 0x1400f2d31
mov qword [rsp + 0x28], rdi
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400f2ef6
mov rcx, qword [rsp + 0x38]
call fcn.1400f1e30
mov rsi, qword [rsp + 0x20]
mov rcx, rsi
call fcn.1401c9780
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x48]
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
mov rdi, qword [rsp + 0x28]
jne 0x1400f2dc2
test bpl, 1
je 0x1400f3052
mov rsi, qword [rsp + 0x20]
lock inc qword [rsi + 0x14a8]
lea rcx, [0x1402aedd8]
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x30]
mov r9, rdi
call fcn.140008970
lock sub qword [rsi + 0x1490], rdi
xor esi, esi
xor r15d, r15d
mov rdi, qword [rsp + 0x28]
jmp 0x1400f2e31
int3
movaps xmm0, xmmword [0x14026cc70]
lea rdi, [rsp + 0x70]
movaps xmmword [rdi], xmm0
mov r8, qword [rbx]
lea rdx, str.first
mov rcx, rdi
call fcn.1401c1ea0
mov rcx, rdi
call fcn.140008da0
mov rcx, rsi
call fcn.1401c1e60
mov rcx, rdi
call fcn.1401c9780
mov rcx, r14
mov rdx, r15
mov r8d, 3
call fcn.140008db0
jmp 0x1400f2305
int3
or byte [r9 + 0x1e], 0x80
add r9, 0x20
jmp 0x1400f242d
int3
int3
test bpl, 1
je 0x1400f305f
mov byte [r14], 1
test bpl, 1
jne 0x1400f212a
mov rsi, r11
lea rcx, [r11 + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rsi
mov rdx, rbx
call fcn.1401c96c0
test bpl, 1
mov r11, qword [rsp + 0x20]
jne 0x1400f2ff1
lea rcx, [r11 + 0x40]
mov rsi, r11
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edx, 0x200000
mov rcx, rsi
call fcn.1401c9630
int3
int3
int3
mov rcx, qword [rsp + 0x20]
mov rdx, r15
call fcn.1401c9630
mov rcx, qword [rsp + 0x20]
mov rdx, r15
call fcn.1401c9660
add r11, 0x40
mov rcx, r11
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rbx
call fcn.1401c9690
int3