Function at 0x14009a198
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov byte [rax + 0x18], r8b
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov qword [rax - 0x50], 0xfffffffffffffffe
movaps xmmword [rax - 0x48], xmm6
mov rsi, rdx
mov rdi, rcx
xor ebx, ebx
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x128], ebx
mov r12d, ebx
mov qword [rsp + 0x50], rbx
xorps xmm0, xmm0
movdqu xmmword [rax - 0x70], xmm0
movups xmmword [rax - 0x60], xmm0
mov r13d, ebx
mov dword [rsp + 0x4c], ebx
test rdx, rdx
jne 0x14009a211
lea r8, str.pBackupSet
mov edx, 0x586
lea rcx, str.base_stor_blbcatalogcatalog.cpp
call fcn.140087b08
nop
add rdi, 0x2a8
mov dword [rsp + 0x80], 6
movups xmm0, xmmword [rsi]
movdqu xmmword [rsp + 0x88], xmm0
lea r14, [rdi + 0x60]
cmp dword [rdi + 0x90], ebx
jne 0x14009a243
mov rcx, r14
call fcn.1400afc24
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov esi, 1
mov r8d, esi
xor edx, edx
mov rcx, r14
call fcn.1400b0270
mov r15d, eax
mov dword [rsp + 0x68], eax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
mov r8d, esi
mov edx, esi
mov rcx, r14
call fcn.1400b0270
mov esi, eax
mov dword [rsp + 0x6c], eax
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x58], r14
inc eax
cmp eax, r15d
jge 0x14009a2bc
lea r8, str.result.m_high__1___result.m_low
mov edx, 0x596
lea rcx, str.base_stor_blbcatalogcatalog.cpp
call fcn.140087b08
sub esi, r15d
add esi, 1
jne 0x14009a2d8
mov rax, qword [rsp + 0x118]
mov dword [rax + 0x50], ebx
mov qword [rax + 0x58], rbx
jmp 0x14009a77c
mov r14d, esi
mov dword [rsp + 0x128], esi
mov r15b, byte [rsp + 0x120]
test r15b, r15b
je 0x14009a388
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x98]
call fcn.1400afbc4
mov r15d, ebx
or r13d, 0xffffffff
cmp r15d, esi
jae 0x14009a38e
lea rcx, [rsp + 0x98]
call fcn.1400afae0
cmp eax, r13d
je 0x14009a83a
mov edx, eax
mov rcx, rdi
call fcn.1400ad504
mov rdx, rax
mov rcx, rdi
call fcn.1400aeeac
mov r14d, eax
test eax, eax
je 0x14009a360
cmp eax, 7
je 0x14009a366
lea r8, str.eReason___EReasonForExclusion_eNone__eReason___EReasonForExclusion_eSkippedInSnapshot
mov edx, 0x5b9
lea rcx, str.base_stor_blbcatalogcatalog.cpp
call fcn.140087b08
cmp r14d, 7
jne 0x14009a37b
mov r14d, dword [rsp + 0x128]
add r14d, r13d
mov dword [rsp + 0x128], r14d
jmp 0x14009a383
mov r14d, dword [rsp + 0x128]
inc r15d
jmp 0x14009a30c
or r13d, 0xffffffff
jmp 0x14009a396
mov r15b, byte [rsp + 0x120]
mov eax, r14d
imul rcx, rax, 0x88
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
nop dword [rax + rax]
mov r12, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14009a864
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x98]
call fcn.1400afbc4
lea rcx, [rsp + 0x98]
call fcn.1400afae0
cmp eax, r13d
je 0x14009a76f
mov edx, eax
mov rcx, rdi
call fcn.1400ad504
mov rsi, rax
mov rdx, rax
mov rcx, rdi
call fcn.1400aeeac
test r15b, r15b
je 0x14009a407
cmp eax, 7
je 0x14009a3cf
mov ecx, dword [rsp + 0x34]
imul r14, rcx, 0x88
add r14, r12
inc ecx
mov dword [rsp + 0x34], ecx
xor r9d, r9d
mov r8, rsi
lea rdx, [rsp + 0x80]
mov rcx, rdi
call fcn.1400ad0d8
movups xmm0, xmmword [rsp + 0x80]
movdqu xmmword [r14], xmm0
mov r9d, 1
mov r8, rsi
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.1400ad0d8
movups xmm0, xmmword [rsp + 0x58]
movdqu xmmword [r14 + 0x10], xmm0
test rsi, rsi
jne 0x14009a47c
lea r8, str.pRow___NULL
mov edx, 0x209
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
movups xmm6, xmmword [0x14015af68]
mov rdi, qword [rsp + 0x110]
add rdi, 0x2a8
lea r9, [rsp + 0x40]
mov r8d, 7
mov rdx, rsi
mov rcx, rdi
call fcn.1400acfc8
mov r15, rax
test rax, rax
je 0x14009a4d3
cmp dword [rsp + 0x40], 0x10
je 0x14009a4cf
lea r8, str.cb__sizeof_GUID_
mov edx, 0x218
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
movups xmm6, xmmword [r15]
movdqu xmmword [r14 + 0x20], xmm6
mov r8d, 2
mov rdx, rsi
mov rcx, rdi
call fcn.1400acec8
mov rdx, rax
call fcn.14009b174
mov qword [r14 + 0x30], rax
mov r8d, 3
mov rdx, rsi
mov rcx, rdi
call fcn.1400acec8
mov rdx, rax
call fcn.14009b174
mov qword [r14 + 0x38], rax
mov r15d, 0xa
mov r8d, r15d
mov rdx, rsi
mov rcx, rdi
call fcn.1400acec8
mov rdx, rax
call fcn.14009b174
mov qword [r14 + 0x48], rax
mov r8d, r15d
mov rdx, rsi
mov rcx, rdi
call fcn.1400acec8
mov rdx, rax
call fcn.14009b174
mov qword [r14 + 0x40], rax
lea r8d, [r15 + 1]
mov rdx, rsi
mov rcx, rdi
call fcn.1400ad3b0
cmp rax, 0xffffffffffffffff
cmove rax, rbx
mov qword [r14 + 0x50], rax
lea r8d, [r15 - 6]
mov rdx, rsi
mov rcx, rdi
call fcn.1400acec8
mov rdx, rax
call fcn.14009b174
mov qword [r14 + 0x58], rax
test rsi, rsi
jne 0x14009a5a0
lea r8, str.pRow___NULL
mov edx, 0x13c
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
mov dword [rsp + 0x30], ebx
lea r9, [rsp + 0x30]
mov r8d, 5
mov rdx, rsi
mov rcx, rdi
call fcn.1400acfc8
mov r15d, dword [rsp + 0x30]
shr r15d, 4
mov dword [r14 + 0x60], r15d
mov ecx, r15d
shl rcx, 4
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
nop dword [rax + rax]
mov qword [r14 + 0x68], rax
test rax, rax
je 0x14009a8b8
mov r13d, ebx
cmp r13d, r15d
jae 0x14009a67c
test rsi, rsi
jne 0x14009a610
lea r8, str.pRow___NULL
mov edx, 0x166
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
mov dword [rsp + 0x30], ebx
lea r9, [rsp + 0x30]
mov r8d, 5
mov rdx, rsi
mov rcx, rdi
call fcn.1400acfc8
mov qword [rsp + 0x78], rax
mov edx, dword [rsp + 0x30]
shr edx, 4
cmp r13d, edx
jb 0x14009a658
lea r8, str.iVolume___cb_sizeof_GUID_
mov edx, 0x170
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14009a90c
mov ecx, r13d
add rcx, rcx
movups xmm0, xmmword [rax + rcx*8]
mov rax, qword [r14 + 0x68]
movdqu xmmword [rax + rcx*8], xmm0
inc r13d
jmp 0x14009a5ea
test rsi, rsi
jne 0x14009a699
lea r8, str.pRow___NULL
mov edx, 0x18d
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
mov r8d, 6
mov rdx, rsi
mov rcx, rdi
call fcn.1400ad2d4
test eax, eax
setne al
mov byte [r14 + 0x70], al
test rsi, rsi
jne 0x14009a6d0
lea r8, str.pRow___NULL
mov edx, 0x1ad
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
mov r8d, 8
mov rdx, rsi
mov rcx, rdi
call fcn.1400ad2d4
test eax, eax
setne al
mov byte [r14 + 0x71], al
test rsi, rsi
jne 0x14009a707
lea r8, str.pRow___NULL
mov edx, 0x1ec
lea rcx, str.base_stor_blbcatalogcmpnttbl.cpp
call fcn.140087b08
mov r8d, 0xd
mov rdx, rsi
mov rcx, rdi
call fcn.1400ad2d4
test eax, eax
setne cl
movzx r8d, cl
or r13d, 0xffffffff
cmp eax, r13d
cmove r8d, ebx
mov byte [r14 + 0x84], r8b
mov rdx, rsi
mov rcx, rdi
call fcn.1400aeeac
mov dword [r14 + 0x80], eax
mov r8d, 9
mov rdx, rsi
mov rcx, rdi
call fcn.1400acec8
mov rdx, rax
call fcn.14009b174
mov qword [r14 + 0x78], rax
mov r15b, byte [rsp + 0x120]
jmp 0x14009a3cf
mov r13d, dword [rsp + 0x4c]
mov rax, qword [rsp + 0x118]
mov edx, dword [rsp + 0x34]
cmp edx, dword [rsp + 0x128]
je 0x14009a7ba
lea r8, str.cRestorableComponentCount__cValidComponents
mov edx, 0x65c
lea rcx, str.base_stor_blbcatalogcatalog.cpp
call fcn.140087b08
mov rcx, qword [rsp + 0x110]
mov eax, dword [rcx + 0xc]
neg eax
sbb r13d, r13d
add r13d, 0x80780002
jmp 0x14009a7d0
mov dword [rax + 0x50], edx
mov qword [rax + 0x58], r12
jmp 0x14009a7e4
test r12, r12
je 0x14009a7e4
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x50]
call fcn.140099eb0
lea rax, [0x14017b048]
mov rcx, qword [0x14017b048]
cmp rcx, rax
je 0x14009a81b
test byte [rcx + 0x1c], 2
je 0x14009a81b
cmp byte [rcx + 0x19], 4
jb 0x14009a81b
mov edx, 0x22
mov r9d, r13d
lea r8, [0x14015b3b0]
mov rcx, qword [rcx + 0x10]
call fcn.140004c3c
mov eax, r13d
movaps xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [rsp + 0x110]
mov eax, dword [rcx + 0xc]
neg eax
sbb ecx, ecx
add ecx, 0x80780002
mov dword [rsp + 0x38], ecx
lea rdx, [0x140177a10]
lea rcx, [rsp + 0x38]
call sub.msvcrt.dll__CxxThrowException
lea rax, [0x14017b048]
mov rcx, qword [0x14017b048]
cmp rcx, rax
je 0x14009a89f
test byte [rcx + 0x1c], 2
je 0x14009a89f
cmp byte [rcx + 0x19], 1
jb 0x14009a89f
imul r9d, r14d, 0x88
lea edx, [r12 + 0x20]
lea r8, [0x14015b3b0]
mov rcx, qword [rcx + 0x10]
call fcn.140004c3c
mov dword [rsp + 0x3c], 0x8007000e
lea rdx, [0x140177a10]
lea rcx, [rsp + 0x3c]
call sub.msvcrt.dll__CxxThrowException
lea rax, [0x14017b048]
mov rcx, qword [0x14017b048]
cmp rcx, rax
je 0x14009a8f3
test byte [rcx + 0x1c], 2
je 0x14009a8f3
cmp byte [rcx + 0x19], 1
jb 0x14009a8f3
shl r15d, 4
mov edx, 0x21
mov r9d, r15d
lea r8, [0x14015b3b0]
mov rcx, qword [rcx + 0x10]
call fcn.140004c3c
mov dword [rsp + 0x44], 0x8007000e
lea rdx, [0x140177a10]
lea rcx, [rsp + 0x44]
call sub.msvcrt.dll__CxxThrowException
mov rcx, rdi
call fcn.1400aca90
neg eax
sbb ecx, ecx
add ecx, 0x80780002
mov dword [rsp + 0x48], ecx
lea rdx, [0x140177a10]
lea rcx, [rsp + 0x48]
call sub.msvcrt.dll__CxxThrowException
int3