Function at 0x140006bd4
Capabilities:
Access peb ldr_data

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x1f0
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
movaps xmmword [rax - 0x48], xmm6
mov rax, qword [0x1401a7d98]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov r12, r8
mov rdi, rdx
mov r14, rcx
xor r13d, r13d
mov dword [rbp + 0x54], r13d
mov qword [rbp + 0x40], r13
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x48], r13
lea rax, [rbp + 0x30]
mov qword [rbp + 0x30], rax
lea rax, [rbp + 0x30]
mov qword [rbp + 0x38], rax
lea rax, [rbp + 0x30]
mov qword [rbp + 0x40], rax
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], r13
lea esi, [r13 + 1]
mov r15d, esi
mov rax, qword [rcx]
lea rdx, [rbp + 0x60]
mov rax, qword [rax + 0x18]
call qword [case.0x14010a1e6.0]
mov ebx, eax
test eax, eax
js 0x140006c9c
mov rax, qword [r14]
movaps xmm0, xmmword [rbp + 0x60]
movdqa xmmword [rbp], xmm0
lea r8, [rbp + 0x70]
lea rdx, [rbp]
mov rcx, r14
mov rax, qword [rax + 0x10]
call qword [case.0x14010a1e6.0]
mov ebx, eax
test eax, eax
js 0x140006c9c
mov ebx, r13d
test ebx, ebx
jns 0x140006cb4
mov eax, ebx
shr eax, 0x1f
test al, al
jne 0x140006caa
int3
mov rdi, qword [rsp + 0x38]
jmp 0x140007105
mov qword [rsp + 0x50], r13
mov rax, qword gs:[0x60]
xor edx, edx
lea r8d, [rdx + 0x28]
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rcx, rax
test rax, rax
je 0x140006cf5
mov qword [rax + 0x18], r13
mov qword [rax + 0x20], r13
mov qword [rax + 0x10], r13
mov qword [rax], r13
mov qword [rax + 8], r13
jmp 0x140006cf8
mov rcx, r13
mov qword [rsp + 0x50], rcx
test rcx, rcx
jne 0x140006d3e
lea rax, str.onecore_basewcp_toolsmtcommonmt_microdomutil.h
mov qword [rbp - 0x50], rax
lea rax, str.GenerateXPath
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x40], 0x3b9
lea rax, str.Details.Allocate__
mov qword [rbp - 0x38], rax
mov r8d, 0xc0000017
lea rcx, [rbp - 0x50]
call fcn.1400c81b4
jmp 0x140006edb
movaps xmm0, xmmword [rdi]
movdqu xmmword [rcx + 0x18], xmm0
mov qword [rsp + 0x50], r13
mov rax, qword [rbp + 0x30]
mov qword [rcx], rax
lea rax, [rbp + 0x30]
mov qword [rcx + 8], rax
mov rax, qword [rbp + 0x30]
mov qword [rax + 8], rcx
mov qword [rbp + 0x30], rcx
lea rax, [rbp + 0x30]
mov qword [rcx + 0x10], rax
add qword [rbp + 0x48], rsi
jmp 0x140006e6c
cmp eax, dword [rbp + 0x78]
je 0x140006e78
mov rax, qword [r14]
lea rcx, [rbp + 0x80]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rsi
mov dword [rsp + 0x58], 0x200b
lea rcx, [rsp + 0x58]
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rsi
movaps xmm0, xmmword [rdi]
movdqa xmmword [rbp + 0x10], xmm0
lea r9, [rsp + 0x70]
lea r8, [rbp - 0x80]
lea rdx, [rbp + 0x10]
mov rcx, r14
mov rax, qword [rax + 0x98]
call qword [case.0x14010a1e6.0]
mov ebx, eax
test eax, eax
js 0x1400070ac
mov qword [rsp + 0x60], r13
mov rax, qword gs:[0x60]
xor edx, edx
lea r8d, [rdx + 0x28]
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rcx, rax
test rax, rax
je 0x140006e19
mov qword [rax + 0x18], r13
mov qword [rax + 0x20], r13
mov qword [rax + 0x10], r13
mov qword [rax], r13
mov qword [rax + 8], r13
jmp 0x140006e1c
mov rcx, r13
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x140006ea3
movups xmm0, xmmword [rbp + 0x88]
movdqu xmmword [rcx + 0x18], xmm0
mov qword [rsp + 0x60], r13
mov rax, qword [rbp + 0x30]
mov qword [rcx], rax
lea rax, [rbp + 0x30]
mov qword [rcx + 8], rax
mov rax, qword [rbp + 0x30]
mov qword [rax + 8], rcx
mov qword [rbp + 0x30], rcx
lea rax, [rbp + 0x30]
mov qword [rcx + 0x10], rax
add qword [rbp + 0x48], rsi
movups xmm0, xmmword [rbp + 0x88]
movdqu xmmword [rdi], xmm0
add r15d, esi
mov eax, dword [rdi + 8]
cmp eax, 0xffffffff
jne 0x140006d77
mov rsi, r13
mov r8d, r15d
shl r8d, 2
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x38]
call fcn.1400144b4
mov ebx, dword [rax]
test ebx, ebx
jns 0x140006ee5
mov eax, ebx
shr eax, 0x1f
xor al, 1
jmp 0x1400070a9
lea rax, str.onecore_basewcp_toolsmtcommonmt_microdomutil.h
mov qword [rbp - 0x30], rax
lea rax, str.GenerateXPath
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x20], 0x3c3
lea rax, str.Details.Allocate__
mov qword [rbp - 0x18], rax
mov r8d, 0xc0000017
lea rcx, [rbp - 0x30]
call fcn.1400c81b4
nop
mov ebx, 0xc0000017
jmp 0x1400070ac
mov ebx, 2
mov rcx, qword [rsp + 0x38]
lea r15d, [rbx - 1]
lea rax, [rsi + rsi*2]
lea rdi, [rcx + rax*8]
lea rax, [rbp + 0x30]
mov rdx, qword [rbp + 0x30]
cmp rdx, rax
je 0x1400070b3
mov dword [rbp + 0x98], 0x2007
mov dword [rbp + 0x9c], 0x2008
test rdx, rdx
je 0x140006f4c
lea rax, [rbp + 0x30]
cmp qword [rdx + 0x10], rax
jne 0x140006f4c
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rcx, qword [rdx + 8]
mov rax, qword [rdx]
mov qword [rcx], rax
mov qword [rdx + 0x10], r13
sub qword [rbp + 0x48], r15
mov r8, r13
lea rax, [rbp + 0x30]
cmp rdx, rax
cmovne r8, rdx
movups xmm6, xmmword [r8 + 0x18]
mov qword [r8 + 0x10], r13
mov rax, qword gs:[0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
nop
mov rax, qword [r14]
lea rcx, [rbp + 0xa0]
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x68], rbx
lea rcx, [rbp + 0x98]
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x58], rbx
movdqa xmmword [rbp + 0x20], xmm6
lea r9, [rbp - 0x70]
lea r8, [rbp - 0x60]
lea rdx, [rbp + 0x20]
mov rcx, r14
mov rax, qword [rax + 0x98]
call qword [case.0x14010a1e6.0]
mov ebx, eax
test eax, eax
js 0x1400070ac
movups xmm0, xmmword [0x14012e4e0]
movups xmmword [rdi], xmm0
movsd xmm1, qword [0x14012e4f0]
movsd qword [rdi + 0x10], xmm1
add rsi, r15
add rdi, 0x18
mov ebx, 2
cmp word [rbp + 0xc0], bx
je 0x14000700c
cmp word [rbp + 0xc0], r15w
jne 0x140006efb
mov rcx, qword [rsp + 0x38]
jmp 0x140007073
mov rcx, qword [rsp + 0x40]
sub rcx, qword [rsp + 0x38]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
inc rdx
add r8, rdx
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0x38]
call fcn.1400144b4
mov ebx, dword [rax]
test ebx, ebx
js 0x1400070a1
movups xmm1, xmmword [0x14012e0a8]
movsd xmm0, qword [0x14012e0b8]
lea rax, [rsi + rsi*2]
mov rcx, qword [rsp + 0x38]
movups xmmword [rcx + rax*8], xmm1
movsd qword [rcx + rax*8 + 0x10], xmm0
add rsi, r15
mov ebx, 2
mov rax, qword [rbp + 0xa8]
test rax, rax
je 0x140006ef3
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
lea rax, [rsi + rsi*2]
movups xmmword [rcx + rax*8], xmm1
movsd qword [rcx + rax*8 + 0x10], xmm0
add rsi, r15
jmp 0x140006ef3
mov eax, ebx
shr eax, 0x1f
xor al, r15b
je 0x1400070ac
int3
mov rdi, qword [rsp + 0x38]
jmp 0x1400070d2
mov r9, r12
mov rdi, qword [rsp + 0x38]
mov r8, rdi
mov rdx, rsi
xor ecx, ecx
call fcn.1400c75f0
mov ebx, eax
test eax, eax
jns 0x14000715a
mov r8, qword [rsp + 0x50]
test r8, r8
je 0x140007105
mov qword [rsp + 0x50], r13
mov qword [r8 + 0x10], r13
mov rax, qword gs:[0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rdi, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
jmp 0x140007115
sub rax, 0x18
mov qword [rsp + 0x40], rax
cmp rdi, rax
jne 0x14000710c
test rdi, rdi
je 0x14000713f
mov rax, qword gs:[0x60]
mov r8, qword [rsp + 0x38]
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r13
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x40], r13
mov eax, ebx
jmp 0x1400071ae
mov rax, qword [rsp + 0x40]
jmp 0x14000716a
sub rax, 0x18
mov qword [rsp + 0x40], rax
cmp rdi, rax
jne 0x140007161
test rdi, rdi
je 0x140007194
mov rax, qword gs:[0x60]
mov r8, qword [rsp + 0x38]
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r13
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x40], r13
mov eax, dword [rbp + 0x54]
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140109af0
lea r11, [rsp + 0x1f0]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret