Function at 0x14000851c
Capabilities:
Create directory

Disassembly:
push rbx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x448
mov qword [rsp + 0xd0], 0xfffffffffffffffe
mov rax, qword [0x140074020]
xor rax, rsp
mov qword [rsp + 0x430], rax
mov r13, r9
mov qword [rsp + 0x60], r9
mov r15, r8
mov rbx, rdx
mov r12, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x50], r9
lea rcx, [rsp + 0x1d0]
call fcn.1400269c8
nop
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0x320]
call fcn.140026ed4
nop
lea rcx, [rsp + 0x1d0]
call fcn.14000a758
lea rcx, [rsp + 0x320]
call fcn.1400271b8
test al, al
je 0x1400085be
lea rcx, [rsp + 0x320]
call fcn.140026fb8
lea rcx, [rsp + 0x320]
call fcn.1400271b0
test al, al
jne 0x140008661
cmp qword [rbx + 0x18], 8
jb 0x1400085df
mov rcx, qword [rbx]
jmp 0x1400085e2
mov rcx, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140008661
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, str.CreateDirectory_failed
lea rcx, [rsp + 0x230]
call fcn.14000a764
nop
movzx r8d, bx
or r8d, 0x80070000
test ebx, ebx
cmovle r8d, ebx
mov r14d, 1
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], 0x151
lea r9, str.srcNvProfileUpdater.cpp
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x370]
call fcn.1400205e0
lea rdx, [0x140072860]
lea rcx, [rsp + 0x370]
call fcn.14002c720
nop
lea rcx, [rsp + 0x328]
call fcn.14000a758
lea r8, str.metadata.json
mov rdx, rbx
lea rcx, [rsp + 0x270]
call fcn.14000d630
nop
lea r8, str.update.dat
mov rdx, rbx
lea rcx, [rsp + 0x250]
call fcn.14000d630
nop
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x40]
call fcn.140007f58
nop
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14000875e
lea rcx, [rbx + 0x68]
cmp qword [r12 + 0x18], 0x10
jb 0x1400086d1
mov rdx, qword [r12]
jmp 0x1400086d4
mov rdx, r12
lea r14, [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1400086e2
mov rcx, qword [rcx]
mov rdi, qword [r12 + 0x10]
mov r8, rdi
cmp qword [r14], rdi
cmovb r8, qword [r14]
test r8, r8
je 0x1400086ff
call fcn.14002c4a0
test eax, eax
jne 0x14000875e
cmp qword [r14], rdi
jb 0x14000875e
ja 0x14000875e
xor eax, eax
test eax, eax
jne 0x14000875e
mov r14, qword [r13 + 0x38]
test r14, r14
jne 0x14000871a
call fcn.14002959c
mov rax, qword [r14]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.1400048e0]
lea rdx, [rsp + 0x250]
mov rcx, r14
call rdi
nop
jmp 0x140008854
mov rdi, rbx
xor ebx, ebx
mov qword [rsp + 0x40], rbx
test rdi, rdi
je 0x140008782
mov rcx, rdi
call fcn.140007dc8
mov edx, 0x88
mov rcx, rdi
call fcn.140028610
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x1d0]
call fcn.1400269c8
nop
lea rcx, [rsp + 0x1d0]
call fcn.1400265c0
mov dil, al
lea rcx, [rsp + 0x1d0]
call fcn.14000a758
test dil, dil
je 0x1400087eb
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x1d0]
call fcn.1400269c8
nop
lea rcx, [rsp + 0x1d0]
call fcn.140026334
nop
lea rcx, [rsp + 0x1d0]
call fcn.14000a758
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x1d0]
call fcn.1400269c8
nop
lea rcx, [rsp + 0x1d0]
call fcn.1400265c0
mov dil, al
lea rcx, [rsp + 0x1d0]
call fcn.14000a758
test dil, dil
je 0x140008854
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x1d0]
call fcn.1400269c8
nop
lea rcx, [rsp + 0x1d0]
call fcn.140026334
nop
lea rcx, [rsp + 0x1d0]
call fcn.14000a758
mov rdx, r15
lea rcx, [rsp + 0x230]
call fcn.140008140
nop
mov r13d, 0xf
mov qword [rsp + 0x228], r13
and qword [rsp + 0x220], 0
mov byte [rsp + 0x210], 0
mov r15, qword [rsp + 0x230]
mov r8, qword [rsp + 0x238]
cmp r15, r8
je 0x1400088ad
sub r8, r15
mov rdx, r15
lea rcx, [rsp + 0x210]
call fcn.14000b988
nop
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x1f0]
call fcn.140019b18
mov rdi, rax
mov r14d, 1
mov r8d, r14d
lea edx, [r14 + 1]
lea rcx, [rsp + 0xe8]
call fcn.14000be64
nop
lea rdx, str.Downloaded_metadata:
lea rcx, [rsp + 0xe8]
call fcn.14001078c
mov rdx, rdi
lea rcx, [rsp + 0xe8]
call fcn.140010968
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0xe8]
call fcn.14000a6ec
nop
lea rdx, [rsp + 0x1d0]
lea ecx, [r14 + 2]
call fcn.14001b7a4
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x1d0]
call fcn.14000b5d0
nop
lea rcx, [rsp + 0x170]
call fcn.14000a844
nop
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x170], rax
lea rcx, [rsp + 0x170]
call fcn.140029688
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x1f0]
call fcn.14000b5d0
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x290]
call fcn.1400077bc
nop
lea rdx, str.Metadata_parsed.
lea ecx, [r14 + 2]
call fcn.14001b7b4
lea rax, [rsp + 0x2f8]
cmp rax, r12
je 0x1400089c8
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, r12
lea rcx, [rsp + 0x2f8]
call fcn.14000ba84
test rbx, rbx
je 0x140008b72
lea rdx, [rsp + 0x290]
cmp qword [rsp + 0x2a8], 0x10
cmovae rdx, qword [rsp + 0x290]
cmp qword [rbx + 0x18], 0x10
jb 0x1400089f7
mov rcx, qword [rbx]
jmp 0x1400089fa
mov rcx, rbx
mov rdi, qword [rbx + 0x10]
mov r12, qword [rsp + 0x2a0]
mov r8, r12
cmp rdi, r12
cmovb r8, rdi
test r8, r8
je 0x140008a22
call fcn.14002c4a0
test eax, eax
jne 0x140008b72
cmp rdi, r12
jb 0x140008b72
ja 0x140008b72
xor eax, eax
test eax, eax
jne 0x140008b72
lea rdx, [rsp + 0x290]
lea rcx, [rsp + 0x1f0]
call fcn.140019b18
mov rdi, rax
mov r8d, r14d
mov edx, 2
lea rcx, [rsp + 0xe8]
call fcn.14000be64
nop
lea rdx, str.Both_old_and_new_metadata_have_the_same_version
lea rcx, [rsp + 0xe8]
call fcn.14001078c
mov rdx, rdi
lea rcx, [rsp + 0xe8]
call fcn.140010968
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0xe8]
call fcn.14000a6ec
nop
lea rdx, [rsp + 0x1d0]
mov ecx, 3
call fcn.14001b7a4
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x1d0]
call fcn.14000b5d0
nop
lea rcx, [rsp + 0x170]
call fcn.14000a844
nop
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x170], rax
lea rcx, [rsp + 0x170]
call fcn.140029688
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x1f0]
call fcn.14000b5d0
nop
lea rcx, [rsp + 0x290]
call fcn.140007dc8
nop
mov rdx, qword [rsp + 0x228]
cmp rdx, 0x10
jb 0x140008b38
inc rdx
mov r8, r14
mov rcx, qword [rsp + 0x210]
call fcn.140004950
mov qword [rsp + 0x228], r13
and qword [rsp + 0x220], 0
mov byte [rsp + 0x210], 0
test r15, r15
je 0x140008b6d
mov rdx, qword [rsp + 0x240]
sub rdx, r15
mov r8, r14
mov rcx, r15
call fcn.140004950
nop
jmp 0x14000907b
lea rdx, [rsp + 0x2b0]
lea rcx, [rsp + 0x1f0]
call fcn.140019b18
nop
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140008140
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x1f0]
call fcn.14000b5d0
lea rdx, str.Profile_update_downloaded.
mov ecx, 3
call fcn.14001b7b4
mov rax, qword [rsp + 0x88]
sub rax, qword [rsp + 0x80]
cmp rax, qword [rsp + 0x2f0]
je 0x140008c07
lea rdx, str.Downloaded_profile_update_has_invalid_size_
lea rcx, [rsp + 0x1d0]
call fcn.14000a764
nop
mov r8d, 0x187
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1d0]
call fcn.140005afc
nop
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.140022bd8
nop
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x38]
call fcn.140024428
test al, al
jne 0x140008c5a
lea rdx, str.Cannot_calculate_MD5_of_downloaded_profile_update_
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x18e
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0x38]
call fcn.140025ac0
lea rdx, [rsp + 0x2d0]
cmp qword [rsp + 0x2e8], 0x10
cmovae rdx, qword [rsp + 0x2d0]
lea rcx, [rax + 0x10]
mov qword [rsp + 0x50], rcx
cmp qword [rax + 0x18], 0x10
jb 0x140008c99
mov rax, qword [rax]
mov r12, qword [rsp + 0x2e0]
mov r8, r12
cmp qword [rcx], r12
cmovb r8, qword [rcx]
test r8, r8
je 0x140008cc3
mov rcx, rax
call fcn.14002c4a0
mov edi, eax
test eax, eax
jne 0x140008cd6
mov rcx, qword [rsp + 0x50]
cmp qword [rcx], r12
jae 0x140008ccd
or edi, 0xffffffff
jmp 0x140008cd6
xor edi, edi
cmp qword [rcx], r12
seta dil
mov rdx, qword [rsp + 0x1e8]
cmp rdx, 0x10
jb 0x140008cf7
inc rdx
mov r8, r14
mov rcx, qword [rsp + 0x1d0]
call fcn.140004950
test edi, edi
je 0x140008d2b
lea rdx, str.MD5_of_downloaded_update_doesnt_match_metadata
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x193
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
lea rcx, [rsp + 0x38]
call fcn.140022f0c
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
and qword [rsp + 0x78], 0
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x80]
call fcn.140021bf8
test al, al
jne 0x140008d8a
lea rdx, str.Cannot_decompress_downloaded_profile_update_
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x19a
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0xb8]
call fcn.14001ab60
nop
mov edi, 0xa
mov edx, edi
lea rcx, [rsp + 0xb8]
call fcn.14001adc0
test al, al
jne 0x140008de8
lea rdx, str.Cannot_open_metadata_file_for_writing_
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x1a0
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0xa0]
call fcn.14001ab60
nop
mov edx, edi
lea rcx, [rsp + 0xa0]
call fcn.14001adc0
test al, al
jne 0x140008e41
lea rdx, str.Cannot_open_profile_update_file_for_writing_
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x1a5
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
mov byte [rsp + 0x30], 0
lea rdx, [rsp + 0x290]
lea rcx, [rsp + 0x1d0]
call fcn.1400074c4
nop
lea rdx, [rsp + 0x1d0]
cmp qword [rsp + 0x1e8], 0x10
cmovae rdx, qword [rsp + 0x1d0]
lea r9, [rsp + 0x30]
mov r8, qword [rsp + 0x1e0]
lea rcx, [rsp + 0xb8]
call fcn.14001bcd4
cmp byte [rsp + 0x30], 0
je 0x140008ec7
lea rdx, str.Cannot_save_metadata_into_file
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x1ae
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
mov rdx, qword [rsp + 0x1e8]
cmp rdx, 0x10
jb 0x140008ee8
inc rdx
mov r8, r14
mov rcx, qword [rsp + 0x1d0]
call fcn.140004950
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
sub r8, rdx
lea r9, [rsp + 0x30]
lea rcx, [rsp + 0xa0]
call fcn.14001bcd4
cmp byte [rsp + 0x30], 0
je 0x140008f3e
lea rdx, str.Cannot_save_profile_update_into_file
lea rcx, [rsp + 0x1f0]
call fcn.14000a764
nop
mov r8d, 0x1b4
lea rdx, str.srcNvProfileUpdater.cpp
lea rcx, [rsp + 0x1f0]
call fcn.140005afc
nop
lea rcx, [rsp + 0xa0]
call fcn.14001ad20
nop
mov r12, qword [rsp + 0x60]
mov r12, qword [r12 + 0x38]
test r12, r12
jne 0x140008f60
call fcn.14002959c
mov rax, qword [r12]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.1400048e0]
lea rdx, [rsp + 0x250]
mov rcx, r12
call rdi
nop
jmp 0x140008f98
lea rcx, [rsp + 0xa0]
call fcn.14001abf8
nop
lea rcx, [rsp + 0xb8]
call fcn.14001abf8
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140008fdd
mov rdx, qword [rsp + 0x78]
sub rdx, rcx
mov r8, r14
call fcn.140004950
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
and qword [rsp + 0x78], 0
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140009012
mov rdx, qword [rsp + 0x90]
sub rdx, rcx
mov r8, r14
call fcn.140004950
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x80], xmm0
and qword [rsp + 0x90], 0
lea rcx, [rsp + 0x290]
call fcn.140007dc8
nop
mov rdx, qword [rsp + 0x228]
cmp rdx, 0x10
jb 0x140009041
inc rdx
mov r8, r14
mov rcx, qword [rsp + 0x210]
call fcn.140004950
mov qword [rsp + 0x228], r13
and qword [rsp + 0x220], 0
mov byte [rsp + 0x210], 0
test r15, r15
je 0x140009076
mov rdx, qword [rsp + 0x240]
sub rdx, r15
mov r8, r14
mov rcx, r15
call fcn.140004950
nop
test rbx, rbx
je 0x140009091
mov rcx, rbx
call fcn.140007dc8
mov edx, 0x88
mov rcx, rbx
call fcn.140028610
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x250]
call fcn.14000b5d0
nop
xor r8d, r8d
mov dl, r14b
lea rcx, [rsp + 0x270]
call fcn.14000b5d0
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.140027920
add rsp, 0x448
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret