Function at 0x140003670
Capabilities:
Get file version info

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r13, qword [rsp + 0x90]
xor ebx, ebx
mov r12, rdx
mov r14, r9
mov r15, r8
mov rsi, rcx
mov dword [r13], ebx
mov dword [r9], ebx
mov dword [r8], ebx
mov dword [rdx], ebx
lea rdx, [rsp + 0x90]
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov edi, eax
test eax, eax
je 0x1400038bf
mov ecx, edi
mov qword [rsp + 0x70], rbp
lea rdx, [0x140054850]
call fcn.14001ed50
mov rbp, rax
mov r8d, edi
test rax, rax
je 0x1400038a7
mov edx, dword [rsp + 0x90]
mov r9, rax
mov rcx, rsi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x14000385b
lea r9, [rsp + 0x78]
mov dword [rsp + 0x78], ebx
lea r8, [rsp + 0x88]
mov qword [rsp + 0x88], rbx
lea rdx, str.StringFileInfo040904b0FileVersion
mov rcx, rbp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x1400037d5
mov rcx, qword [rsp + 0x88]
lea rdx, [rsp + 0x80]
mov r9, r12
mov qword [rsp + 0x80], rcx
xor r8d, r8d
call fcn.140018980
cmp eax, 0x4c
jne 0x1400037d5
mov rcx, qword [rsp + 0x80]
cmp byte [rcx], 0x2e
jne 0x1400037d5
inc rcx
lea rdx, [rsp + 0x80]
mov r9, r15
xor r8d, r8d
call fcn.140018980
cmp eax, 0x4c
jne 0x1400037d5
mov rcx, qword [rsp + 0x80]
cmp byte [rcx], 0x2e
jne 0x1400037d5
inc rcx
lea rdx, [rsp + 0x80]
mov r9, r14
xor r8d, r8d
call fcn.140018980
cmp eax, 0x4c
jne 0x1400037d5
mov rcx, qword [rsp + 0x80]
cmp byte [rcx], 0x2e
jne 0x1400037d5
inc rcx
lea rdx, [rsp + 0x80]
mov r9, r13
xor r8d, r8d
call fcn.140018980
test eax, eax
je 0x140003888
cmp eax, 0x4c
je 0x140003888
lea r9, [rsp + 0x78]
mov dword [rsp + 0x78], ebx
lea r8, [rsp + 0x80]
mov qword [rsp + 0x80], rbx
lea rdx, [0x140057ec8]
mov rcx, rbp
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x140003829
mov rcx, qword [rsp + 0x80]
movzx eax, word [rcx + 0xa]
mov dword [r12], eax
movzx eax, word [rcx + 8]
mov dword [r15], eax
movzx eax, word [rcx + 0xe]
mov dword [r14], eax
movzx eax, word [rcx + 0xc]
mov dword [r13], eax
jmp 0x140003888
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14001ee80
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, rsi
mov dword [rsp + 0x20], ebx
mov r9d, eax
lea rdx, str.No_file_version_value_for_file__s_available____d___rc_Rrc__n
mov ecx, 3
call fcn.140002470
jmp 0x140003888
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14001ee80
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, rsi
mov dword [rsp + 0x20], ebx
mov r9d, eax
lea rdx, str.GetFileVersionInfo__s______u____Rrc_n
xor ecx, ecx
call fcn.140002470
mov rcx, rbp
call fcn.14001ed80
mov eax, ebx
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r9, rsi
lea rdx, str.Failed_to_allocate__u_byte_for_file_version_info_for__s_n
xor ecx, ecx
call fcn.140002470
mov eax, 0xffffffec
jmp 0x140003892
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14001ee80
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, rsi
mov dword [rsp + 0x20], ebx
mov r9d, eax
lea rdx, str.GetFileVersionInfoSize__s______u____Rrc_n
mov ecx, 3
call fcn.140002470
mov eax, ebx
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret