Function at 0x18001fe00
Capabilities:
Get file version info

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xc8
mov rax, qword [0x18011a300]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov eax, dword [0x1801340b0]
mov r14, qword [rsp + 0x120]
mov r13, qword [rsp + 0x128]
mov rsi, r9
mov rbp, r8
mov r12, rdx
mov rdi, rcx
test eax, eax
je 0x18001fe6e
lea r9, str.GetFileVerInfo_1
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
mov eax, dword [0x1801340b0]
test rdi, rdi
jne 0x18001fe7a
xor eax, eax
jmp 0x1800201b8
test eax, eax
je 0x18001fe9d
lea r9, str.GetFileVerInfo_2
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
lea rdx, [rsp + 0x30]
mov rcx, rdi
mov dword [rsp + 0x30], 0
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [rsp + 0x20], eax
test eax, eax
je 0x18001fe73
cmp dword [0x1801340b0], 0
mov qword [rsp + 0xc0], rbx
je 0x18001feee
lea r9, str.GetFileVerInfo_3
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
mov eax, dword [rsp + 0x20]
mov ecx, eax
call fcn.180045488
mov rbx, rax
test rax, rax
je 0x1800201e1
cmp dword [0x1801340b0], 0
je 0x18001ff29
lea r9, str.GetFileVerInfo_4
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
mov r8d, dword [rsp + 0x20]
xor edx, edx
mov rcx, rbx
call fcn.180043ef0
mov r8d, dword [rsp + 0x20]
mov edx, dword [rsp + 0x30]
mov r9, rbx
mov rcx, rdi
call sub.VERSION.dll_GetFileVersionInfoA
cmp dword [0x1801340b0], 0
mov edi, eax
je 0x18001ff76
lea r9, str.GetFileVerInfo_5
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
test edi, edi
je 0x1800201d9
mov qword [rsp + 0x28], 0
test r12, r12
jne 0x18001ff9a
test rbp, rbp
jne 0x18001ff9a
test r13, r13
je 0x180020035
cmp dword [0x1801340b0], 0
je 0x18001ffc2
lea r9, str.GetFileVerInfo_6
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [0x1800d1cbc]
mov rcx, rbx
call sub.VERSION.dll_VerQueryValueA
cmp dword [0x1801340b0], 0
mov edi, eax
je 0x180020005
lea r9, str.GetFileVerInfo_7
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
test edi, edi
je 0x1800201d9
mov rcx, qword [rsp + 0x28]
test r12, r12
je 0x18002001e
mov eax, dword [rcx + 8]
mov dword [r12], eax
test rbp, rbp
je 0x180020029
mov eax, dword [rcx + 0xc]
mov dword [rbp], eax
test r13, r13
je 0x180020035
mov eax, dword [rcx + 0x24]
mov dword [r13], eax
test rsi, rsi
je 0x1800201a3
test r14, r14
je 0x1800201a3
cmp dword [0x1801340b0], 0
je 0x18002006f
lea r9, str.GetFileVerInfo_8
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, str.VarFileInfoTranslation
mov rcx, rbx
call sub.VERSION.dll_VerQueryValueA
mov ecx, dword [0x1801340b0]
mov edi, eax
test ecx, ecx
je 0x1800200b9
lea r9, str.GetFileVerInfo_9
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
mov ecx, dword [0x1801340b0]
test edi, edi
je 0x1800201d9
test ecx, ecx
je 0x1800200e4
lea r9, str.GetFileVerInfo_10
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
xor edx, edx
lea rcx, [rsp + 0x41]
mov byte [rsp + 0x40], 0
lea r8d, [rdx + 0x63]
call fcn.180043ef0
mov rdx, qword [rsp + 0x28]
lea rcx, [rsp + 0x40]
movzx r9d, word [rdx + 2]
movzx r8d, word [rdx]
lea rdx, str.StringFileInfo_04X_04XInternalName
call fcn.180043b88
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call sub.VERSION.dll_VerQueryValueA
cmp dword [0x1801340b0], 0
mov edi, eax
je 0x180020159
lea r9, str.GetFileVerInfo_11
lea r8, str.WatchDog
lea rcx, [0x180133ff8]
mov edx, 0xf
call fcn.18001ab50
test edi, edi
je 0x1800201d9
mov r8, qword [rsp + 0x28]
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r8
repne scasb al, byte [rdi]
mov eax, dword [r14]
not rcx
dec rcx
cmp rax, rcx
jbe 0x1800201d9
mov rdx, r8
sub rsi, r8
movzx eax, byte [rdx]
inc rdx
mov byte [rsi + rdx - 1], al
test al, al
jne 0x180020181
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
dec rcx
mov dword [r14], ecx
mov rcx, rbx
call fcn.180045904
mov eax, 1
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.180043ec0
add rsp, 0xc8
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, rbx
call fcn.180045904
xor eax, eax
jmp 0x1800201b0