Function at 0x1400ef830
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], xmm11
movdqa xmmword [rsp + 0xe0], xmm10
movdqa xmmword [rsp + 0xd0], xmm9
movdqa xmmword [rsp + 0xc0], xmm8
movdqa xmmword [rsp + 0xb0], xmm7
movdqa xmmword [rsp + 0xa0], xmm6
mov rbx, r9
mov ebp, r8d
mov rdi, rdx
mov rsi, rcx
mov r13, qword [rsp + 0x178]
mov r12, qword [rsp + 0x170]
mov rax, qword [0x14029b028]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov byte [r13], 0
cmp byte [rcx + 0x1c], 0
je 0x1400f00b9
cmp r12, 0x4000
ja 0x1400efc7c
mov r15, qword [rsi]
call fcn.1400f08c0
cmp r15, rax
je 0x1400efbf2
test r15, r15
je 0x1400efbea
xor eax, eax
xor r14d, r14d
mov rcx, r15
mov rdx, qword [r15]
mov r15, qword [r15 + 8]
mov r8d, dword [rcx + 0x18]
test r8d, 0x3ffe
je 0x1400ef97f
test rdx, rdx
jne 0x1400ef960
mov r9d, r8d
and r9d, 0x7ffc000
jne 0x1400ef960
or r8d, 1
mov dword [rcx + 0x18], r8d
mov edx, dword [rsi + 0x1c]
movzx r8d, dl
and edx, 0xffffff00
add r8d, edx
add r8d, 0x100
mov dword [rsi + 0x1c], r8d
add edx, 0x100
je 0x1400f0651
mov qword [rcx + 8], 0
mov rcx, rax
mov rax, rcx
test r15, r15
jne 0x1400ef8e6
jmp 0x1400efbe1
test rdx, rdx
jne 0x1400ef996
test r14, r14
cmove r14, rcx
test rax, rax
jne 0x1400efdf3
mov qword [rcx + 8], 0
jmp 0x1400ef94c
test rdx, rdx
je 0x1400efdd9
mov rdx, qword [rsi + 8]
mov qword [rcx + 8], rdx
mov qword [rsi + 8], rcx
jmp 0x1400ef949
test r14, r14
jne 0x1400efdfc
mov r14, rcx
mov qword [rsi], r14
mov rax, rsi
mov qword [rax], r14
mov ecx, dword [r14 + 0x18]
test ecx, 0x8000000
jne 0x1400efdea
mov rbx, qword [r14]
test rbx, rbx
je 0x1400efa74
mov rdx, qword [rbx]
test rdx, rdx
je 0x1400efc75
bswap rdx
mov esi, dword [rax + 0x18]
mov rax, rdx
xor rax, rbx
cmp rax, 0x1fffff
ja 0x1400f061d
mov eax, edx
and eax, 0x1fc000
je 0x1400f061d
prefetcht0 byte [rdx]
mov qword [r14], rdx
lea eax, [rcx + 2]
and eax, 0x3ffe
and ecx, 0xffffc001
or ecx, eax
mov dword [r14 + 0x18], ecx
mov qword [rbx], 0
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1401874c0
mov rax, rbx
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, 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, r14
and rax, 0xffffffffffe00000
mov edx, r14d
shl edx, 9
and edx, 0x3fffc000
mov ebp, dword [rsi + 0x18]
mov r8d, ecx
shr r8d, 1
and r8d, 0x1fff
imul r8d, ebp
add rdx, rax
mov r9, rsi
lea rsi, [rdx + r8]
lea rbx, [r8 + rdx]
add rbx, 0xffffffffffe00000
lea r15, [r8 + rdx]
add r15, 0xffffffffffe00fff
and r15, 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 [r14 + 0x18], r8d
mov rax, r13
sub rax, rbx
mov qword [rsp + 0x28], r9
mov r9d, dword [r9 + 0x18]
xor edx, edx
div r9
shl eax, 0xe
sub ecx, eax
and ecx, 0x7ffc000
and r8d, 0xf8003fff
or r8d, ecx
mov dword [r14 + 0x18], r8d
mov r12, r13
sub r12, r15
lock inc qword [rdi + 0x14a8]
mov rcx, r15
mov rdx, r12
mov r8d, 0x1000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x1400f0654
mov rdx, r12
lock xadd qword [rdi + 0x1478], rdx
lea rcx, [rsi + rbp]
add rcx, 0xffffffffffe00000
add rdx, r12
mov rax, qword [rdi + 0x1480]
cmp rax, rdx
mov r8, rdx
cmova r8, rax
lock cmpxchg qword [rdi + 0x1480], r8
jne 0x1400efb6c
mov r9, qword [rsp + 0x28]
mov eax, dword [r9 + 0x18]
add rax, rcx
cmp rax, r13
ja 0x1400efbd7
xor r8d, r8d
nop word cs:[rax + rax]
mov rdx, rax
mov qword [rcx], 0
cmp qword [r14], 0
je 0x1400efbcd
mov rax, rcx
bswap rax
mov qword [r8], rax
mov eax, dword [r9 + 0x18]
add rax, rdx
mov r8, rcx
mov rcx, rdx
cmp rax, r13
jbe 0x1400efba0
jmp 0x1400efbd7
mov qword [r14], rcx
and byte [r14 + 0x1b], 0xef
jmp 0x1400efbb9
or byte [r14 + 0x1b], 0x10
jmp 0x1400efa19
test r14, r14
jne 0x1400ef9a2
call fcn.1400f08c0
mov qword [rsi], rax
mov r14, qword [rsi + 8]
test r14, r14
jne 0x1400f0829
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1400efc7c
xor r14d, r14d
test r14, r14
jne 0x1400f0829
test bpl, 0x20
jne 0x1400f06f5
mov rcx, qword [rax + 8]
mov qword [rsi + 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 [r13], 1
mov r14, rax
jmp 0x1400ef9a5
xor edx, edx
jmp 0x1400ef9fb
test bpl, 0x20
jne 0x1400f06f5
mov eax, dword [rsi + 0x1c]
movzx r15d, al
shl r15d, 0xc
add r15d, 0x3000
and r15d, 0x1fc000
mov rcx, qword [rdi + 0x14f0]
lea rax, [rcx + r12]
dec rax
mov r14, r12
neg r14
and rax, r14
lea rdx, [rax + r15]
mov qword [rsp + 0x30], rdi
cmp rdx, qword [rdi + 0x14f8]
ja 0x1400efe09
mov r12, 0xffffffffffe00000
mov rdx, rcx
and rdx, r12
shr ecx, 0xe
movzx ecx, cl
shl rcx, 5
or rcx, rdx
mov ebp, 0x1000
or rcx, rbp
and r12, rax
mov edi, eax
shr edi, 0xe
and edi, 0x7f
shl rdi, 5
lea r14, [r12 + rdi]
add r14, 0x1000
cmp rcx, r14
jb 0x1400f0672
add rax, r15
mov rcx, qword [rsp + 0x30]
mov qword [rcx + 0x14f0], rax
mov rcx, r14
mov rdx, rsi
call fcn.1400f08d0
mov rax, qword [r14 + 0x10]
mov ecx, dword [rax + 0x1c]
movzx ecx, cl
shl ecx, 0xc
imul rcx, qword [rax + 0x20]
shr rcx, 0x1c
mov eax, 0xf8003fff
and eax, dword [r14 + 0x18]
and ecx, 0x7ffc000
or eax, ecx
mov dword [r14 + 0x18], eax
mov rax, r14
and rax, 0xffffffffffe00000
inc word [rax + 0x1012]
mov qword [r14 + 8], 0
mov eax, dword [rsi + 0x1c]
test al, al
je 0x1400efdb0
or r12, rbp
movzx eax, al
lea eax, [rax*8 + 0x18]
and eax, 0xffffffe0
lea rcx, [rdi + r12]
add rcx, 0x1e
mov dl, 0x40
xor r8d, r8d
movzx r9d, byte [rcx + r8]
and r9b, 0x80
add r9b, dl
mov byte [rcx + r8], r9b
add r8, 0x20
inc dl
cmp eax, r8d
jne 0x1400efd92
mov eax, dword [rsi + 0x1c]
mov rdi, qword [rsp + 0x30]
movzx eax, al
shl eax, 0xc
imul rax, qword [rsi + 0x20]
shr rax, 0x2a
cmp eax, 0x400
ja 0x1400f067f
mov byte [r13], 1
jmp 0x1400ef9a5
mov rdx, qword [rsi + 0x10]
mov qword [rcx + 8], rdx
mov qword [rsi + 0x10], rcx
jmp 0x1400ef949
mov qword [r14 + 0x20], rbx
jmp 0x1400ef9bb
mov qword [rax + 8], rcx
jmp 0x1400ef975
mov qword [rcx + 8], r14
mov qword [rax + 8], r15
jmp 0x1400ef99f
mov eax, dword [rsi + 0x18]
lea rcx, [rsp + 0x80]
mov qword [rcx + 8], rax
movabs rdi, 0x657a69736e617073
lea rax, [rdi + 0x60dfc00]
mov qword [rcx], rax
call fcn.1400090b0
lea rcx, [rsp + 0x70]
mov qword [rcx + 8], r15
mov qword [rcx], rdi
call fcn.1400090b0
mov rdi, qword [rsp + 0x30]
mov rdx, qword [rdi + 0x14e8]
cmp byte [rdi + 8], 0
jne 0x1400f0606
cmp byte [rdi + 6], 1
mov eax, 2
sbb rax, 0
mov ecx, 0xffffffff
add eax, ecx
imul rax, rax, 0x420
lea rcx, [0x1402b5e00]
add rcx, rax
test rdx, rdx
jne 0x1400f0088
mov edx, 0x200000
call fcn.140009390
mov rdx, rax
test rax, rax
je 0x1400f06bf
mov rax, rdx
sub rax, 0xffffffffffe00000
mov qword [rsp + 0x40], rax
jae 0x1400f0046
lea rax, [rdi + 0x1508]
mov qword [rsp + 0x60], rax
mov r8, rdx
mov qword [rsp + 0x28], rdx
mov rax, r8
movabs rcx, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x1402aaec0]
jne 0x1400f0006
xor ecx, ecx
mov rdx, r8
sub rdx, rax
shl rcx, 0xe
lea rax, [0x14029ee90]
add rcx, rax
shr rdx, 0x15
mov word [rcx + rdx*2], 0xfffe
lock add qword [rdi + 0x1488], 0x200000
lea rax, [r8 + 0x200000]
mov qword [rsp + 0x50], rax
mov qword [rdi + 0x14e8], rax
mov eax, 0x4000
add rax, r8
xor ecx, ecx
cmp byte [rdi], 0
setne cl
shl rcx, 0xf
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
add rax, rcx
mov qword [rdi + 0x14f0], rax
lea rax, [r8 + 0x1fc000]
mov qword [rdi + 0x14f8], rax
lock inc qword [rdi + 0x14a8]
mov qword [rsp + 0x38], r8
lea rcx, [r8 + 0x1000]
mov edx, 0x1000
mov qword [rsp + 0x48], rcx
mov r8d, 2
call fcn.14000c320
cmp byte [rdi + 8], 0
jne 0x1400eff8f
cmp byte [rdi + 6], 0
jne 0x1400f001d
mov r8, qword [rsp + 0x38]
mov qword [r8 + 0x1000], rdi
mov dword [r8 + 0x1010], 0
mov qword [r8 + 0x1008], 0
mov rax, qword [rdi + 0x1500]
test r8, r8
je 0x1400f0682
lea rcx, [rax + 8]
test rax, rax
cmove rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov qword [rdi + 0x1500], rax
mov word [rax + 0x10], 1
mov rdx, qword [rsp + 0x28]
cmp byte [rdi], 2
je 0x1400f068b
mov rax, qword [rsp + 0x50]
mov r8, rax
cmp rax, qword [rsp + 0x40]
jb 0x1400efec4
jmp 0x1400f0046
mov ecx, 1
cmp rax, qword [0x1402aaec8]
je 0x1400efee3
jmp 0x1400f05d6
lock inc qword [rdi + 0x14a8]
mov rax, qword [rsp + 0x38]
lea rcx, [rax + 0x2000]
mov edx, 0x1000
mov r8d, 2
call fcn.14000c320
jmp 0x1400eff8f
xor eax, eax
cmp byte [rdi], 0
setne al
shl rax, 0xf
or rax, 0x4000
add rax, rdx
je 0x1400f06e6
dec r12
mov rcx, qword [rdi + 0x14f0]
add r12, rcx
mov rax, r12
and rax, r14
lea rdx, [rax + r15]
cmp rdx, qword [rdi + 0x14f8]
jbe 0x1400efccc
int3
mov r8d, 0x200000
mov qword [rsp + 0x28], rdx
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x38], rcx
call fcn.140024360
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
test al, al
jne 0x1400efe9c
jmp 0x1400efe86
test bpl, 0x20
jne 0x1400f06f5
lea rcx, [rdi + 0x40]
cmp rbx, 0x7fe00001
mov qword [rsp + 0x30], rdi
jae 0x1400f06dc
mov qword [rsp + 0x40], rcx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea r14, [rbx + r12]
add r14, 0x203fff
and r14, 0xffffffffffe00000
cmp byte [rdi + 8], 0
jne 0x1400f05a8
cmp byte [rdi + 6], 1
mov eax, 2
sbb eax, 0
mov qword [rsp + 0x48], rax
dec eax
imul rax, rax, 0x420
lea rcx, [0x1402b5e00]
add rcx, rax
mov rdx, r14
call fcn.140009390
test rax, rax
je 0x1400f06fc
lock add qword [rdi + 0x1490], r14
lock inc qword [rdi + 0x14a8]
lea rcx, [rax + 0x1000]
mov edx, 0x1000
mov qword [rsp + 0x28], rcx
mov r8d, 2
mov r15, rax
call fcn.14000c320
mov rax, qword [rsp + 0x48]
cmp eax, 2
je 0x1400f05b2
mov r11, r14
lea rax, [r15 + r14]
movabs rdx, 0xfffffffc00000000
and rdx, r15
cmp rdx, qword [0x1402aaec0]
jne 0x1400f0568
xor ecx, ecx
lea r10, [r15 + r12]
cmp r15, rax
jae 0x1400f03ee
mov r8, r15
sub r8, rdx
lea rdx, [r15 + 0x200000]
cmp rax, rdx
cmova rdx, rax
mov rax, r15
not rax
add rax, rdx
movq xmm0, rax
shr rax, 0x15
add rax, 8
and rax, 0xfffffffffffffff8
pshufd xmm0, xmm0, 0x44
psrlq xmm0, 0x15
shl rcx, 0xe
shr r8, 0x15
lea rcx, [rcx + r8*2]
lea rdx, [0x14029ee90]
add rcx, rdx
add rcx, 0xe
xor edx, edx
movdqa xmm1, xmmword [0x1402823d0]
movdqa xmm2, xmmword [0x1402823e0]
movdqa xmm3, xmmword [0x1402823f0]
movdqa xmm4, xmmword [0x140278950]
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 xmm9, xmm8
pcmpgtd xmm9, xmm0
pcmpeqd xmm8, xmm0
pshufd xmm10, xmm8, 0xf5
pand xmm10, xmm9
pshufd xmm8, xmm9, 0xf5
por xmm8, xmm10
movd r8d, xmm8
not r8d
test r8b, 1
je 0x1400f0277
mov word [rcx + rdx*2 - 0xe], dx
pxor xmm8, xmm6
psrldq xmm8, 6
movd r8d, xmm8
shr r8d, 0x10
test r8b, 1
je 0x1400f029b
lea r8d, [rdx + 1]
mov word [rcx + rdx*2 - 0xc], r8w
movdqa xmm8, xmm7
por xmm8, xmm3
pxor xmm8, xmm5
movdqa xmm9, xmm8
pcmpgtd xmm9, xmm0
pcmpeqd xmm8, xmm0
pshufd xmm10, xmm8, 0xf5
pand xmm10, xmm9
pshufd xmm8, xmm9, 0xf5
por xmm8, xmm10
pxor xmm8, xmm6
pextrw r8d, xmm8, 0
test r8b, 1
je 0x1400f02ea
lea r8d, [rdx + 2]
mov word [rcx + rdx*2 - 0xa], r8w
pextrw r8d, xmm8, 4
test r8b, 1
je 0x1400f0300
lea r8d, [rdx + 3]
mov word [rcx + rdx*2 - 8], r8w
movdqa xmm8, xmm7
por xmm8, xmm2
pxor xmm8, xmm5
movdqa xmm9, xmm8
pcmpgtd xmm9, xmm0
pshufd xmm10, xmm9, 0x44
pcmpeqd xmm8, xmm0
pshufd xmm11, xmm8, 0x55
pand xmm11, xmm10
pshufd xmm10, xmm9, 0x55
por xmm10, xmm11
pxor xmm10, xmm6
pextrw r8d, xmm10, 4
test r8b, 1
je 0x1400f0355
lea r8d, [rdx + 4]
mov word [rcx + rdx*2 - 6], r8w
pshufd xmm8, xmm8, 0xf5
pand xmm8, xmm9
pshufd xmm9, xmm9, 0xf5
por xmm9, xmm8
pxor xmm9, xmm6
pextrw r8d, xmm9, 4
test r8b, 1
je 0x1400f0386
lea r8d, [rdx + 5]
mov word [rcx + rdx*2 - 4], r8w
por xmm7, xmm1
pxor xmm7, xmm5
movdqa xmm8, xmm7
pcmpgtd xmm8, xmm0
pcmpeqd xmm7, xmm0
pshufd xmm9, xmm7, 0xf5
pand xmm9, xmm8
pshufd xmm7, xmm8, 0xf5
por xmm7, xmm9
pxor xmm7, xmm6
pextrw r8d, xmm7, 0
test r8b, 1
je 0x1400f03cc
lea r8d, [rdx + 6]
mov word [rcx + rdx*2 - 2], r8w
pextrw r8d, xmm7, 4
test r8b, 1
je 0x1400f03e1
lea r8d, [rdx + 7]
mov word [rcx + rdx*2], r8w
add rdx, 8
cmp rax, rdx
jne 0x1400f0226
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], r11
mov r8, qword [rsp + 0x28]
mov qword [r8], rdi
lea rdx, [r8 + 0x20]
mov rax, r10
and rax, 0xffffffffffe00000
mov ecx, r10d
shr ecx, 0xe
and ecx, 0x7f
shl rcx, 5
lea r14, [rax + rcx]
add r14, 0x1000
cmp r14, rdx
mov qword [rsp + 0x38], r10
jne 0x1400f0713
or rax, 0x1000
or byte [rax + rcx + 0x1e], 0x40
lea r15, [rbx + 0xfff]
and r15, 0xfffffffffffff000
mov al, byte [r14 + 0x3e]
and al, 0xc0
or al, 1
mov byte [r14 + 0x3e], al
lea rdx, [r14 + 0x40]
mov dword [r14 + 0x58], r15d
mov rcx, r14
mov qword [rsp + 0x60], rdx
call fcn.1400f08d0
lock inc qword [rdi + 0x14a8]
mov rcx, qword [rsp + 0x38]
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x1400f073e
mov rcx, r15
lock xadd qword [rdi + 0x1478], rcx
add r12, 0xffffffffffffc000
add rcx, r15
mov rax, qword [rdi + 0x1480]
cmp rax, rcx
mov rdx, rcx
cmova rdx, rax
lock cmpxchg qword [rdi + 0x1480], rdx
jne 0x1400f04b5
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
mov qword [r14], rax
and byte [r14 + 0x1b], 0xef
lea rdi, [r14 + 0x68]
mov rax, qword [rsp + 0x50]
mov qword [r14 + 0x80], rax
mov qword [r14 + 0x88], r12
mov rax, qword [rsp + 0x60]
mov qword [r14 + 0x78], rax
mov r15b, 1
mov r12, qword [rsp + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f0610
test r15b, r15b
je 0x1400f06e6
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1510]
mov qword [rdi], rax
test rax, rax
je 0x1400f0538
mov qword [rax + 8], rdi
mov qword [rdi + 8], 0
mov rax, qword [rsp + 0x30]
mov qword [rax + 0x1510], rdi
test r14, r14
je 0x1400f06e6
mov rax, qword [r14 + 0x10]
mov byte [r13], 1
mov rdi, qword [rsp + 0x30]
jmp 0x1400ef9a8
mov ecx, 1
cmp rdx, qword [0x1402aaec8]
je 0x1400f0195
mov rcx, qword [0x1402aaed8]
and rcx, r15
mov r8, qword [0x1402aaed0]
xor edx, edx
cmp rcx, r8
cmove rdx, r8
mov r8d, 2
mov ecx, 0xffffffff
cmove rcx, r8
jmp 0x1400f0195
mov eax, 3
jmp 0x1400f010c
lock inc qword [rdi + 0x14a8]
lea rcx, [r15 + 0x2000]
mov edx, 0x1000
mov r8d, 2
call fcn.14000c320
jmp 0x1400f0172
mov rcx, qword [0x1402aaed8]
and rcx, r8
mov rax, qword [0x1402aaed0]
cmp rcx, rax
mov ecx, 0
cmovne rax, rcx
mov ecx, 0xffffffff
mov edx, 2
cmove rcx, rdx
jmp 0x1400efee3
mov eax, 3
jmp 0x1400efe65
mov rcx, r12
call fcn.1400ef7c0
jmp 0x1400f0517
movaps xmm0, xmmword [0x1402724c0]
lea rdi, [rsp + 0x80]
movaps xmmword [rdi], xmm0
mov r8, qword [rbx]
lea rdx, str.first
mov rcx, rdi
call fcn.1401f10f0
mov rcx, rdi
call fcn.1400090b0
mov rcx, rsi
call fcn.1401f1160
int3
mov rcx, rdi
call fcn.1401f3220
mov rcx, r15
mov rdx, r12
mov r8d, 2
call fcn.14000c320
jmp 0x1400efb4b
or byte [rcx + 0x1e], 0x80
add rcx, 0x20
jmp 0x1400efd08
int3
inc word [rax + 0x10]
jmp 0x1400effe3
lock inc qword [rdi + 0x14a8]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov r8d, 2
call fcn.14000c320
mov rcx, rdi
mov rdx, qword [rsp + 0x38]
call fcn.1401f81f0
mov rdx, qword [rsp + 0x28]
jmp 0x1400efff1
test bpl, 1
jne 0x1400f06e6
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edx, 0x200000
mov rcx, rdi
call fcn.1401fc900
test bpl, 1
je 0x1400f07fe
mov byte [r13], 1
test bpl, 1
je 0x1400f07e4
xor ebx, ebx
jmp 0x1400efa19
test bpl, 1
je 0x1400f080c
xor edi, edi
xor r14d, r14d
xor r15d, r15d
jmp 0x1400f0501
test byte [r8 + 0x3e], 0x40
jne 0x1400f0819
mov r8d, r14d
sub r8d, edx
shr r8d, 5
and r8b, 0x3f
or r8b, 0x80
mov rdx, qword [rsp + 0x28]
mov byte [rdx + 0x3e], r8b
jmp 0x1400f0433
mov qword [rsp + 0x28], rsi
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400f075c
mov rcx, qword [rsp + 0x40]
call fcn.1400ef7c0
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
call fcn.1401f3220
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x38]
mov rdx, r15
mov r8d, 0x1000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
mov rsi, qword [rsp + 0x28]
jne 0x1400f0498
test bpl, 1
je 0x1400f081c
mov rsi, qword [rsp + 0x30]
lock inc qword [rsi + 0x14a8]
lea rcx, [0x1402b5e00]
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r9, rdi
call fcn.140008fc0
lock sub qword [rsi + 0x1490], rdi
xor edi, edi
xor r15d, r15d
mov rsi, qword [rsp + 0x28]
jmp 0x1400f0501
mov rsi, qword [rsp + 0x30]
lea rcx, [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rsi
mov rdx, rbx
call fcn.1401f3290
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rbx
call fcn.1401fdea0
mov rcx, qword [rsp + 0x30]
mov rdx, r14
call fcn.1401fc900
int3
mov rcx, qword [rsp + 0x30]
mov rdx, r15
call fcn.1401fc930
mov rax, qword [r14 + 8]
mov qword [rsi + 8], rax
cmp qword [r14], 0
jne 0x1400f0855
mov rax, qword [rsi + 0x10]
mov qword [r14 + 8], rax
mov qword [rsi + 0x10], r14
mov rax, r14
mov r14, qword [rsi + 8]
test r14, r14
je 0x1400efc14
jmp 0x1400f0829
mov qword [r14 + 8], 0
mov rax, r14
and rax, 0xffffffffffe00000
inc word [rax + 0x1012]
mov rax, qword [r14 + 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 [r14 + 0x18]
shr eax, 0xe
and eax, 0x1fff
sub rdx, rax
imul rcx, rdx
add rcx, 0xfff
and rcx, 0xfffffffffffff000
sub qword [rdi + 0x14d8], rcx
jmp 0x1400ef9a5