Function at 0x140003aec
Capabilities:
Get file version info

Disassembly:
push rbp
mov eax, 0x8140
call fcn.1400aab80
sub rsp, 0x8140
lea rbp, [rsp + 0x30]
mov qword [rbp + 0xf8], rsi
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x88], rdx
mov qword [rbp + 0x8120], rcx
mov qword [rbp + 0x8128], rdx
mov rax, qword [0x1400e0a40]
xor rax, rbp
mov qword [rbp + 0x8100], rax
mov rax, qword [rbp + 0x8128]
lea rdx, [rbp]
mov rcx, rax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
mov dword [rbp + 8], eax
mov eax, dword [rbp + 8]
test eax, eax
jne 0x140003c46
mov rax, qword [rbp + 0x8120]
lea rdx, str.sprvfexCheckFileVer
lea rcx, str.GetFileVersionInfoSize
mov qword [rbp + 0xb8], rcx
mov rcx, rax
mov rax, qword [rbp + 0xb8]
mov r8, rax
call fcn.140033033
mov dword [rbp + 0xc], eax
mov rax, qword [rbp + 0x8120]
lea rdx, str.Exectask:_could_not_retrieve_File_Version
mov rcx, rax
call fcn.14002d658
mov dword [rbp + 0x10], eax
mov eax, dword [rbp + 0x10]
test eax, eax
je 0x140003c07
lea rax, str.sprvfexCheckFileVer:_unable_to_wrap_log_message_n
mov rcx, rax
call fcn.140001114
mov dword [rbp + 0x1c], eax
mov eax, 1
mov dword [rbp + 0x58], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x58]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov eax, 1
mov dword [rbp + 0x5c], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x5c]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov eax, 0x40
mov edx, dword [rbp + 8]
mov rcx, qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov qword [rbp + 0xc0], rcx
mov ecx, eax
mov rax, qword [rbp + 0xc0]
call rax
mov qword [rbp + 0x90], rax
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x98], rax
mov rax, qword [rbp + 0x98]
test rax, rax
je 0x140003ea1
mov rax, qword [rbp + 0x8128]
mov edx, 0
mov ecx, dword [rbp + 8]
mov rbx, qword [rbp + 0x98]
mov dword [rbp + 0xc8], ecx
mov rcx, rax
mov eax, dword [rbp + 0xc8]
mov r8d, eax
mov r9, rbx
call sub.VERSION.dll_GetFileVersionInfoA
mov dword [rbp + 0x14], eax
mov rax, qword [rbp + 0x98]
lea rdx, [0x1400afa14]
lea rcx, [rbp + 0xa0]
lea rbx, [rbp + 0x20]
mov qword [rbp + 0xd0], rcx
mov rcx, rax
mov rax, qword [rbp + 0xd0]
mov r8, rax
mov r9, rbx
call sub.VERSION.dll_VerQueryValueA
mov dword [rbp + 0x24], eax
mov eax, dword [rbp + 0x24]
test eax, eax
je 0x140003da6
lea rax, [rbp + 0x100]
lea rdx, str._d._d._d._d_n
mov rcx, qword [rbp + 0xa0]
mov ecx, dword [rcx + 8]
shr ecx, 0x10
and ecx, 0xffff
movzx ecx, cx
mov rbx, qword [rbp + 0xa0]
mov ebx, dword [rbx + 8]
and ebx, 0xffff
movzx ebx, bx
mov rsi, qword [rbp + 0xa0]
mov esi, dword [rsi + 0xc]
shr esi, 0x10
and esi, 0xffff
movzx esi, si
mov dword [rsp + 0x20], esi
mov rsi, qword [rbp + 0xa0]
mov esi, dword [rsi + 0xc]
and esi, 0xffff
movzx esi, si
mov dword [rsp + 0x28], esi
mov dword [rbp + 0xd8], ecx
mov rcx, rax
mov eax, dword [rbp + 0xd8]
mov r8d, eax
mov r9d, ebx
call fcn.1400012e0
mov dword [rbp + 0x2c], eax
mov rax, qword [rbp + 0x98]
mov rdx, qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, rax
call rdx
mov qword [rbp + 0xa8], rax
jmp 0x140003f82
mov rax, qword [rbp + 0x8120]
lea rdx, str.sprvfexCheckFileVer
lea rcx, str.VerQueryValue
mov qword [rbp + 0xe0], rcx
mov rcx, rax
mov rax, qword [rbp + 0xe0]
mov r8, rax
call fcn.140033033
mov dword [rbp + 0x30], eax
mov rax, qword [rbp + 0x98]
mov rdx, qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, rax
call rdx
mov qword [rbp + 0xb0], rax
mov rax, qword [rbp + 0x8120]
lea rdx, str.Exectask:_could_not_retrieve_File_Version
mov rcx, rax
call fcn.14002d658
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x3c]
test eax, eax
je 0x140003e62
lea rax, str.sprvfexCheckFileVer:_unable_to_wrap_log_message_n
mov rcx, rax
call fcn.140001114
mov dword [rbp + 0x48], eax
mov eax, 1
mov dword [rbp + 0x60], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x60]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov eax, 1
mov dword [rbp + 0x64], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x64]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov rax, qword [rbp + 0x8120]
lea rdx, str.sprvfexCheckFileVer
lea rcx, [0x1400affa8]
mov qword [rbp + 0xe8], rcx
mov rcx, rax
mov rax, qword [rbp + 0xe8]
mov r8, rax
call fcn.140033033
mov dword [rbp + 0x18], eax
mov rax, qword [rbp + 0x8120]
lea rdx, str.Exectask:_could_not_retrieve_File_Version
mov rcx, rax
call fcn.14002d658
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
test eax, eax
je 0x140003f43
lea rax, str.sprvfexCheckFileVer:_unable_to_wrap_log_message_n
mov rcx, rax
call fcn.140001114
mov dword [rbp + 0x34], eax
mov eax, 1
mov dword [rbp + 0x68], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x68]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov eax, 1
mov dword [rbp + 0x6c], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x6c]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov rax, qword [rbp + 0x8120]
lea rdx, [rbp + 0x100]
mov rcx, rax
call fcn.140024a10
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x38]
test eax, eax
je 0x140003ff3
lea rax, str.sprvfexCheckFileVer:_unable_to_wrap_val_message_n
mov rcx, rax
call fcn.140001114
mov dword [rbp + 0x40], eax
mov eax, 1
mov dword [rbp + 0x70], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x70]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov rax, qword [rbp + 0x8120]
mov edx, 0
mov rcx, rax
call fcn.14002483b
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
test eax, eax
je 0x140004062
lea rax, str.sprvfexCheckfileVer:_unable_to_wrap_vres_n
mov rcx, rax
call fcn.140001114
mov dword [rbp + 0x4c], eax
mov eax, 1
mov dword [rbp + 0x74], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x74]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov rax, qword [rbp + 0x8120]
lea rdx, str.Exectask:_File_Version_retrieval_was_successful
mov rcx, rax
call fcn.14002d658
mov dword [rbp + 0x50], eax
mov eax, dword [rbp + 0x50]
test eax, eax
je 0x1400040d3
lea rax, str.sprvfexCheckFileVer:_unable_to_wrap_log_message_n
mov rcx, rax
call fcn.140001114
mov dword [rbp + 0x54], eax
mov eax, 1
mov dword [rbp + 0x78], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x78]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret
mov eax, 0
mov dword [rbp + 0x7c], eax
mov rax, qword [rbp + 0x8100]
mov qword [rbp + 0x8100], 0
xor rax, rbp
mov rcx, rax
call fcn.1400aab50
mov eax, dword [rbp + 0x7c]
mov rbx, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xf8]
lea rsp, [rbp + 0x8110]
pop rbp
ret