Function at 0x14002964b
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movdqa xmmword [rsp + 0xb0], xmm8
movdqa xmmword [rsp + 0xa0], xmm7
movdqa xmmword [rsp + 0x90], xmm6
mov dword [rsp + 0x40], ecx
mov eax, 0x30
mov rax, qword gs:[eax]
mov rax, qword [rax + 0x60]
mov rsi, qword [rax + 0x18]
add rsi, 0x10
xor r14d, r14d
mov rdi, rsi
mov rdi, qword [rdi]
cmp rsi, rdi
je 0x140029966
movzx edx, word [rdi + 0x58]
mov rcx, qword [rdi + 0x60]
call fcn.14002960e
cmp eax, 0x1edab0ed
jne 0x14002969a
mov r13, qword [rdi + 0x30]
mov rax, qword [0x1400831a0]
cmp rax, 3
je 0x1400296dc
mov rax, qword [0x1400831a0]
cmp rax, 3
jne 0x140029b75
mov rdi, r13
xor rdi, 0x1edab0ed
cmp qword [0x140083188], 0
mov eax, dword [rsp + 0x40]
mov qword [rsp + 0x48], rax
je 0x140029879
mov rcx, qword [0x140083190]
mov rdx, qword [0x140083198]
mov r8, rdi
call fcn.140028a53
mov r12, qword [0x140083178]
mov rbp, r12
and rbp, rax
shr rax, 0x39
mov r15, qword [0x140083170]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea rsi, [r15 - 0x38]
xor ebx, ebx
lea r14, [rsp + 0x58]
pcmpeqd xmm7, xmm7
movdqu xmm8, xmmword [r15 + rbp]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb eax, xmm0
mov word [rsp + 0x58], ax
mov rcx, r14
call fcn.140028c96
test rax, rax
je 0x140029786
add rdx, rbp
and rdx, r12
neg rdx
imul rax, rdx, 0x38
cmp rdi, qword [rsi + rax]
jne 0x140029764
jmp 0x1400297a8
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x140029879
add rbp, rbx
add rbp, 0x10
add rbx, 0x10
and rbp, r12
jmp 0x14002974c
cmp qword [r15 + rax - 0x18], 0
je 0x140029879
add r15, rax
mov rcx, qword [r15 - 0x10]
mov rdx, qword [r15 - 8]
mov rbx, qword [rsp + 0x48]
mov r8, rbx
call fcn.140028a53
mov rcx, qword [r15 - 0x30]
mov r15, qword [r15 - 0x28]
mov rbp, r15
and rbp, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea r12, [rcx - 0x10]
xor eax, eax
mov qword [rsp + 0x38], rax
lea r14, [rsp + 0x58]
pcmpeqd xmm7, xmm7
mov rsi, rcx
movdqu xmm8, xmmword [rcx + rbp]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb eax, xmm0
mov word [rsp + 0x58], ax
mov rcx, r14
call fcn.140028c96
test rax, rax
je 0x140029849
add rdx, rbp
and rdx, r15
mov rax, rdx
shl rax, 4
mov rcx, r12
sub rcx, rax
cmp qword [rcx], rbx
jne 0x14002981f
jmp 0x140029949
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x140029879
mov rax, qword [rsp + 0x38]
add rbp, rax
add rbp, 0x10
add rax, 0x10
mov qword [rsp + 0x38], rax
and rbp, r15
mov rbx, qword [rsp + 0x48]
mov rcx, rsi
jmp 0x140029804
movsxd rax, dword [r13 + 0x3c]
mov eax, dword [rax + r13 + 0x88]
test rax, rax
je 0x140029963
mov ecx, dword [rax + r13 + 0x1c]
add rcx, r13
mov qword [rsp + 0x50], rcx
mov ebx, dword [rax + r13 + 0x20]
add rbx, r13
mov esi, dword [rax + r13 + 0x24]
add rsi, r13
mov ecx, dword [rax + r13 + 0x14]
mov qword [rsp + 0x38], rcx
mov r15d, dword [rax + r13 + 0x18]
xor r14d, r14d
xor r12d, r12d
cmp r12, r15
je 0x140029966
mov rbp, r12
mov ecx, dword [rbx + r12*4]
add rcx, r13
mov rax, rcx
mov rdx, rax
inc rax
cmp byte [rdx], 0
jne 0x1400298d6
lea r12, [rbp + 1]
sub rdx, rcx
call fcn.14002960e
cmp eax, dword [rsp + 0x40]
jne 0x1400298c0
mov rdx, qword [rsp + 0x38]
cmp rbp, rdx
jae 0x140029d0c
movzx ecx, word [rsi + rbp*2]
cmp rdx, rcx
jbe 0x140029d18
mov rax, qword [rsp + 0x50]
mov ebx, dword [rax + rcx*4]
mov rax, qword [0x1400831a0]
cmp rax, 3
je 0x140029934
mov rax, qword [0x1400831a0]
cmp rax, 3
jne 0x140029bbb
add rbx, r13
mov rax, qword [0x1400831a0]
cmp rax, 3
je 0x140029999
xor r14d, r14d
jmp 0x140029966
neg rdx
shl rdx, 4
mov rax, rbx
mov rbx, qword [rsi + rdx - 8]
xor rbx, rax
mov r14d, 1
jmp 0x140029966
xor r14d, r14d
mov rax, r14
mov rdx, rbx
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, rbx
xor rax, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov rcx, qword [0x140083190]
mov rdx, qword [0x140083198]
mov r8, rdi
call fcn.140028a53
mov r12, qword [0x140083178]
mov r13, r12
and r13, rax
mov qword [rsp + 0x40], rax
shr rax, 0x39
mov rbp, qword [0x140083170]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea rsi, [rbp - 0x38]
xor r14d, r14d
lea r15, [rsp + 0x58]
pcmpeqd xmm7, xmm7
movdqu xmm8, xmmword [rbp + r13]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb eax, xmm0
mov word [rsp + 0x58], ax
mov rcx, r15
call fcn.140028c96
test rax, rax
je 0x140029a36
add rdx, r13
and rdx, r12
neg rdx
imul rax, rdx, 0x38
cmp qword [rsi + rax], rdi
jne 0x140029a14
jmp 0x140029a58
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x140029c13
add r13, r14
add r13, 0x10
add r14, 0x10
and r13, r12
jmp 0x1400299fb
add rbp, rax
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
mov r8, qword [rsp + 0x48]
call fcn.140028a53
mov rdi, rax
cmp qword [rbp - 0x20], 0
je 0x140029c01
mov rsi, qword [rbp - 0x30]
mov r14, qword [rbp - 0x28]
mov r12, r14
and r12, rdi
shr rdi, 0x39
mov qword [rsp + 0x50], rdi
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea rdi, [rsi - 0x10]
xor eax, eax
mov qword [rsp + 0x40], rax
lea r13, [rsp + 0x58]
pcmpeqd xmm7, xmm7
xor r15d, r15d
movdqu xmm8, xmmword [rsi + r12]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm8
pmovmskb eax, xmm0
mov word [rsp + 0x58], ax
mov rcx, r13
call fcn.140028c96
test rax, rax
je 0x140029aff
add rdx, r12
and rdx, r14
mov rax, rdx
shl rax, 4
mov rcx, rdi
sub rcx, rax
mov rax, qword [rsp + 0x48]
cmp qword [rcx], rax
jne 0x140029ad3
jmp 0x140029b5f
cmp r15, 1
mov r15d, 1
je 0x140029b30
movdqa xmmword [rsp + 0x80], xmm8
mov rcx, r14
lea rdx, [rsp + 0x80]
mov r8, r12
call fcn.140028d54
mov r15, rax
mov qword [rsp + 0x70], rdx
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x140029ca8
mov rax, qword [rsp + 0x40]
add r12, rax
add r12, 0x10
add rax, 0x10
mov qword [rsp + 0x40], rax
and r12, r14
jmp 0x140029abb
neg rdx
mov rax, qword [rsp + 0x38]
shl rdx, 4
mov qword [rsi + rdx - 8], rax
jmp 0x14002995b
lea rax, [0x140083170]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
lea rax, [rsp + 0x37]
mov qword [rcx + 8], rax
lea r8, [rsp + 0x78]
mov qword [r8], rcx
lea rax, [0x14007b490]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400831a0]
lea r9, [0x140076cf0]
mov dl, 1
call fcn.140054180
jmp 0x1400296dc
lea rax, [0x140083170]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
lea rax, [rsp + 0x37]
mov qword [rcx + 8], rax
lea r8, [rsp + 0x78]
mov qword [r8], rcx
lea rax, [0x14007b490]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400831a0]
lea r9, [0x140076d18]
mov dl, 1
call fcn.140054180
jmp 0x140029934
lea rcx, [rbp - 0x30]
lea rdx, [rbp - 0x10]
call fcn.140029248
jmp 0x140029a7b
cmp qword [0x140083180], 0
je 0x140029d02
lea r15, [rsp + 0x58]
mov rcx, r15
call fcn.140028844
mov rcx, r15
call fcn.14002899e
mov r15, rax
mov r12, rdx
mov rcx, qword [0x140083170]
mov rdx, qword [0x140083178]
mov r8, qword [rsp + 0x40]
call fcn.140028cb3
mov rcx, qword [0x140083170]
neg rax
and dl, 1
movzx edx, dl
sub qword [0x140083180], rdx
imul rax, rax, 0x38
lea rbp, [rcx + rax]
mov qword [rcx + rax - 0x38], rdi
movups xmm0, xmmword [0x140076cd0]
movups xmmword [rcx + rax - 0x30], xmm0
movdqu xmm0, xmmword [0x140076ce0]
movdqu xmmword [rcx + rax - 0x20], xmm0
mov qword [rcx + rax - 0x10], r15
mov qword [rcx + rax - 8], r12
inc qword [0x140083188]
jmp 0x140029a5b
mov r8, qword [rsp + 0x70]
mov al, byte [rsi + r8]
test al, al
js 0x140029cc5
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
bsf r8d, eax
mov al, byte [rsi + r8]
and al, 1
movzx eax, al
sub qword [rbp - 0x20], rax
lea rax, [r8 - 0x10]
and rax, r14
mov rcx, qword [rsp + 0x50]
mov byte [rsi + r8], cl
mov byte [rax + rsi + 0x10], cl
inc qword [rbp - 0x18]
mov rdx, r8
neg rdx
shl r8, 4
neg r8
mov rax, qword [rsp + 0x48]
mov qword [rsi + r8 - 0x10], rax
jmp 0x140029b62
call fcn.140028d6d
jmp 0x140029c21
lea r8, [0x14007b490]
mov rcx, rbp
jmp 0x140029d1f
lea r8, [0x14007b490]
call fcn.14000c720
ud2