Function at 0x1400228e0
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x98]
cmp r12, qword [r14 + 0x10]
jbe 0x1400236fe
push rbp
mov rbp, rsp
sub rsp, 0x110
mov rdx, qword [r14 + 0x30]
cmp dword [rdx + 0xd8], 0
jne 0x14002291f
cmp dword [rdx + 0xc0], 0
jne 0x14002291f
mov rsi, r14
cmp qword [rdx], rsi
jne 0x1400236ec
mov rdx, qword [rax]
test bl, bl
jne 0x14002292d
mov qword [rax], 0
mov esi, dword [0x14021e6e0]
mov dword [rsp + 0x30], esi
nop
mov dil, byte [rdx + 0x6b]
nop dword [rax]
cmp dil, 1
jne 0x140023665
lea r8d, [rsi - 1]
cmp dword [rdx + 0x60], r8d
jne 0x140023665
mov byte [rsp + 0x128], bl
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x34], r8d
cmp byte [0x1401fe4a8], 0
je 0x140022995
mov rax, qword [rdx + 0x20]
shl rax, 0xd
call fcn.140053e40
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x128]
mov esi, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x34]
mov rdi, qword [rdx + 0x20]
lea r9, [rdx + 0x88]
lea r10, [0x14021e708]
lock xadd qword [r10], rdi
mov rdi, qword [rdx + 0x88]
mov qword [rsp + 0x98], rdi
movzx r10d, byte [rdx + 0x6a]
mov byte [rsp + 0x29], r10b
mov r11, qword [rdx + 0x70]
mov qword [rsp + 0x40], r11
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0xd8], rdi
nop
jmp 0x1400229f0
movzx ebx, byte [rsp + 0x128]
movzx r10d, byte [rsp + 0x29]
mov r9, qword [rsp + 0xd8]
nop dword [rax + rax]
test r9, r9
je 0x140022af0
test r11, r11
je 0x14002365e
movzx eax, word [r9 + 8]
mov rcx, rdx
xor edx, edx
div r11
mov rdx, rax
imul rax, r11
mov r12, qword [rcx + 0x18]
mov r13, qword [rcx + 0x50]
test byte [r13], al
mov r15, rdx
shr rdx, 3
movzx ebx, byte [rdx + r13]
and r15d, 7
mov rcx, r15
mov r10d, 1
shl r10d, cl
add r12, rax
nop
test r10b, bl
je 0x140022abe
cmp byte [r9 + 0xa], 3
je 0x140022a74
nop
mov qword [rsp + 0xd0], r9
mov rdx, qword [r9]
mov qword [rsp + 0xd8], rdx
jmp 0x140022ab4
mov rdx, qword [r9]
nop
mov qword [rsp + 0xd8], rdx
mov rsi, qword [rsp + 0xd0]
mov qword [rsi], rdx
mov byte [r9 + 0x11], 1
mov rax, r9
mov rbx, r12
mov rcx, r11
call fcn.140027440
mov esi, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x34]
mov r11, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
jmp 0x1400229e2
lea r10, [rax + r11]
jmp 0x1400235a0
bts ebx, ecx
nop
mov byte [r13 + rdx], bl
mov eax, 1
jmp 0x140022add
xor eax, eax
jmp 0x140022add
xor eax, eax
mov qword [rsp + 0x68], r10
mov byte [rsp + 0x2a], al
mov rdx, qword [rsp + 0x48]
jmp 0x1400235c5
test rdi, rdi
je 0x140022b88
cmp qword [rdx + 0x88], 0
jne 0x140022b88
mov rax, qword [rdx + 0x18]
movabs rdi, 0x800000000000
add rdi, rax
mov r9, rdi
shr rdi, 0x2a
nop
nop
nop
cmp rdi, 0x40
jae 0x14002358f
shr rax, 0xd
mov rcx, rax
and eax, 0x1ff
lea r12, [0x14021e738]
mov rdi, qword [r12 + rdi*8]
test byte [rdi], al
shr rax, 3
shr r9, 0x16
and r9d, 0xfffff
mov rdi, qword [rdi + r9*8]
test byte [rdi], al
nop word [rax + rax]
cmp rax, 0x40
jae 0x140023585
lea rdi, [rdi + rax]
lea rdi, [rdi + 0x11480]
and ecx, 7
mov r9d, 1
shl r9d, cl
not r9d
lock and byte [rdi], r9b
mov rdi, qword [rdx + 0x50]
test byte [rdi], al
mov qword [rsp + 0xe0], rdi
mov byte [rsp + 0xe8], 1
mov qword [rsp + 0xf0], 0
mov rdi, qword [rdx + 0x48]
test byte [rdi], al
nop
mov qword [rsp + 0xf8], rdi
mov byte [rsp + 0x100], 1
mov qword [rsp + 0x108], 0
xor eax, eax
jmp 0x140022bdc
inc qword [rsp + 0x108]
inc rax
mov rdi, qword [rdx + 0x38]
cmp rax, rdi
jae 0x140022d05
mov rdi, qword [rsp + 0xe0]
movzx r9d, byte [rsp + 0xe8]
movzx edi, byte [rdi]
nop dword [rax]
test dil, r9b
jne 0x140022c9c
mov rdi, qword [rsp + 0x108]
cmp qword [rdx + 0x30], rdi
ja 0x140022c30
mov rdi, qword [rsp + 0xf8]
movzx r9d, byte [rsp + 0x100]
movzx edi, byte [rdi]
test dil, r9b
je 0x140022c9c
mov qword [rsp + 0x60], rax
mov rdi, qword [rdx + 0x70]
imul rdi, rax
add rdi, qword [rdx + 0x18]
cmp dword [0x14024c910], 0
je 0x140022c85
mov qword [rsp + 0x38], rdi
mov rax, rdi
mov rbx, r11
call fcn.14002ce20
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x128]
mov esi, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x34]
movzx r10d, byte [rsp + 0x29]
mov r11, qword [rsp + 0x40]
cmp dword [0x14024c8c4], 0
je 0x1400234fc
mov r9, rdi
xor ecx, ecx
jmp 0x140023576
movzx edi, byte [rsp + 0xe8]
cmp dil, 0x80
jne 0x140022cbc
inc qword [rsp + 0xe0]
mov byte [rsp + 0xe8], 1
jmp 0x140022cc6
shl edi, 1
mov byte [rsp + 0xe8], dil
inc qword [rsp + 0xf0]
movzx edi, byte [rsp + 0x100]
nop
cmp dil, 0x80
jne 0x140022cf2
inc qword [rsp + 0xf8]
mov byte [rsp + 0x100], 1
jmp 0x140022bd1
shl edi, 1
mov byte [rsp + 0x100], dil
nop dword [rax]
jmp 0x140022bd1
mov rcx, qword [rdx + 0x30]
cmp rcx, rdi
jae 0x140022d85
mov rdi, qword [rdx + 0x50]
test byte [rdi], al
mov r9, rcx
shr r9, 3
movzx edi, byte [r9 + rdi]
mov r12, qword [rdx + 0x48]
test byte [r12], al
movzx r12d, byte [r9 + r12]
not r12d
and r12d, edi
and ecx, 7
shr r12b, cl
test r12b, r12b
je 0x140022d77
mov qword [rsp + 0x90], r9
mov rax, rdx
call fcn.140023900
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x128]
mov esi, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x34]
mov r9, qword [rsp + 0x90]
movzx r10d, byte [rsp + 0x29]
mov r11, qword [rsp + 0x40]
lea rcx, [r9 + 1]
nop dword [rax + rax]
jmp 0x14002348d
mov rcx, qword [rdx + 0x38]
add rcx, 7
nop
shr rcx, 3
mov qword [rsp + 0x90], rcx
xor eax, eax
xor edi, edi
nop
jmp 0x140022da9
add rax, 8
add rdi, r9
mov qword [rsp + 0x70], rdi
cmp rax, rcx
jae 0x140022e1f
mov r9, qword [rdx + 0x50]
test byte [r9], al
mov r9, qword [r9 + rax]
movzx r12d, byte [0x14024c34c]
test r12d, r12d
je 0x140022dd2
popcnt r9, r9
jmp 0x140022da2
mov qword [rsp + 0x50], rax
mov rax, r9
call fcn.140003500
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x128]
mov esi, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x34]
movzx r10d, byte [rsp + 0x29]
mov r11, qword [rsp + 0x40]
movzx r12d, byte [0x14024c34c]
mov r9, rax
mov rax, qword [rsp + 0x50]
jmp 0x140022da2
movzx ecx, word [rdx + 0x68]
mov r9d, ecx
sub ecx, edi
cmp di, r9w
ja 0x1400233c9
mov word [rsp + 0x2c], cx
mov word [rdx + 0x68], di
mov qword [rdx + 0x30], 0
mov qword [rdx + 0xa0], 0
cmp byte [0x1401fe4a8], 0
je 0x140022e78
mov r9, qword [r14 + 0x30]
mov r9, qword [r9 + 0xa0]
movzx r12d, cx
mov r13, qword [rdx + 0x70]
imul r13, r12
test byte [r9], al
add qword [r9 + 0x11f0], r13
mov rcx, qword [rdx + 0x50]
mov qword [rdx + 0x48], rcx
mov rax, qword [rdx + 0x38]
call fcn.1400275e0
mov rcx, qword [rsp + 0x48]
mov qword [rcx + 0x50], rax
cmp qword [rcx + 0x58], 0
je 0x140022eaa
mov rax, rcx
nop dword [rax]
call fcn.140035200
mov rcx, qword [rsp + 0x48]
mov rax, rcx
xor ebx, ebx
call fcn.140012c80
nop
mov rbx, qword [rsp + 0x48]
mov cl, byte [rbx + 0x6b]
nop dword [rax]
cmp cl, 1
jne 0x140023338
mov edx, dword [rbx + 0x60]
mov esi, dword [rsp + 0x34]
cmp edx, esi
jne 0x140023338
mov esi, dword [rsp + 0x30]
lea edi, [rsi + 1]
nop
cmp edx, edi
je 0x140023327
lea edi, [rsi + 3]
cmp edx, edi
je 0x140023327
mov edx, esi
xchg dword [rbx + 0x60], esi
cmp byte [rbx + 0x6d], 0
nop dword [rax]
je 0x140022fd5
movzx esi, byte [rsp + 0x128]
test sil, sil
jne 0x140023316
mov rsi, qword [rsp + 0x70]
nop dword [rax]
test si, si
jbe 0x140022f6a
movzx eax, byte [rsp + 0x29]
cmp rax, 0x88
jae 0x14002330c
lea rcx, [rax + rax*2]
shl rcx, 6
lea rsi, [0x14021e9e0]
lea rcx, [rcx + rsi]
lea rcx, [rcx + 0x58]
shr edx, 1
and edx, 1
lea rdx, [rdx + rdx*4]
lea rax, [rcx + rdx*8]
call fcn.14002da80
xor eax, eax
add rsp, 0x110
pop rbp
ret
mov rax, qword [rbx + 0x20]
neg rax
lea rcx, [rbx + 0x6b]
lea rdx, [0x14021e700]
lock xadd qword [rdx], rax
nop
nop
xor eax, eax
xchg byte [rcx], al
movups xmmword [rsp + 0xa0], xmm15
lea rax, [0x140023860]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rbx
lea rax, [rsp + 0xa0]
mov qword [rsp], rax
call fcn.14005eec0
xorps xmm15, xmm15
mov r14, qword [0x14024c5b8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
xor eax, eax
add rsp, 0x110
pop rbp
ret
movzx eax, byte [rsp + 0x29]
mov esi, eax
shr sil, 1
nop
test sil, sil
je 0x140023197
movzx edi, word [rsp + 0x2c]
test di, di
ja 0x140023005
movzx esi, byte [rsp + 0x128]
test sil, sil
nop
jmp 0x14002308f
mov byte [rsp + 0x2b], sil
mov byte [rbx + 0x6c], 1
lea rax, [0x14024e480]
call fcn.14002e0c0
test byte [rax], al
movzx ecx, byte [rsp + 0x2b]
movsx rcx, cl
cmp rcx, 0x44
jae 0x1400232ff
lea rcx, [rax + rcx*8]
lea rcx, [rcx + 0x278]
movzx edx, word [rsp + 0x2c]
movzx edx, dx
mov qword [rsp + 0x88], rdx
lock xadd qword [rcx], rdx
lea rax, [0x14024e480]
call fcn.14002e1a0
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rbx + 0x70]
mov rdx, qword [rsp + 0x88]
imul rdx, rcx
lea rcx, [0x14024cdd0]
lock xadd qword [rcx], rdx
movzx ecx, byte [rsp + 0x128]
test cl, cl
movzx eax, byte [rsp + 0x29]
mov edx, dword [rsp + 0x30]
jne 0x1400232d6
mov rsi, qword [rsp + 0x70]
nop word [rax + rax]
test si, si
je 0x14002312a
movzx esi, si
cmp qword [rbx + 0x38], rsi
jne 0x1400230ec
cmp rax, 0x88
jae 0x1400232f5
lea rcx, [rax + rax*2]
shl rcx, 6
lea rsi, [0x14021e9e0]
lea rcx, [rcx + rsi]
lea rcx, [rcx + 0x58]
shr edx, 1
and edx, 1
lea rdx, [rdx + rdx*4]
lea rax, [rcx + rdx*8]
call fcn.14002da80
jmp 0x1400232d6
cmp rax, 0x88
jae 0x1400232eb
lea rcx, [rax + rax*2]
shl rcx, 6
lea rsi, [0x14021e9e0]
lea rcx, [rsi + rcx]
lea rcx, [rcx + 8]
shr edx, 1
and edx, 1
lea rdx, [rdx + rdx*4]
lea rax, [rcx + rdx*8]
nop dword [rax]
call fcn.14002da80
jmp 0x1400232d6
nop
movups xmmword [rsp + 0xb0], xmm15
mov qword [rsp + 0xc0], 0
lea rax, [0x1400237c0]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
lea rax, [0x14020e5a0]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0xb0]
mov qword [rsp], rax
call fcn.14005eec0
xorps xmm15, xmm15
mov r14, qword [0x14024c5b8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, 1
add rsp, 0x110
pop rbp
ret
movzx esi, byte [rsp + 0x128]
nop
test sil, sil
jne 0x1400232d6
movzx esi, word [rsp + 0x2c]
test si, si
je 0x1400232a5
cmp dword [0x14024c8cc], 0
nop
jle 0x1400231ef
mov qword [rbx + 0x78], 0
mov rax, qword [rbx + 0x18]
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
neg rcx
nop
nop
lea rdx, [0x14024cdd8]
lock xadd qword [rdx], rcx
nop
call fcn.140015d20
jmp 0x14002324e
nop
movups xmmword [rsp + 0xb0], xmm15
mov qword [rsp + 0xc0], 0
lea rax, [0x140023720]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
lea rax, [0x14020e5a0]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0xb0]
mov qword [rsp], rax
call fcn.14005eec0
xorps xmm15, xmm15
mov r14, qword [0x14024c5b8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
lea rax, [0x14024e480]
call fcn.14002e0c0
mov ecx, 1
lock xadd qword [rax + 0x270], rcx
mov rcx, qword [rsp + 0x40]
lock xadd qword [rax + 0x268], rcx
lea rax, [0x14024e480]
nop dword [rax]
call fcn.14002e1a0
nop
mov rcx, qword [rsp + 0x40]
lea rdx, [0x14024cdd0]
lock xadd qword [rdx], rcx
mov eax, 1
add rsp, 0x110
pop rbp
ret
cmp rax, 0x88
jae 0x1400232e1
lea rcx, [rax + rax*2]
shl rcx, 6
lea rsi, [0x14021e9e0]
lea rcx, [rcx + rsi]
lea rcx, [rcx + 0x58]
shr edx, 1
and edx, 1
lea rdx, [rdx + rdx*4]
lea rax, [rcx + rdx*8]
call fcn.14002da80
xor eax, eax
add rsp, 0x110
pop rbp
ret
mov ecx, 0x88
call fcn.1400612a0
mov ecx, 0x88
call fcn.1400612a0
mov ecx, 0x88
call fcn.1400612a0
mov rax, rcx
mov ecx, 0x44
call fcn.1400612a0
mov ecx, 0x88
call fcn.1400612a0
lea rax, [0x1401542bc]
mov ebx, 0x2a
call fcn.140034680
lea rax, [0x14014e86e]
mov ebx, 0x11
call fcn.140034680
movzx eax, cl
mov qword [rsp + 0x80], rax
mov ecx, dword [rbx + 0x60]
mov qword [rsp + 0x78], rcx
call fcn.140036020
lea rax, [0x14014f108]
mov ebx, 0x13
nop dword [rax]
call fcn.1400368a0
mov rax, qword [rsp + 0x80]
call fcn.1400365e0
lea rax, [0x14014d1dd]
mov ebx, 0xa
nop
call fcn.1400368a0
mov rax, qword [rsp + 0x78]
call fcn.1400365e0
lea rax, [0x14014e4f1]
mov ebx, 0x10
nop dword [rax + rax]
call fcn.1400368a0
mov eax, dword [rsp + 0x30]
call fcn.1400365e0
call fcn.140036260
call fcn.140036080
lea rax, [0x140153c47]
mov ebx, 0x27
call fcn.140034680
mov word [rsp + 0x2e], r9w
movzx eax, di
mov qword [rsp + 0x80], rax
movzx ecx, cx
mov qword [rsp + 0x78], rcx
mov rdx, qword [rdx + 0x38]
mov qword [rsp + 0x90], rdx
call fcn.140036020
lea rax, [0x14014e501]
mov ebx, 0x10
nop
call fcn.1400368a0
mov rax, qword [rsp + 0x90]
call fcn.1400365e0
lea rax, [0x14014cda8]
mov ebx, 8
nop
call fcn.1400368a0
mov rax, qword [rsp + 0x80]
call fcn.1400365e0
lea rax, [0x14014f9f2]
mov ebx, 0x15
nop
call fcn.1400368a0
movzx eax, word [rsp + 0x2e]
call fcn.1400365e0
lea rax, [0x14014cdb0]
mov ebx, 8
nop dword [rax + rax]
call fcn.1400368a0
mov rax, qword [rsp + 0x78]
call fcn.1400365e0
call fcn.140036260
call fcn.140036080
lea rax, [0x140152878]
mov ebx, 0x20
call fcn.140034680
inc rcx
mov rdi, qword [rdx + 0x38]
add rdi, 7
shr rdi, 3
nop dword [rax]
cmp rcx, rdi
jae 0x140022d85
mov rdi, qword [rdx + 0x50]
test byte [rdi], al
movzx edi, byte [rcx + rdi]
mov r9, qword [rdx + 0x48]
test byte [r9], al
movzx r9d, byte [rcx + r9]
not r9d
test dil, r9b
je 0x14002348a
mov qword [rsp + 0x58], rcx
mov rax, rdx
call fcn.140023900
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x128]
mov esi, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x34]
movzx r10d, byte [rsp + 0x29]
mov r11, qword [rsp + 0x40]
jmp 0x14002348a
cmp byte [rdx + 0x6d], 0
jne 0x140022c9c
mov qword [rsp + 0xc8], rdi
lea rax, [0x1400be6c0]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], r11
movups xmmword [rsp + 0x18], xmm15
call fcn.140062980
xorps xmm15, xmm15
mov r14, qword [0x14024c5b8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x128]
mov esi, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x34]
movzx r10d, byte [rsp + 0x29]
mov r11, qword [rsp + 0x40]
jmp 0x140022c9c
mov dword [rdi + rcx], 0xdeadbeef
add rcx, 4
cmp rcx, r11
jb 0x14002356b
mov rdi, r9
nop
jmp 0x1400234fc
mov ecx, 0x40
call fcn.1400612c0
mov rax, rdi
mov ecx, 0x40
call fcn.1400612c0
mov r9, qword [r9]
nop
test r9, r9
je 0x140022adb
movzx r12d, word [r9 + 8]
cmp r12, r10
jae 0x140022ad7
cmp byte [r9 + 0xa], 1
jne 0x14002359c
nop
jmp 0x140022ac7
mov r9, qword [rsp + 0xd8]
test r9, r9
je 0x1400229e2
movzx r12d, word [r9 + 8]
nop dword [rax + rax]
cmp r12, r10
jae 0x1400229e2
mov r13, qword [rdx + 0x18]
lea rbx, [r12 + r13]
cmp byte [r9 + 0xa], 1
je 0x140023612
test al, al
je 0x140023612
nop
mov qword [rsp + 0xd0], r9
mov r9, qword [r9]
mov qword [rsp + 0xd8], r9
jmp 0x1400235c5
mov rdx, qword [r9]
nop
mov qword [rsp + 0xd8], rdx
mov rsi, qword [rsp + 0xd0]
mov qword [rsi], rdx
mov rax, r9
mov rcx, r11
call fcn.140027440
movzx eax, byte [rsp + 0x2a]
mov rdx, qword [rsp + 0x48]
mov esi, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x34]
mov r10, qword [rsp + 0x68]
mov r11, qword [rsp + 0x40]
jmp 0x1400235c5
nop
call fcn.140032d80
movzx eax, dil
mov qword [rsp + 0x80], rax
mov ecx, dword [rdx + 0x60]
mov qword [rsp + 0x78], rcx
call fcn.140036020
lea rax, [0x14014f108]
mov ebx, 0x13
call fcn.1400368a0
mov rax, qword [rsp + 0x80]
call fcn.1400365e0
lea rax, [0x14014d1dd]
mov ebx, 0xa
call fcn.1400368a0
mov rax, qword [rsp + 0x78]
call fcn.1400365e0
lea rax, [0x14014e4f1]
mov ebx, 0x10
call fcn.1400368a0
mov eax, dword [rsp + 0x30]
call fcn.1400365e0
call fcn.140036260
call fcn.140036080
lea rax, [0x14015151f]
mov ebx, 0x1b
call fcn.140034680
lea rax, [0x140151914]
mov ebx, 0x1c
call fcn.140034680
nop
mov qword [rsp + 8], rax
mov byte [rsp + 0x10], bl
call fcn.14005f000
mov rax, qword [rsp + 8]
movzx ebx, byte [rsp + 0x10]
jmp fcn.1400228e0