Function at 0x14021606a
Capabilities:
Get file version info

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x70
mov rsi, r9
mov rbx, r8
mov rdi, rdx
mov r15, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x68], rax
cmp byte [rdx + 0x17], 0
js 0x14021630d
mov byte [rdi + 0x17], 6
mov rax, rdi
movabs rcx, 0x6400450053004d
mov qword [rax], rcx
mov dword [rax + 8], 0x650067
mov word [rax + 0xc], 0
lea rdx, str.0.0.0.0_devel
mov r8d, 0xd
mov rcx, rbx
call fcn.14008df3a
cmp byte [rsi + 0x17], 0
js 0x14021631d
mov word [rsi], 0
mov byte [rsi + 0x17], 0
mov dword [rsp + 0x64], 0
cmp byte [r15 + 0x17], 0
mov rcx, r15
jns 0x1402160fb
mov rcx, qword [r15]
lea rdx, [rsp + 0x64]
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x14021628c
mov ebp, eax
mov ecx, eax
call fcn.14016f248
mov r14, rax
mov edx, dword [rsp + 0x64]
cmp byte [r15 + 0x17], 0
jns 0x140216127
mov r15, qword [r15]
mov rcx, r15
mov r8d, ebp
mov r9, r14
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x14021627f
lea rdx, [0x140309eda]
lea r15, [rsp + 0x40]
mov r8d, 0xe
mov rcx, r15
call fcn.1400682e2
mov rcx, r14
mov rdx, r15
mov r8, rbx
call fcn.140215e94
cmp byte [r15 + 0x17], 0
jns 0x140216176
mov rcx, qword [rsp + 0x40]
call fcn.14016eccc
xorps xmm0, xmm0
lea r15, [rsp + 0x40]
movaps xmmword [r15], xmm0
mov qword [r15 + 0x10], 0
lea rdx, [0x14030c5e4]
lea r12, [rsp + 0x28]
mov r8d, 0xe
mov rcx, r12
call fcn.1400682e2
mov rcx, r14
mov rdx, r12
mov r8, r15
call fcn.140215e94
cmp byte [r12 + 0x17], 0
jns 0x1402161c4
mov rcx, qword [rsp + 0x28]
call fcn.14016eccc
movzx eax, byte [rsp + 0x57]
test al, al
cmovs rax, qword [rsp + 0x48]
cmovs r15, qword [rsp + 0x40]
test rax, rax
je 0x1402161e5
test r15, r15
je 0x140216365
cmp rax, 1
je 0x1402162fd
lea rdx, [0x14030c602]
mov r8d, 6
mov rcx, rbx
call fcn.14006cfe0
lea rdx, [0x140309eb8]
lea rbx, [rsp + 0x28]
mov r8d, 0x10
mov rcx, rbx
call fcn.1400682e2
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.140215e94
cmp byte [rbx + 0x17], 0
jns 0x14021623c
mov rcx, qword [rsp + 0x28]
call fcn.14016eccc
lea rdx, str.SpecialBuild
lea rdi, [rsp + 0x28]
mov r8d, 0xc
mov rcx, rdi
call fcn.1400682e2
mov rcx, r14
mov rdx, rdi
mov r8, rsi
call fcn.140215e94
cmp byte [rdi + 0x17], 0
jns 0x140216274
mov rcx, qword [rsp + 0x28]
call fcn.14016eccc
cmp byte [rsp + 0x57], 0
js 0x140216356
test r14, r14
je 0x14021628c
mov rcx, r14
call fcn.14016efec
mov rax, qword [0x140354b98]
mov rax, qword [rax + 8]
cmp byte [rax + 0x50], 0
jne 0x140216332
mov rdx, qword [rax + 0x18]
mov r8, qword [rax + 0x20]
test r8, r8
je 0x1402162b7
test rdx, rdx
je 0x140216391
lea rcx, [rsp + 0x40]
call fcn.1400682e2
mov rsi, qword [rsp + 0xd0]
cmp byte [rsi + 0x17], 0
js 0x140216349
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi], xmm0
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140171860
nop
add rsp, 0x70
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
cmp word [r15], 0x31
je 0x140216204
jmp 0x1402161ef
mov qword [rdi + 8], 6
mov rax, qword [rdi]
jmp 0x1402160a4
mov rax, qword [rsi]
mov word [rax], 0
mov qword [rsi + 8], 0
jmp 0x1402160e6
lea rdx, [0x140302588]
lea rcx, [rsp + 0x40]
mov r8d, 8
jmp 0x1402162bc
mov rcx, qword [rsi]
call fcn.14016eccc
jmp 0x1402162cf
mov rcx, qword [rsp + 0x40]
call fcn.14016eccc
jmp 0x14021627f
lea rax, str.string_view::string_view__CharT___size_t_:_received_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string_view
lea r9, str.__len__0____s___nullptr
mov r8d, 0x129
call fcn.1401c469a
lea rax, str.basic_string_const_char__n__detected_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__n__0____s___nullptr
mov r8d, 0x376
call fcn.1401c469a
int3