Function at 0x1407e1b50
Capabilities:
Inspect section memory permissions

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x278]
sub rsp, 0x378
mov r14, rcx
xor esi, esi
mov ebx, esi
mov dword [rbp + 0x2c0], ebx
mov dword [rbp + 0x2c0], esi
mov qword [rbp + 0x1b0], rcx
mov byte [rbp + 0x1b8], 1
mov eax, dword [rcx + 0x258]
inc eax
mov dword [rbp + 0x2d0], eax
movsxd r12, eax
mov qword [rsp + 0x38], r12
lea rdi, [0x140e8a5a8]
test dword [rcx + 0x228], 0x1000
je 0x1407e1e22
mov dword [rbp + 0x2c8], esi
mov eax, dword [rcx + 0x128]
inc eax
test eax, eax
jle 0x1407e1e22
mov r13d, esi
mov r15, qword [r14 + 0x120]
add r15, r13
mov qword [rbp + 0x2d8], r15
cmp byte [r15 + 0x51], 0
je 0x1407e1dfb
mov rax, qword [r15 + 0x40]
test rax, rax
je 0x1407e1dfb
cmp qword [rax], rdi
je 0x1407e1dfb
lea rdx, [r14 + 0x198]
mov rcx, r15
call fcn.1406e7cc0
test al, al
je 0x1407e1dfb
lea r12, [r15 + 0x10]
mov rax, qword [r12]
test rax, rax
je 0x1407e21d1
cmp qword [rax], rdi
je 0x1407e21d1
mov rdi, rsi
mov r15, qword [rsp + 0x38]
nop
cmp rdi, r15
jge 0x1407e1c87
or ebx, 1
mov rax, qword [r14 + 0x250]
mov edx, dword [rsi + rax + 4]
mov ecx, dword [rsi + rax]
lea rax, [r14 + 0x248]
mov qword [rbp + 0x120], rax
mov dword [rbp + 0x128], ecx
mov dword [rbp + 0x12c], edx
mov rdx, r12
lea rcx, [rbp + 0x120]
call fcn.1406e7cc0
test al, al
jne 0x1407e1c87
mov al, 1
jmp 0x1407e1c89
xor al, al
test bl, 1
je 0x1407e1c91
and ebx, 0xfffffffe
test al, al
je 0x1407e1c9e
inc rdi
add rsi, 0x20
jmp 0x1407e1c40
mov r12, r15
cmp rdi, r15
mov r15, qword [rbp + 0x2d8]
jne 0x1407e21ca
cmp dword [r15 + 0x2c], 0
jne 0x1407e1f79
mov dword [rbp + 0x90], 5
lea rax, [0x140f119ec]
mov qword [rbp + 0x98], rax
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rbp + 0x1c0], xmm0
lea rdx, [r15 + 0x30]
lea rcx, [rbp + 0x1c0]
call fcn.1406e7d80
test al, al
je 0x1407e1f79
mov edx, dword [r14 + 8]
lea ecx, [rdx + 2]
mov eax, dword [r14 + 0xc]
cmp ecx, eax
jle 0x1407e1d35
add eax, eax
cmp ecx, eax
cmovl ecx, eax
mov dword [r14 + 0xc], ecx
movsxd rdx, ecx
shl rdx, 5
mov rcx, qword [r14]
call fcn.1408e18d4
mov qword [r14], rax
test rax, rax
jne 0x1407e1d31
call fcn.14074ba20
mov edx, dword [r14 + 8]
mov rdi, qword [r14]
lea eax, [rdx + 1]
mov dword [r14 + 8], eax
movsxd rax, edx
inc rax
shl rax, 5
add rdi, rax
xor esi, esi
mov qword [rdi], rsi
mov qword [rdi + 8], rsi
mov rax, qword [r15 + 0x40]
mov qword [rbp + 8], rax
mov eax, dword [r15 + 0x48]
mov dword [rbp + 0x10], eax
mov eax, dword [r15 + 0x4c]
mov dword [rbp + 0x14], eax
mov dword [rbp + 0x30], 0x1d
lea rax, [0x140f11ad8]
mov qword [rbp + 0x38], rax
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rbp + 0x1d0], xmm0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x1d0]
call fcn.1406e7d80
test al, al
jne 0x1407e1ef0
mov dword [rbp + 0x180], 0x24
lea rax, [0x140f11af8]
mov qword [rbp + 0x188], rax
movaps xmm0, xmmword [rbp + 0x180]
movdqa xmmword [rbp + 0x1e0], xmm0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x1e0]
call fcn.1406e7d80
test al, al
jne 0x1407e1ef0
mov rax, qword [rbp + 8]
mov qword [rdi + 0x10], rax
mov eax, dword [rbp + 0x10]
mov dword [rdi + 0x18], eax
mov eax, dword [rbp + 0x14]
mov dword [rdi + 0x1c], eax
lea rdi, [0x140e8a5a8]
mov r15d, dword [rbp + 0x2c8]
inc r15d
mov dword [rbp + 0x2c8], r15d
add r13, 0x58
mov eax, dword [r14 + 0x128]
inc eax
cmp r15d, eax
jl 0x1407e1bd3
lea r8, [r14 + 0x178]
lea rdx, [rbp + 0x260]
mov rcx, r14
call fcn.1407dad10
mov r9, qword [rax]
mov qword [r14 + 0x188], r9
mov ecx, dword [rax + 8]
mov dword [r14 + 0x190], ecx
mov eax, dword [rax + 0xc]
mov dword [r14 + 0x194], eax
movsxd rax, dword [r14 + 0x30]
lea rcx, [rax + rax*8]
mov rax, qword [r14 + 0x28]
lea r8, [rax + rcx*8]
mov qword [r8 + 0x30], r9
mov eax, dword [r14 + 0x190]
mov dword [r8 + 0x38], eax
mov eax, dword [r14 + 0x194]
mov dword [r8 + 0x3c], eax
lea rdi, [r14 + 0xf8]
mov edx, dword [rbp + 0x2d0]
mov rcx, rdi
call fcn.1407e19d0
mov dword [rbp + 0x2c8], esi
test r12, r12
jle 0x1407e2b01
mov r13, rsi
mov qword [rbp + 0x90], rsi
lea r8, [r14 + 0x248]
mov rax, qword [rdi]
mov ecx, dword [rax]
cmp ecx, 1
jbe 0x1407e21ed
mov rax, qword [rdi]
mov edx, dword [rax + 8]
and edx, 0x7fffffff
jne 0x1407e21db
lea r9d, [rdx + 2]
xor r8d, r8d
lea edx, [r9 + 6]
lea ecx, [rdx + 0x48]
call fcn.1406e4920
mov qword [rdi], rax
jmp 0x1407e21e6
mov dword [rsp + 0x20], 0xffffffff
xor r9d, r9d
lea r8, [0x140f11b20]
lea rdx, [0x140f11978]
lea rcx, [rbp - 0x70]
call fcn.140707930
bts ebx, 8
mov dword [r14 + 0xc8], 3
lea rcx, [r14 + 0xd0]
lea rdx, [rbp - 0x70]
call fcn.1406e73b0
mov dword [r14 + 0xc4], 1
mov rax, qword [rbp - 0x70]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e1f62
cmp ecx, 0xffffffff
je 0x1407e1df4
mov rax, qword [rbp - 0x70]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e1df4
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x70]
call fcn.1406e4ad0
jmp 0x1407e1df4
mov dword [rbp + 0x130], 5
lea rax, [0x140f119ec]
mov qword [rbp + 0x138], rax
movaps xmm0, xmmword [rbp + 0x130]
movdqa xmmword [rbp + 0x1f0], xmm0
lea rdx, [r15 + 0x20]
lea rcx, [rbp + 0x1f0]
call fcn.1406e7d80
test al, al
je 0x1407e21ca
mov edx, dword [r14 + 8]
lea ecx, [rdx + 2]
mov eax, dword [r14 + 0xc]
cmp ecx, eax
jle 0x1407e1ff2
add eax, eax
cmp ecx, eax
cmovl ecx, eax
mov dword [r14 + 0xc], ecx
movsxd rdx, ecx
shl rdx, 5
mov rcx, qword [r14]
call fcn.1408e18d4
mov qword [r14], rax
test rax, rax
jne 0x1407e1fee
call fcn.14074ba20
mov edx, dword [r14 + 8]
mov rsi, qword [r14]
lea eax, [rdx + 1]
mov dword [r14 + 8], eax
movsxd rax, edx
inc rax
shl rax, 5
add rsi, rax
mov rax, qword [r15 + 0x30]
mov qword [rbp + 0x18], rax
mov eax, dword [r15 + 0x38]
mov dword [rbp + 0x20], eax
mov eax, dword [r15 + 0x3c]
mov dword [rbp + 0x24], eax
mov rax, qword [r15 + 0x40]
mov qword [rbp - 0x58], rax
mov eax, dword [r15 + 0x48]
mov dword [rbp - 0x50], eax
mov eax, dword [r15 + 0x4c]
mov dword [rbp - 0x4c], eax
mov dword [rbp + 0x150], 3
lea rax, [0x140f11a20]
mov qword [rbp + 0x158], rax
mov dword [rbp + 0x140], 0x24
lea rax, [0x140f11af8]
mov qword [rbp + 0x148], rax
movaps xmm0, xmmword [rbp + 0x140]
movdqa xmmword [rbp + 0x250], xmm0
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0x250]
call fcn.1406e7d80
movzx edi, al
movaps xmm0, xmmword [rbp + 0x150]
movdqa xmmword [rbp + 0x200], xmm0
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0x200]
call fcn.1406e7d80
cmp al, dil
jne 0x1407e2127
mov dword [rbp + 0x160], 0x1d
lea rax, [0x140f11ad8]
mov qword [rbp + 0x168], rax
movaps xmm0, xmmword [rbp + 0x160]
movdqa xmmword [rbp + 0x210], xmm0
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0x210]
call fcn.1406e7d80
test al, al
jne 0x1407e2127
cmp dword [rbp - 0x4c], 0
je 0x1407e2127
mov dword [rbp + 0x170], 5
lea rax, [0x140f119ec]
mov qword [rbp + 0x178], rax
movaps xmm0, xmmword [rbp + 0x170]
movdqa xmmword [rbp + 0x220], xmm0
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0x220]
call fcn.1406e7d80
test al, al
je 0x1407e21a3
mov dword [rsp + 0x20], 0xffffffff
xor r9d, r9d
lea r8, [0x140f11b20]
lea rdx, [0x140f11978]
lea rcx, [rbp - 0x68]
call fcn.140707930
bts ebx, 0xb
mov dword [r14 + 0xc8], 3
lea rcx, [r14 + 0xd0]
lea rdx, [rbp - 0x68]
call fcn.1406e73b0
mov dword [r14 + 0xc4], 1
mov rax, qword [rbp - 0x68]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2191
cmp ecx, 0xffffffff
je 0x1407e21a3
mov rax, qword [rbp - 0x68]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e21a3
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x68]
call fcn.1406e4ad0
mov rax, qword [rbp + 0x18]
mov qword [rsi], rax
mov eax, dword [rbp + 0x20]
mov dword [rsi + 8], eax
mov eax, dword [rbp + 0x24]
mov dword [rsi + 0xc], eax
mov rax, qword [rbp - 0x58]
mov qword [rsi + 0x10], rax
mov eax, dword [rbp - 0x50]
mov dword [rsi + 0x18], eax
mov eax, dword [rbp - 0x4c]
mov dword [rsi + 0x1c], eax
xor esi, esi
jmp 0x1407e1df4
mov r12, qword [rsp + 0x38]
jmp 0x1407e1dfb
mov r8d, esi
mov rcx, rdi
call fcn.1407e1130
lea r8, [r14 + 0x248]
mov rcx, qword [rdi]
lea rax, [r13*4]
add rax, r13
shl rax, 4
mov rdx, qword [rcx + 0x10]
add rdx, rax
add rdx, rcx
mov qword [rbp + 0x30], rdx
mov rdx, r13
shl rdx, 5
add rdx, qword [r14 + 0x250]
mov ecx, dword [rdx + 8]
test ecx, ecx
je 0x1407e2232
dec ecx
mov eax, dword [rdx]
mov qword [rbp - 0x80], r8
mov dword [rbp - 0x78], eax
mov dword [rbp - 0x74], ecx
jmp 0x1407e223e
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], 0
mov r13d, dword [rdx + 4]
mov eax, dword [rdx + 8]
mov esi, r13d
sub esi, eax
mov r12d, dword [rdx]
lea r15d, [rax + r12]
mov eax, dword [rdx + 0x14]
sub eax, dword [rdx + 0x18]
mov dword [rbp + 0x2d8], eax
mov eax, dword [rdx + 0x10]
add eax, dword [rdx + 0x18]
mov dword [rbp + 0x2d0], eax
test r8, r8
je 0x1407e229e
bts ebx, 0xe
mov rax, qword [r8]
mov qword [rsp + 0x40], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e228b
mov rax, qword [rsp + 0x40]
lock inc dword [rax]
lea rax, [rsp + 0x40]
mov rdi, qword [rsp + 0x40]
lea rcx, [0x140e8a5a8]
jmp 0x1407e22b0
bts ebx, 0xf
lea rax, [rbp - 0x48]
lea rcx, [0x140e8a5a8]
mov rdi, rcx
mov qword [rax], rcx
bt ebx, 0xf
jae 0x1407e22ed
btr ebx, 0xf
mov rax, qword [rbp - 0x48]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e22db
cmp ecx, 0xffffffff
je 0x1407e22ed
mov rax, qword [rbp - 0x48]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e22ed
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x48]
call fcn.1406e4ad0
bt ebx, 0xe
jae 0x1407e232a
btr ebx, 0xe
mov rax, qword [rsp + 0x40]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2317
cmp ecx, 0xffffffff
je 0x1407e232a
mov rax, qword [rsp + 0x40]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e232a
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x40]
call fcn.1406e4ad0
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
mov qword [rax], rdi
mov dword [rax + 8], r15d
mov dword [rax + 0xc], esi
mov eax, dword [rcx]
test eax, eax
je 0x1407e2351
cmp eax, 0xffffffff
je 0x1407e235f
lock add dword [rcx], 0xffffffff
setne al
test al, al
jne 0x1407e235f
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
lea rsi, [r14 + 0x248]
test rsi, rsi
je 0x1407e239c
mov rax, qword [rsi]
mov qword [rsp + 0x48], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2384
mov rax, qword [rsp + 0x48]
lock inc dword [rax]
lea rax, [rsp + 0x48]
mov rdi, qword [rsp + 0x48]
mov ecx, 0x10000
lea r15, [0x140e8a5a8]
jmp 0x1407e23af
lea rax, [rbp - 0x40]
lea r15, [0x140e8a5a8]
mov rdi, r15
mov ecx, 0x20000
or ebx, ecx
mov qword [rax], r15
bt ebx, 0x11
jae 0x1407e23ee
btr ebx, 0x11
mov rax, qword [rbp - 0x40]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e23dc
cmp ecx, 0xffffffff
je 0x1407e23ee
mov rax, qword [rbp - 0x40]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e23ee
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x40]
call fcn.1406e4ad0
bt ebx, 0x10
jae 0x1407e242b
btr ebx, 0x10
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2418
cmp ecx, 0xffffffff
je 0x1407e242b
mov rax, qword [rsp + 0x48]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e242b
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x48]
call fcn.1406e4ad0
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax + 0x20]
mov qword [rax + 0x20], rdi
mov dword [rax + 0x28], r12d
mov dword [rax + 0x2c], r13d
mov eax, dword [rcx]
test eax, eax
je 0x1407e2455
cmp eax, 0xffffffff
je 0x1407e2463
lock add dword [rcx], 0xffffffff
setne al
test al, al
jne 0x1407e2463
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
test rsi, rsi
je 0x1407e2492
mov rax, qword [rsi]
mov qword [rsp + 0x50], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2481
mov rax, qword [rsp + 0x50]
lock inc dword [rax]
lea rax, [rsp + 0x50]
mov rdi, qword [rsp + 0x50]
mov ecx, 0x40000
jmp 0x1407e249e
lea rax, [rbp - 0x38]
mov rdi, r15
mov ecx, 0x80000
or ebx, ecx
mov qword [rax], r15
bt ebx, 0x13
jae 0x1407e24dd
btr ebx, 0x13
mov rax, qword [rbp - 0x38]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e24cb
cmp ecx, 0xffffffff
je 0x1407e24dd
mov rax, qword [rbp - 0x38]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e24dd
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x38]
call fcn.1406e4ad0
bt ebx, 0x12
jae 0x1407e251a
btr ebx, 0x12
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2507
cmp ecx, 0xffffffff
je 0x1407e251a
mov rax, qword [rsp + 0x50]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e251a
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x50]
call fcn.1406e4ad0
mov r12, qword [rbp + 0x30]
mov rcx, qword [r12 + 0x30]
mov qword [r12 + 0x30], rdi
mov eax, dword [rbp + 0x2d0]
mov dword [r12 + 0x38], eax
mov eax, dword [rbp + 0x2d8]
mov dword [r12 + 0x3c], eax
mov eax, dword [rcx]
test eax, eax
je 0x1407e2554
cmp eax, 0xffffffff
je 0x1407e2562
lock add dword [rcx], 0xffffffff
setne al
test al, al
jne 0x1407e2562
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
mov eax, dword [rbp - 0x74]
test eax, eax
je 0x1407e27e7
mov esi, dword [r14 + 8]
test esi, esi
js 0x1407e25a1
nop word [rax + rax]
mov edi, esi
shl rdi, 5
add rdi, qword [r14]
lea rdx, [rbp - 0x80]
mov rcx, rdi
call fcn.1406e7cc0
test al, al
jne 0x1407e2608
sub esi, 1
jns 0x1407e2580
mov eax, dword [rbp - 0x74]
test dword [r14 + 0x228], 0x1000
je 0x1407e2715
test eax, eax
je 0x1407e2715
mov dword [rsp + 0x20], 0xffffffff
xor r9d, r9d
lea r8, [0x140f11d10]
lea rdx, [0x140f11978]
lea rcx, [rbp - 0x60]
call fcn.140707930
bts ebx, 0x14
movsxd r9, dword [rbp - 0x74]
mov rdx, qword [rbp - 0x80]
test rdx, rdx
je 0x1407e2649
cmp qword [rdx], r15
je 0x1407e2649
mov rdx, qword [rdx]
movsxd rcx, dword [rbp - 0x78]
mov rax, qword [rdx + 0x10]
lea r8, [rax + rcx*2]
add r8, rdx
xor edi, edi
jmp 0x1407e264e
mov rax, qword [rdi + 0x10]
mov esi, dword [rdi + 0x18]
mov r15d, dword [rdi + 0x1c]
test rax, rax
je 0x1407e271c
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2635
mov rax, qword [rsp + 0x58]
lock inc dword [rax]
lea rax, [rsp + 0x58]
mov rdi, qword [rsp + 0x58]
mov ecx, 0x800000
jmp 0x1407e272c
xor edi, edi
mov r8d, edi
mov qword [rbp + 0x1a0], r9
mov qword [rbp + 0x1a8], r8
movaps xmm0, xmmword [rbp + 0x1a0]
movdqa xmmword [rbp + 0x230], xmm0
mov eax, 0x20
mov word [rsp + 0x20], ax
xor r9d, r9d
lea r8, [rbp + 0x230]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x60]
call fcn.1406e8d90
nop
mov dword [r14 + 0xc8], 3
lea rcx, [r14 + 0xd0]
mov rdx, rax
call fcn.1406e73b0
mov dword [r14 + 0xc4], 1
mov rax, qword [rbp - 0x30]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e26d0
cmp ecx, 0xffffffff
je 0x1407e26e3
mov rax, qword [rbp - 0x30]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e26e3
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x30]
call fcn.1406e4ad0
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2701
cmp ecx, 0xffffffff
je 0x1407e2717
mov rax, qword [rbp - 0x60]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2717
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x60]
call fcn.1406e4ad0
jmp 0x1407e2717
xor edi, edi
mov esi, edi
mov r15d, edi
lea rax, [rbp - 0x28]
lea rdi, [0x140e8a5a8]
mov ecx, 0x1000000
or ebx, ecx
lea rcx, [0x140e8a5a8]
mov qword [rax], rcx
bt ebx, 0x18
jae 0x1407e2772
btr ebx, 0x18
mov rax, qword [rbp - 0x28]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2760
cmp ecx, 0xffffffff
je 0x1407e2772
mov rax, qword [rbp - 0x28]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2772
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x28]
call fcn.1406e4ad0
bt ebx, 0x17
jae 0x1407e27af
btr ebx, 0x17
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e279c
cmp ecx, 0xffffffff
je 0x1407e27af
mov rax, qword [rsp + 0x58]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e27af
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x58]
call fcn.1406e4ad0
mov rcx, qword [r12 + 0x10]
mov qword [r12 + 0x10], rdi
mov dword [r12 + 0x18], esi
mov dword [r12 + 0x1c], r15d
mov eax, dword [rcx]
test eax, eax
je 0x1407e27d9
cmp eax, 0xffffffff
je 0x1407e27e7
lock add dword [rcx], 0xffffffff
setne al
test al, al
jne 0x1407e27e7
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
xor esi, esi
mov r15d, esi
mov r13, qword [rbp + 0x90]
test r13, r13
je 0x1407e29b6
mov edi, esi
nop
mov ecx, dword [r12 + 0xc]
mov eax, dword [r12 + 8]
mov qword [rbp + 0xa0], r12
mov dword [rbp + 0xa8], eax
mov dword [rbp + 0xac], ecx
lea rcx, [r14 + 0xf8]
call fcn.1407d9150
mov rax, qword [r14 + 0xf8]
mov rdx, qword [rax + 0x10]
add rdx, rdi
add rdx, rax
or ebx, 6
mov ecx, dword [rdx + 0xc]
mov eax, dword [rdx + 8]
mov qword [rbp + 0xb0], rdx
mov dword [rbp + 0xb8], eax
mov dword [rbp + 0xbc], ecx
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xb0]
call fcn.1406e7cc0
test al, al
je 0x1407e296b
lea rcx, [r12 + 0x10]
mov edx, dword [rcx + 0xc]
mov eax, dword [rcx + 8]
mov qword [rbp + 0xc0], rcx
mov dword [rbp + 0xc8], eax
mov dword [rbp + 0xcc], edx
lea rcx, [r14 + 0xf8]
call fcn.1407d9150
mov rax, qword [r14 + 0xf8]
mov rcx, qword [rax + 0x10]
add rcx, 0x10
add rcx, rdi
or ebx, 0x18
add rcx, rax
mov edx, dword [rcx + 0xc]
mov eax, dword [rcx + 8]
mov qword [rbp + 0xd0], rcx
mov dword [rbp + 0xd8], eax
mov dword [rbp + 0xdc], edx
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0xd0]
call fcn.1406e7cc0
test al, al
je 0x1407e296b
test dword [r14 + 0x228], 0x1000
jne 0x1407e2966
lea rdx, [r12 + 0x20]
mov ecx, dword [rdx + 0xc]
mov eax, dword [rdx + 8]
mov qword [rbp + 0xe0], rdx
mov dword [rbp + 0xe8], eax
mov dword [rbp + 0xec], ecx
lea rcx, [r14 + 0xf8]
call fcn.1407d9150
mov rax, qword [r14 + 0xf8]
mov rcx, qword [rax + 0x10]
add rcx, 0x20
add rcx, rdi
add rcx, rax
mov edx, dword [rcx + 0xc]
mov eax, dword [rcx + 8]
mov qword [rbp + 0xf0], rcx
mov dword [rbp + 0xf8], eax
mov dword [rbp + 0xfc], edx
or ebx, 0x60
lea rdx, [rbp + 0xe0]
lea rcx, [rbp + 0xf0]
call fcn.1406e7cc0
test al, al
je 0x1407e296b
mov r8b, 1
jmp 0x1407e296e
xor r8b, r8b
mov eax, ebx
mov ecx, ebx
and ecx, 0xffffffbf
and al, 0x40
cmove ecx, ebx
mov eax, ecx
mov edx, ecx
and edx, 0xffffffdf
and al, 0x20
cmove edx, ecx
mov eax, edx
mov ecx, edx
and ecx, 0xffffffef
and al, 0x10
cmove ecx, edx
mov eax, ecx
mov ebx, ecx
and ebx, 0xfffffff7
and al, 8
cmove ebx, ecx
and ebx, 0xfffffff9
test r8b, r8b
jne 0x1407e29dd
inc r15
add rdi, 0x50
cmp r15, r13
jl 0x1407e2800
inc dword [rbp + 0x2c8]
inc r13
mov qword [rbp + 0x90], r13
cmp r13, qword [rsp + 0x38]
jge 0x1407e2b01
lea rdi, [r14 + 0xf8]
jmp 0x1407e1eae
mov dword [rsp + 0x20], 0xffffffff
xor r9d, r9d
lea r8, [0x140f11d38]
lea rdx, [0x140f11978]
lea rcx, [rsp + 0x38]
call fcn.140707930
nop
movsxd r8, dword [r12 + 0x2c]
mov rdx, qword [r12 + 0x20]
lea rax, [0x140e8a5a8]
cmp rdx, rax
je 0x1407e2a29
movsxd rcx, dword [r12 + 0x28]
mov rax, qword [rdx + 0x10]
lea rdi, [rax + rcx*2]
add rdi, rdx
jmp 0x1407e2a2b
xor edi, edi
mov qword [rbp + 0x190], r8
mov qword [rbp + 0x198], rdi
movaps xmm0, xmmword [rbp + 0x190]
movdqa xmmword [rbp + 0x240], xmm0
mov eax, 0x20
mov word [rsp + 0x20], ax
xor r9d, r9d
lea r8, [rbp + 0x240]
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x38]
call fcn.1406e8d90
nop
mov dword [r14 + 0xc8], 3
lea rcx, [r14 + 0xd0]
mov rdx, rax
call fcn.1406e73b0
mov dword [r14 + 0xc4], 1
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2aae
cmp ecx, 0xffffffff
je 0x1407e2ac1
mov rax, qword [rbp - 0x20]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2ac1
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x20]
call fcn.1406e4ad0
nop
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2ae9
cmp ecx, 0xffffffff
je 0x1407e30dc
mov rax, qword [rsp + 0x38]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e30dc
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x38]
call fcn.1406e4ad0
jmp 0x1407e30dc
mov dword [rbp + 0x2c8], esi
mov eax, dword [r14 + 0x128]
inc eax
test eax, eax
jle 0x1407e30dc
mov r13, rsi
nop dword [rax + rax]
imul r15, r13, 0x58
add r15, qword [r14 + 0x120]
mov qword [rbp + 0x2d0], r15
cmp byte [r15 + 0x51], 0
jne 0x1407e30b6
mov rax, qword [r15 + 0x40]
test rax, rax
je 0x1407e30b6
lea rdi, [0x140e8a5a8]
cmp qword [rax], rdi
je 0x1407e30b6
lea rdx, [r14 + 0x198]
mov rcx, r15
call fcn.1406e7cc0
test al, al
je 0x1407e30b6
lea r12, [r15 + 0x10]
mov rax, qword [r12]
test rax, rax
je 0x1407e30b6
cmp qword [rax], rdi
je 0x1407e30b6
mov rdi, rsi
mov r15, qword [rsp + 0x38]
cmp rdi, r15
jge 0x1407e2bdb
bts ebx, 7
mov rax, qword [r14 + 0x250]
mov edx, dword [rsi + rax + 4]
mov ecx, dword [rsi + rax]
lea rax, [r14 + 0x248]
mov qword [rbp + 0x100], rax
mov dword [rbp + 0x108], ecx
mov dword [rbp + 0x10c], edx
mov rdx, r12
lea rcx, [rbp + 0x100]
call fcn.1406e7cc0
test al, al
jne 0x1407e2bdb
mov al, 1
jmp 0x1407e2bdd
xor al, al
test bl, bl
jns 0x1407e2be5
btr ebx, 7
test al, al
je 0x1407e2bf2
inc rdi
add rsi, 0x20
jmp 0x1407e2b93
cmp rdi, r15
mov r15, qword [rbp + 0x2d0]
jne 0x1407e30b4
lea rdx, [0x140e8a5a8]
mov qword [rbp + 0x40], rdx
xor esi, esi
mov qword [rbp + 0x48], rsi
mov qword [rbp + 0x50], rdx
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x60], rdx
mov qword [rbp + 0x68], rsi
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], rsi
and dword [rbp + 0x88], 0xfffffffe
mov rax, qword [r15 + 0x30]
test rax, rax
je 0x1407e2c65
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2c54
mov rax, qword [rsp + 0x60]
lock inc dword [rax]
lea rax, [rsp + 0x60]
mov rdi, qword [rsp + 0x60]
mov ecx, 0x10000000
jmp 0x1407e2c71
lea rax, [rbp - 0x18]
mov rdi, rdx
mov ecx, 0x20000000
or ebx, ecx
mov qword [rax], rdx
bt ebx, 0x1d
jae 0x1407e2cb0
btr ebx, 0x1d
mov rax, qword [rbp - 0x18]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2c9e
cmp ecx, 0xffffffff
je 0x1407e2cb0
mov rax, qword [rbp - 0x18]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2cb0
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x18]
call fcn.1406e4ad0
bt ebx, 0x1c
jae 0x1407e2ced
btr ebx, 0x1c
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2cda
cmp ecx, 0xffffffff
je 0x1407e2ced
mov rax, qword [rsp + 0x60]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2ced
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x60]
call fcn.1406e4ad0
mov eax, dword [r15 + 0x38]
mov ecx, dword [r15 + 0x3c]
mov r9, qword [rbp + 0x40]
mov qword [rbp + 0x40], rdi
mov dword [rbp + 0x48], eax
mov dword [rbp + 0x4c], ecx
mov eax, dword [r9]
test eax, eax
je 0x1407e2d1b
cmp eax, 0xffffffff
je 0x1407e2d2c
lock add dword [r9], 0xffffffff
setne al
test al, al
jne 0x1407e2d2c
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, r9
call fcn.1406e4ad0
mov rax, qword [r12]
test rax, rax
je 0x1407e2d5f
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2d4e
mov rax, qword [rsp + 0x68]
lock inc dword [rax]
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x68]
mov ecx, 0x40000000
jmp 0x1407e2d6f
lea rax, [rbp - 0x10]
lea rdi, [0x140e8a5a8]
mov ecx, 0x80000000
or ebx, ecx
lea rcx, [0x140e8a5a8]
mov qword [rax], rcx
jge 0x1407e2db1
btr ebx, 0x1f
mov rax, qword [rbp - 0x10]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2d9f
cmp ecx, 0xffffffff
je 0x1407e2db1
mov rax, qword [rbp - 0x10]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2db1
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x10]
call fcn.1406e4ad0
bt ebx, 0x1e
jae 0x1407e2dee
btr ebx, 0x1e
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2ddb
cmp ecx, 0xffffffff
je 0x1407e2dee
mov rax, qword [rsp + 0x68]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2dee
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x68]
call fcn.1406e4ad0
mov eax, dword [r12 + 8]
mov ecx, dword [r12 + 0xc]
mov r9, qword [rbp + 0x60]
mov qword [rbp + 0x60], rdi
mov dword [rbp + 0x68], eax
mov dword [rbp + 0x6c], ecx
mov eax, dword [r9]
test eax, eax
je 0x1407e2e1e
cmp eax, 0xffffffff
je 0x1407e2e2f
lock add dword [r9], 0xffffffff
setne al
test al, al
jne 0x1407e2e2f
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, r9
call fcn.1406e4ad0
mov rax, qword [r15 + 0x40]
mov r12d, dword [rbp + 0x2c0]
test rax, rax
je 0x1407e2e76
or r12d, 1
mov dword [rbp + 0x2c0], r12d
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2e63
mov rax, qword [rsp + 0x70]
lock inc dword [rax]
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x70]
lea rcx, [0x140e8a5a8]
jmp 0x1407e2e8f
or r12d, 2
mov dword [rbp + 0x2c0], r12d
lea rax, [rbp - 8]
lea rcx, [0x140e8a5a8]
mov rdi, rcx
mov qword [rax], rcx
test r12b, 2
je 0x1407e2ed3
and r12d, 0xfffffffd
mov dword [rbp + 0x2c0], r12d
mov rax, qword [rbp - 8]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2ec1
cmp ecx, 0xffffffff
je 0x1407e2ed3
mov rax, qword [rbp - 8]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2ed3
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 8]
call fcn.1406e4ad0
test r12b, 1
je 0x1407e2f17
and r12d, 0xfffffffe
mov dword [rbp + 0x2c0], r12d
mov rax, qword [rsp + 0x70]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2f04
cmp ecx, 0xffffffff
je 0x1407e2f17
mov rax, qword [rsp + 0x70]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e2f17
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x70]
call fcn.1406e4ad0
mov eax, dword [r15 + 0x48]
mov ecx, dword [r15 + 0x4c]
mov r9, qword [rbp + 0x70]
mov qword [rbp + 0x70], rdi
mov dword [rbp + 0x78], eax
mov dword [rbp + 0x7c], ecx
mov eax, dword [r9]
test eax, eax
je 0x1407e2f45
cmp eax, 0xffffffff
je 0x1407e2f56
lock add dword [r9], 0xffffffff
setne al
test al, al
jne 0x1407e2f56
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, r9
call fcn.1406e4ad0
cmp dword [r15 + 0x2c], 0
je 0x1407e3091
lea r8, [r15 + 0x20]
lea rdx, [rbp + 0x110]
mov rcx, r14
call fcn.1407dad10
mov rax, qword [rbp + 0x110]
test rax, rax
je 0x1407e2faa
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
mov ecx, dword [rax]
inc ecx
cmp ecx, 1
jbe 0x1407e2f99
mov rax, qword [rsp + 0x78]
lock inc dword [rax]
lea rax, [rsp + 0x78]
mov rdi, qword [rsp + 0x78]
mov ecx, 4
jmp 0x1407e2fba
lea rax, [rbp]
lea rdi, [0x140e8a5a8]
mov ecx, 8
or r12d, ecx
mov dword [rbp + 0x2c0], r12d
lea rcx, [0x140e8a5a8]
mov qword [rax], rcx
test r12b, 8
je 0x1407e300f
and r12d, 0xfffffff7
mov dword [rbp + 0x2c0], r12d
mov rax, qword [rbp]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e2ffd
cmp ecx, 0xffffffff
je 0x1407e300f
mov rax, qword [rbp]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e300f
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp]
call fcn.1406e4ad0
test r12b, 4
je 0x1407e3053
and r12d, 0xfffffffb
mov dword [rbp + 0x2c0], r12d
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax]
test ecx, ecx
je 0x1407e3040
cmp ecx, 0xffffffff
je 0x1407e3053
mov rax, qword [rsp + 0x78]
lock add dword [rax], 0xffffffff
setne al
test al, al
jne 0x1407e3053
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x78]
call fcn.1406e4ad0
mov rcx, qword [rbp + 0x50]
mov qword [rbp + 0x50], rdi
mov eax, dword [rbp + 0x118]
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x11c]
mov dword [rbp + 0x5c], eax
mov eax, dword [rcx]
test eax, eax
je 0x1407e3083
cmp eax, 0xffffffff
je 0x1407e3091
lock add dword [rcx], 0xffffffff
setne al
test al, al
jne 0x1407e3091
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
or dword [rbp + 0x88], 1
lea rdx, [rbp + 0x40]
lea rcx, [r14 + 0xf8]
call fcn.1407d8510
nop
lea rcx, [rbp + 0x40]
call fcn.1407d7d40
jmp 0x1407e30b6
xor esi, esi
mov r15d, dword [rbp + 0x2c8]
inc r15d
mov dword [rbp + 0x2c8], r15d
inc r13
mov eax, dword [r14 + 0x128]
inc eax
cmp r15d, eax
jl 0x1407e2b20
mov dword [r14 + 0x258], 0xffffffff
add rsp, 0x378
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret