Function at 0x180005670
Capabilities:
Get file version info

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xe8
mov rax, qword [0x1800d7110]
xor rax, rsp
mov qword [rbp - 0x11], rax
mov r12, qword [rbp + 0x77]
mov rbx, qword [rbp + 0x87]
mov r15, qword [rbp + 0x97]
mov rax, rcx
mov qword [rsp + 0x58], rcx
mov rcx, qword [rbp + 0x6f]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x7f]
xor edi, edi
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x8f]
mov rsi, r9
mov r14, r8
mov r13, rdx
mov qword [rsp + 0x50], rcx
test rax, rax
je 0x1800059f7
lea rdx, [rsp + 0x38]
mov rcx, rax
mov dword [rsp + 0x38], edi
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [rsp + 0x20], eax
test eax, eax
je 0x1800059f7
mov ecx, eax
call fcn.180029d7c
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1800059f7
mov r8d, dword [rsp + 0x20]
xor edx, edx
mov rcx, rax
call fcn.180029630
mov r9, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x20]
mov edx, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x58]
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x1800059ea
mov qword [rsp + 0x28], rdi
test r13, r13
jne 0x180005758
test r14, r14
jne 0x180005758
test r15, r15
je 0x1800057a2
mov rcx, qword [rsp + 0x30]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [0x1800a5cec]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x1800059ea
mov rcx, qword [rsp + 0x28]
test r13, r13
je 0x18000578c
mov eax, dword [rcx + 8]
mov dword [r13], eax
test r14, r14
je 0x180005797
mov eax, dword [rcx + 0xc]
mov dword [r14], eax
test r15, r15
je 0x1800057a2
mov eax, dword [rcx + 0x24]
mov dword [r15], eax
mov r13, qword [rsp + 0x30]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, str.VarFileInfoTranslation
mov rcx, r13
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x1800059ef
mov rax, qword [rsp + 0x28]
xor edx, edx
lea rcx, [rbp - 0x80]
movzx edi, word [rax + 2]
movzx r15d, word [rax]
lea r8d, [rdx + 0x63]
mov word [rsp + 0x24], di
mov byte [rsp + 0x60], 0
call fcn.180029630
test rsi, rsi
je 0x180005897
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x180005897
xor edx, edx
lea rcx, [rsp + 0x60]
lea r8d, [rdx + 0x64]
call fcn.180029630
lea rdx, str.StringFileInfo_04X_04XCompanyName
lea rcx, [rsp + 0x60]
movzx r9d, di
movzx r8d, r15w
call fcn.18002971c
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x60]
mov rcx, r13
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x180005897
mov rdx, qword [rsp + 0x28]
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
mov eax, dword [r14]
not rcx
dec rcx
cmp rax, rcx
jbe 0x180005892
mov rcx, rdx
sub rsi, rdx
nop dword [rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rsi + rcx - 1], al
test al, al
jne 0x180005870
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
mov dword [r14], ecx
movzx edi, word [rsp + 0x24]
test r12, r12
je 0x180005942
mov rsi, qword [rsp + 0x48]
test rsi, rsi
je 0x180005942
xor edx, edx
lea rcx, [rsp + 0x60]
lea r8d, [rdx + 0x64]
call fcn.180029630
lea rdx, str.StringFileInfo_04X_04XInternalName
lea rcx, [rsp + 0x60]
movzx r9d, di
movzx r8d, r15w
call fcn.18002971c
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x60]
mov rcx, r13
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x180005942
mov rdx, qword [rsp + 0x28]
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
mov eax, dword [rsi]
not rcx
dec rcx
cmp rax, rcx
jbe 0x180005942
mov rcx, rdx
sub r12, rdx
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
mov byte [r12 + rcx - 1], al
test al, al
jne 0x180005920
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
mov dword [rsi], ecx
test rbx, rbx
je 0x1800059e3
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x1800059e3
xor edx, edx
lea rcx, [rsp + 0x60]
lea r8d, [rdx + 0x64]
call fcn.180029630
movzx r9d, word [rsp + 0x24]
lea rdx, str.StringFileInfo_04X_04XProductName
lea rcx, [rsp + 0x60]
movzx r8d, r15w
call fcn.18002971c
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x60]
mov rcx, r13
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x1800059e3
mov r8, qword [rsp + 0x28]
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r8
repne scasb al, byte [rdi]
mov eax, dword [rsi]
not rcx
dec rcx
cmp rax, rcx
jbe 0x1800059e3
mov rdx, r8
sub rbx, r8
movzx eax, byte [rdx]
inc rdx
mov byte [rbx + rdx - 1], al
test al, al
jne 0x1800059c2
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
dec rcx
mov dword [rsi], ecx
mov edi, 1
jmp 0x1800059ef
mov r13, qword [rsp + 0x30]
mov rcx, r13
call fcn.180029a70
mov eax, edi
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.180029600
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret