Function at 0x6ff290
Capabilities:
Get file version info

Disassembly:
push rbp
sub rsp, 0xc0
mov rbp, rsp
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x90], 0
mov qword [rbp + 0x78], rbp
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xd8], rdx
mov qword [rbp + 0xe0], r8
mov rax, qword [rbp + 0xd8]
mov qword [rax], 0
mov rax, qword [rbp + 0xe0]
mov qword [rax], 0
nop
mov byte [rbp + 0xb7], 0
mov rcx, qword [rbp + 0xd8]
call fcn.00410520
mov rcx, qword [rbp + 0xe0]
call fcn.00410520
mov rcx, qword [rbp + 0xd0]
call fcn.00411de0
mov rcx, rax
lea rdx, [rbp + 0xa0]
call sub.version.dll_GetFileVersionInfoSizeW
mov dword [rbp + 0xa4], eax
cmp dword [rbp + 0xa4], 0
je 0x6ff56c
mov ecx, dword [rbp + 0xa4]
call fcn.004092c0
mov qword [rbp + 0xb8], rax
nop
mov rcx, qword [rbp + 0xd0]
call fcn.00411de0
mov rcx, rax
xor edx, edx
mov r8d, dword [rbp + 0xa4]
mov r9, qword [rbp + 0xb8]
call sub.version.dll_GetFileVersionInfoW
test eax, eax
setne al
mov byte [rbp + 0x9b], al
cmp byte [rbp + 0x9b], 0
je 0x6ff55e
lea rcx, [rbp + 0x90]
lea rdx, [0x006ff5fc]
call fcn.00410c20
mov rcx, qword [rbp + 0xb8]
lea rdx, [0x006ff60e]
lea r8, [rbp + 0x88]
lea r9, [rbp + 0x9c]
call sub.version.dll_VerQueryValueW
test eax, eax
je 0x6ff444
mov rax, qword [rbp + 0x88]
cmp word [rax], 0
jne 0x6ff3e9
mov rax, qword [rbp + 0x88]
mov word [rax], 0x409
mov rax, qword [rbp + 0x88]
cmp word [rax + 2], 0
jne 0x6ff404
mov rax, qword [rbp + 0x88]
mov word [rax + 2], 0x4e4
mov rax, qword [rbp + 0x88]
movzx eax, word [rax]
mov dword [rbp + 0x58], eax
mov byte [rbp + 0x60], 0
mov rax, qword [rbp + 0x88]
movzx eax, word [rax + 2]
mov dword [rbp + 0x68], eax
mov byte [rbp + 0x70], 0
lea rcx, [rbp + 0x90]
lea rdx, [0x006ff64c]
lea r8, [rbp + 0x58]
mov r9d, 1
call fcn.00438340
lea rcx, [rbp + 0x50]
mov edx, 3
lea r8, [0x006ff66c]
mov r9, qword [rbp + 0x90]
lea rax, [0x006ff69c]
mov qword [rsp + 0x20], rax
call fcn.00412330
mov rcx, qword [rbp + 0x50]
call fcn.00411de0
mov rcx, qword [rbp + 0xb8]
mov rdx, rax
lea r8, [rbp + 0xa8]
lea r9, [rbp + 0xa0]
call sub.version.dll_VerQueryValueW
test eax, eax
setne al
mov byte [rbp + 0x9b], al
cmp byte [rbp + 0x9b], 0
je 0x6ff4cd
lea rcx, [rbp + 0x48]
mov rdx, qword [rbp + 0xa8]
call fcn.00438070
mov rcx, qword [rbp + 0xd8]
mov rdx, qword [rbp + 0x48]
call fcn.00410b90
mov byte [rbp + 0xb7], 1
lea rcx, [rbp + 0x40]
mov edx, 3
lea r8, [0x006ff66c]
mov r9, qword [rbp + 0x90]
lea rax, [0x006ff6c4]
mov qword [rsp + 0x20], rax
call fcn.00412330
mov rcx, qword [rbp + 0x40]
call fcn.00411de0
mov rcx, qword [rbp + 0xb8]
mov rdx, rax
lea r8, [rbp + 0xa8]
lea r9, [rbp + 0xa0]
call sub.version.dll_VerQueryValueW
test eax, eax
setne al
mov byte [rbp + 0x9b], al
cmp byte [rbp + 0x9b], 0
je 0x6ff54f
lea rcx, [rbp + 0x38]
mov rdx, qword [rbp + 0xa8]
call fcn.00438070
mov rcx, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0x38]
call fcn.00410b90
nop
mov rcx, qword [rbp + 0xb8]
call fcn.004092f0
jmp 0x6ff56b
xor ecx, ecx
mov rdx, qword [rbp + 0x78]
call fcn.006ff5a0
jmp 0x6ff56c
nop
lea rcx, [rbp + 0x38]
mov edx, 4
call fcn.00410600
lea rcx, [rbp + 0x90]
call fcn.00410520
movzx rax, byte [rbp + 0xb7]
lea rsp, [rbp + 0xc0]
pop rbp
ret