Function at 0x14000a290
Capabilities:
Get file version info

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov r15, rcx
xor r12d, r12d
call fcn.14002caec
mov rbx, qword [0x1402c0c30]
call fcn.140014fd4
mov rcx, rax
test rax, rax
je 0x14000a60a
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x40], rax
lea rdi, [r12 - 1]
test rbx, rbx
je 0x14000a30d
cmp rbx, 0x10000
jae 0x14000a2f4
movzx edx, bx
lea rcx, [rbp - 0x40]
call fcn.1400090f0
jmp 0x14000a31d
mov r8, rdi
nop word [rax + rax]
inc r8
cmp word [rbx + r8*2], 0
jne 0x14000a300
jmp 0x14000a310
mov r8d, r12d
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140009550
nop
lea r8, str..exe
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x30]
call fcn.140008b00
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000a352
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0x48]
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov r14d, eax
test eax, eax
je 0x14000a5d2
cmp dword [rbp + 0x48], 0
je 0x14000a5d2
call fcn.140014fd4
mov rcx, rax
test rax, rax
je 0x14000a615
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x38], rax
lea rdx, str.BK_Virtual_HDD_Maker
cmp rdx, 0x10000
jae 0x14000a3b2
movzx edx, dx
lea rcx, [rbp - 0x38]
call fcn.1400090f0
jmp 0x14000a3ca
mov r8, rdi
inc r8
cmp word [rdx + r8*2], 0
jne 0x14000a3b5
lea rcx, [rbp - 0x38]
call fcn.140009550
nop
call fcn.140014fd4
mov rcx, rax
test rax, rax
je 0x14000a620
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x58], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], r12
lfence
lea rbx, [r14 + r14]
cmp rbx, 0x1000
jb 0x14000a415
lfence
mov rcx, rbx
call fcn.140004d00
mov rsi, rax
jmp 0x14000a42d
test rbx, rbx
je 0x14000a42a
lfence
mov rcx, rbx
call fcn.140014af0
mov rsi, rax
jmp 0x14000a42d
mov rsi, r12
mov qword [rbp - 0x18], rsi
add rbx, rsi
mov qword [rbp - 8], rbx
mov rdx, rbx
mov rcx, rsi
call fcn.140011da0
mov qword [rbp - 0x10], rbx
test rsi, rsi
je 0x14000a4d6
mov r9, rsi
mov r8d, r14d
mov edx, dword [rbp + 0x48]
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov qword [rbp - 0x28], r12
lea r9, [rbp + 0x50]
lea r8, [rbp - 0x28]
lea rdx, [0x140276310]
mov rcx, rsi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
mov rax, qword [rbp - 0x28]
mov ecx, dword [rax + 0xc]
mov r8d, dword [rax + 8]
movzx eax, cx
shr ecx, 0x10
movzx r9d, r8w
shr r8d, 0x10
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rdx, str.v_d._d._d._d
lea rcx, [rbp + 0x58]
call fcn.140008790
lea rdx, [0x140275a00]
mov r8, rdi
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x14000a4c0
lea rcx, [rbp + 0x58]
call fcn.140008850
jmp 0x14000a4f4
lea rdx, str.v___
mov r8, rdi
inc r8
cmp word [rdx + r8*2], 0
jne 0x14000a4e0
lea rcx, [rbp + 0x58]
call fcn.140009550
mov edx, 0x403
mov rcx, r15
call fcn.1400367dc
mov rbx, rax
lea r8, [rbp + 0x58]
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x20]
call fcn.140007290
nop
mov rdx, qword [rax]
mov rcx, rbx
call fcn.1400373f8
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000a543
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14000a590
mov rax, qword [rbp - 8]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000a57f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000a604
call fcn.140009f50
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], r12
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000a5b1
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000a5d2
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x14000a5f0
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
add rsp, 0x70
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401e186c
nop
mov ecx, 0x80004005
call fcn.140009870
nop
mov ecx, 0x80004005
call fcn.140009870
nop
mov ecx, 0x80004005
call fcn.140009870
int3