Function at 0x140014130
Capabilities:
Create directory
Delete file
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x570]
sub rsp, 0x670
mov rax, qword [0x14009d2d0]
xor rax, rsp
mov qword [rbp + 0x560], rax
mov r12, rdx
xor r13d, r13d
mov r14d, r13d
mov dword [rsp + 0x60], r13d
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x350]
call fcn.1400464e0
mov dword [rsp + 0x5c], 0x208
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x30], r13d
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, str.AAC_Rules
lea rdx, str.SOFTWAREMcAfeeAPMcVscIns
mov rcx, 0xffffffff80000002
call fcn.140003d20
test eax, eax
jne 0x140014243
cmp dword [rsp + 0x58], 1
jne 0x140014243
lea rcx, [rbp + 0x350]
call fcn.140021cd0
mov dword [rsp + 0x50], eax
test eax, eax
je 0x14001427c
lea ecx, [r13 + 5]
call fcn.14002bb50
test eax, eax
je 0x140014243
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x28], rax
lea rax, str.Validating_Cab__s_failed__error_d
mov qword [rsp + 0x20], rax
mov r9d, 0x131
lea r8, str.CMcAacXML::LoadAacRuleXML
lea rdx, str.E:BTc1fd866d_3751_4c72_a231_f6b223727ef9_vscore_srcMcAPExeMcAacXML.cpp
lea ecx, [r13 + 5]
call fcn.140011fe0
mov r14d, 0x80004005
mov eax, r14d
mov rcx, qword [rbp + 0x560]
xor rcx, rsp
call fcn.140043760
lea r11, [rsp + 0x670]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x140]
call fcn.1400464e0
mov r8d, 0x104
lea rdx, [rbp + 0x140]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400142f8
lea ecx, [rax + 5]
call fcn.14002bb50
test eax, eax
je 0x140014243
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x50], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, str.GetModuleFileNameW_failed__error_d
mov qword [rsp + 0x20], rax
mov r9d, 0x13a
lea r8, str.CMcAacXML::LoadAacRuleXML
lea rdx, str.E:BTc1fd866d_3751_4c72_a231_f6b223727ef9_vscore_srcMcAPExeMcAacXML.cpp
mov ecx, 5
call fcn.140001f30
jmp 0x140014243
mov edx, 0x5c
lea rcx, [rbp + 0x140]
call fcn.140045b04
test rax, rax
jne 0x14001436f
lea edx, [rax + 0x2f]
lea rcx, [rbp + 0x140]
call fcn.140045b04
test rax, rax
jne 0x14001436f
lea ecx, [rax + 5]
call fcn.14002bb50
test eax, eax
je 0x140014364
lea rax, [rbp + 0x140]
mov qword [rsp + 0x28], rax
lea rax, str.directory_not_valid:_s
mov qword [rsp + 0x20], rax
mov r9d, 0x147
lea r8, str.CMcAacXML::LoadAacRuleXML
lea rdx, str.E:BTc1fd866d_3751_4c72_a231_f6b223727ef9_vscore_srcMcAPExeMcAacXML.cpp
mov ecx, 5
call fcn.1400083a0
mov r14d, 0x80070057
jmp 0x140014249
mov word [rax], r13w
mov r15, r13
mov qword [rbp - 0x70], r13
mov rsi, r13
mov qword [rbp - 0x68], r13
lea rcx, str.advpack.dll
call fcn.140035fe0
test rax, rax
jne 0x1400143c3
lea ecx, [rax + 5]
call fcn.14002bb50
test eax, eax
je 0x14001442d
mov dword [rsp + 0x50], 0x7e
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, str.LoadLibraryFromSystemDirectory_advpack.dll__failed__err_d
mov r9d, 0x12
jmp 0x14001440f
mov rsi, rax
mov qword [rbp - 0x68], rax
lea rdx, str.ExtractFiles
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
mov qword [rbp - 0x70], rax
test rax, rax
jne 0x14001442d
lea ecx, [rax + 5]
call fcn.14002bb50
test eax, eax
je 0x14001442d
mov dword [rsp + 0x50], 0x7f
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, str.GetProcAddress_advpack.dll_ExtractFiles__failed__error_d
lea r9d, [r15 + 0x1a]
mov qword [rsp + 0x20], rax
lea r8, str.CAdvPackApi::CAdvPackApi
lea rdx, str.E:BTc1fd866d_3751_4c72_a231_f6b223727ef9Readiness_SharedincludeAdvPackAPI.h
mov ecx, 5
call fcn.140001f30
nop
lea rax, [rbp + 0x140]
mov qword [rsp + 0x70], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x68], rax
mov rdi, 0xffffffffffffffff
test r15, r15
je 0x1400144a8
xor r8d, r8d
lea rdx, [rbp + 0x140]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov dword [rsp + 0x50], eax
test eax, eax
je 0x14001463a
cmp eax, 0x50
je 0x14001463a
cmp eax, 0xb7
je 0x14001463a
lea ecx, [rdi + 6]
call fcn.14002bb50
test eax, eax
je 0x1400144a8
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
call fcn.14001a9a0
mov ecx, 5
call fcn.14002bb50
test eax, eax
je 0x1400144ea
lea rax, [rbp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x28], rax
lea rax, str.Failed_to_Extract__s_to__s_using_ExtractFiles_function_in_AdvPack.dll
mov qword [rsp + 0x20], rax
mov ecx, 5
mov r9d, 0x151
call fcn.14001abb0
mov qword [rbp - 0x20], r13
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbp - 0xc], eax
mov dword [rbp - 8], 0x4e4
mov qword [rbp], r13
movdqa xmm0, xmmword [0x14008ebc0]
movdqa xmmword [rbp + 0x10], xmm0
mov word [rbp], r13w
xor eax, eax
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x10], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rbp - 0xc], eax
jne 0x140014ad9
mov ecx, dword [0x1400a0fe4]
cmp ecx, 0xffffffff
je 0x140014ad9
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x140014ad9
mov ecx, dword [0x1400a0fe4]
cmp ecx, 0xffffffff
je 0x140014ad9
lea rdx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140014ad9
mov ecx, dword [0x1400a0fe4]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140014ad9
cmp qword [rbp - 0x20], 0
jne 0x140014ad9
lea rax, [rbp - 0x18]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edi
lea rax, [0x140012870]
mov qword [rsp + 0x30], rax
lea rax, [0x140012830]
mov qword [rsp + 0x28], rax
lea rax, [0x1400127d0]
mov qword [rsp + 0x20], rax
lea r9, [0x140012770]
lea r8, [0x140012630]
lea rdx, [0x140012620]
lea rcx, [0x140012610]
call qword [sym.imp.Cabinet.dll_FDICreate]
mov qword [rbp - 0x20], rax
test rax, rax
je 0x140014ad9
lea r8, [rbp + 0x140]
lea rdx, [rbp + 0x350]
lea rcx, [rbp - 0x20]
call fcn.140012110
test eax, eax
jne 0x14001488d
lea ecx, [rax + 5]
call fcn.14002bb50
test eax, eax
je 0x1400147d9
movsxd rax, dword [rbp - 0x18]
cmp eax, 0xb
ja case.default.0x140014638
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x14bdc]
add rcx, rdx
jmp rcx
lea rdx, [rbp + 0x140]
lea rcx, [rbp + 0xb0]
call fcn.14001a6c0
nop
mov rbx, qword [rax]
lea rdx, [rbp + 0x350]
lea rcx, [rbp + 0x20]
call fcn.14001a6c0
nop
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rax]
mov rax, r15
call qword [case.0x1400408d8.0]
mov ebx, eax
mov dword [rsp + 0x50], eax
lea rax, [rbp + 0x28]
mov rcx, qword [rbp + 0x20]
cmp rcx, rax
je 0x14001469a
call fcn.14004a7f8
nop
lea rax, [rbp + 0xb8]
mov rcx, qword [rbp + 0xb0]
cmp rcx, rax
je 0x1400146b2
call fcn.14004a7f8
test ebx, ebx
jns 0x1400146e9
mov ecx, 5
call fcn.14002bb50
test eax, eax
je 0x1400146e7
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
call fcn.14001aa00
test ebx, ebx
jne 0x1400144a8
mov ecx, 1
call fcn.14002bb50
test eax, eax
je 0x140014912
lea rax, [rbp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x28], rax
lea rax, str.Successfully_Extracted__s_to__s_using_ExtractFiles_function_in_AdvPack.dll
mov qword [rsp + 0x20], rax
mov ecx, 1
mov r9d, 0x164
call fcn.14001abb0
jmp 0x140014912
lea rax, str.No_error
jmp 0x1400147ad
lea rax, str.Cabinet_not_found
jmp 0x1400147ad
lea rax, str.Not_a_cabinet
jmp 0x1400147ad
lea rax, str.Unknown_cabinet_version
jmp 0x1400147ad
lea rax, str.Corrupt_cabinet
jmp 0x1400147ad
lea rax, str.Memory_allocation_failed
jmp 0x1400147ad
lea rax, str.Unknown_compression_type
jmp 0x1400147ad
lea rax, str.Failure_decompressing_data
jmp 0x1400147ad
lea rax, str.Failure_writing_to_target_file
jmp 0x1400147ad
lea rax, str.Cabinets_in_set_have_different_RESERVE_sizes
jmp 0x1400147ad
lea rax, str.Cabinet_returned_on_fdintNEXT_CABINET_is_incorrect
jmp 0x1400147ad
lea rax, str.Application_aborted
jmp 0x1400147ad
lea rax, str.Unknown_error
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x28], rax
call fcn.14001ac20
mov r14d, 0x80004005
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rbp - 0xc], eax
jne 0x140014824
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x140014801
call qword [sym.imp.Cabinet.dll_FDIDestroy]
mov qword [rbp - 0x20], r13
test eax, eax
je 0x140014824
mov ecx, dword [0x1400a0fe4]
cmp ecx, 0xffffffff
je 0x140014824
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140014824
mov ecx, dword [0x1400a0fe4]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x140014864
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001485f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140014bcc
call fcn.140043780
movdqa xmm0, xmmword [0x14008ebc0]
movdqa xmmword [rbp + 0x10], xmm0
mov word [rbp], r13w
test rsi, rsi
je 0x140014249
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x140014249
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rbp - 0xc], eax
jne 0x1400148d2
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1400148af
call qword [sym.imp.Cabinet.dll_FDIDestroy]
mov qword [rbp - 0x20], r13
test eax, eax
je 0x1400148d2
mov ecx, dword [0x1400a0fe4]
cmp ecx, 0xffffffff
je 0x1400148d2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x1400148d2
mov ecx, dword [0x1400a0fe4]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x140014912
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001490d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140014bcc
call fcn.140043780
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], r13w
lea rax, [rbp + 0x140]
nop
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140014930
mov r8, rdi
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x40]
call fcn.14000ea70
nop
mov r8d, 8
lea rdx, str._aac.xml
lea rcx, [rbp - 0x40]
call fcn.14000e9d0
mov rdi, qword [r12]
mov rax, qword [rdi]
mov r15, qword [rax + 0x1d0]
lea rbx, [rbp - 0x40]
cmp qword [rbp - 0x28], 8
cmovae rbx, qword [rbp - 0x40]
mov word [rsp + 0x78], r13w
lea rcx, [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
js 0x140014bd2
mov eax, 8
mov word [rsp + 0x78], ax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbp - 0x80], rax
test rax, rax
jne 0x1400149be
test rbx, rbx
jne 0x140014baa
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rbp - 0x60], xmm0
movsd xmm1, qword [rbp - 0x78]
movsd qword [rbp - 0x50], xmm1
lea r8, [rsp + 0x54]
lea rdx, [rbp - 0x60]
mov rcx, rdi
mov rax, r15
call qword [case.0x1400408d8.0]
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
lea rcx, [rbp - 0x40]
cmp qword [rbp - 0x28], 8
cmovae rcx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp word [rsp + 0x54], 0
je 0x140014a64
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x140014a4e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140014a49
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140014bc6
call fcn.140043780
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], r13w
jmp 0x140014876
mov ecx, 5
call fcn.14002bb50
test eax, eax
je 0x140014a99
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov r9d, 0x16e
lea r8, str.CMcAacXML::LoadAacRuleXML
call fcn.14001ab40
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x140014a4e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140014a49
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140014bc6
jmp 0x140014a49
mov ecx, 5
call fcn.14002bb50
test eax, eax
je 0x140014b1b
lea rax, [rbp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x350]
mov qword [rsp + 0x28], rax
lea rax, str.FDI_Cab_Extract_Init_failed___s_____s
mov qword [rsp + 0x20], rax
mov ecx, 5
mov r9d, 0x156
call fcn.14001abb0
mov r14d, 0x80004005
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rbp - 0xc], eax
jne 0x140014b66
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x140014b43
call qword [sym.imp.Cabinet.dll_FDIDestroy]
mov qword [rbp - 0x20], r13
test eax, eax
je 0x140014b66
mov ecx, dword [0x1400a0fe4]
cmp ecx, 0xffffffff
je 0x140014b66
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140014b66
mov ecx, dword [0x1400a0fe4]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x140014864
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001485f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140014bcc
jmp 0x14001485f
mov eax, 0xa
mov word [rsp + 0x78], ax
mov dword [rbp - 0x80], 0x8007000e
mov ecx, 0x8007000e
call fcn.14000ef90
nop
call fcn.14004fbe0
int3
call fcn.14004fbe0
nop
mov ecx, eax
call fcn.14000ef90
int3