Function at 0x1800255b0
Capabilities:
Get file version info

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x260
mov qword [rax - 0x1d8], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x180208090]
xor rax, rsp
mov qword [rsp + 0x258], rax
mov rdi, rdx
mov r15, rcx
xor esi, esi
call fcn.180025fa0
mov rcx, rdi
call fcn.180098ee0
test al, al
je 0x180025ec2
mov dword [rsp + 0x50], esi
mov rcx, rdi
call fcn.180003a80
mov rcx, rax
lea rdx, [rsp + 0x50]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov ebx, eax
mov dword [rsp + 0x60], ebx
test eax, eax
je 0x180025ec2
mov rcx, rbx
lea rdx, [0x18020b5ac]
call fcn.1800d8be4
mov r12, rax
test rax, rax
je 0x180025ec2
mov rcx, rdi
call fcn.180003a80
mov rcx, rax
mov r9, r12
mov r8d, ebx
mov edx, dword [rsp + 0x50]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov rcx, r12
test eax, eax
jne 0x180025674
call fcn.1800d80b0
jmp 0x180025ec2
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [0x18019b328]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800256c9
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1800256c9
cmp dword [rsp + 0x20], 0x34
jne 0x1800256c9
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [r15 + 0x20], xmm0
mov eax, dword [rax + 0x30]
mov dword [r15 + 0x30], eax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x58]
lea rdx, str.VarFileInfoTranslation
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025e84
cmp qword [rsp + 0x58], 0
je 0x180025e84
mov edi, esi
mov rbx, qword [rsp + 0x38]
test dword [rsp + 0x20], 0xfffffffc
jbe 0x1800257e5
mov r13d, 0x409
nop word [rax + rax]
mov eax, edi
lea rsi, [rax*4]
mov r14, qword [rsp + 0x58]
add r14, rsi
mov rdx, rbx
cmp qword [rsp + 0x40], rbx
je 0x18002576b
mov ecx, 4
call fcn.1800037e0
mov ecx, dword [r14]
mov dword [rax], ecx
mov rbx, qword [rsp + 0x38]
add rbx, 4
mov qword [rsp + 0x38], rbx
jmp 0x18002577d
mov r8, r14
lea rcx, [rsp + 0x30]
call fcn.1800260c0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x58]
cmp word [rsi + rax], 0
jne 0x1800257d4
mov eax, dword [rsi + rax]
mov dword [rsp + 0x48], eax
mov word [rsp + 0x48], r13w
mov rdx, rbx
cmp qword [rsp + 0x40], rbx
je 0x1800257c0
mov ecx, 4
call fcn.1800037e0
mov ecx, dword [rsp + 0x48]
mov dword [rax], ecx
mov rbx, qword [rsp + 0x38]
add rbx, 4
mov qword [rsp + 0x38], rbx
jmp 0x1800257d4
lea r8, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.1800260c0
mov rbx, qword [rsp + 0x38]
inc edi
mov eax, dword [rsp + 0x20]
shr eax, 2
cmp edi, eax
jb 0x180025730
mov rdi, qword [rsp + 0x30]
cmp rdi, rbx
je 0x180025e40
lea rax, [r15 + 0x38]
mov qword [rsp + 0x48], rax
lea rsi, [r15 + 0x58]
lea r14, [r15 + 0x78]
lea r13, [r15 + 0x98]
lea rax, [r15 + 0xb8]
mov qword [rsp + 0xa8], rax
lea rax, [r15 + 0xd8]
mov qword [rsp + 0x68], rax
lea rax, [r15 + 0xf8]
mov qword [rsp + 0x70], rax
lea rax, [r15 + 0x118]
mov qword [rsp + 0x78], rax
lea rax, [r15 + 0x138]
mov qword [rsp + 0x80], rax
lea rax, [r15 + 0x158]
mov qword [rsp + 0x88], rax
lea rax, [r15 + 0x178]
mov qword [rsp + 0x90], rax
lea rax, [r15 + 0x198]
mov qword [rsp + 0x98], rax
mov r15, qword [rsp + 0xa8]
lea rcx, [rsp + 0xb8]
call fcn.180003c60
nop
movzx r9d, word [rdi + 2]
movzx r8d, word [rdi]
lea rdx, str.StringFileInfo_04x_04x_
lea rcx, [rsp + 0xb8]
call fcn.18008ded0
lea r8, [0x18019c780]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x238]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x48]
call fcn.180005c00
test al, al
je 0x180025913
lea rcx, [rsp + 0x238]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025913
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025913
mov rcx, qword [rsp + 0x48]
call fcn.180004070
lea r8, [0x18019c860]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x218]
call fcn.180026250
nop
mov rcx, rsi
call fcn.180005c00
test al, al
je 0x180025975
lea rcx, [rsp + 0x218]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025975
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025975
mov rcx, rsi
call fcn.180004070
lea r8, [0x18019c848]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x1f8]
call fcn.180026250
nop
mov rcx, r14
call fcn.180005c00
test al, al
je 0x1800259d7
lea rcx, [rsp + 0x1f8]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800259d7
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800259d7
mov rcx, r14
call fcn.180004070
lea r8, [0x18019c828]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x1d8]
call fcn.180026250
nop
mov rcx, r13
call fcn.180005c00
test al, al
je 0x180025a39
lea rcx, [rsp + 0x1d8]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025a39
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025a39
mov rcx, r13
call fcn.180004070
lea r8, [0x18019c808]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x1b8]
call fcn.180026250
nop
mov rcx, r15
call fcn.180005c00
test al, al
je 0x180025a9b
lea rcx, [rsp + 0x1b8]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025a9b
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025a9b
mov rcx, r15
call fcn.180004070
lea r8, str.OriginalFileName
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x198]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x68]
call fcn.180005c00
test al, al
je 0x180025b01
lea rcx, [rsp + 0x198]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025b01
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025b01
mov rcx, qword [rsp + 0x68]
call fcn.180004070
lea r8, [0x18019c8b8]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x178]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x70]
call fcn.180005c00
test al, al
je 0x180025b67
lea rcx, [rsp + 0x178]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025b67
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025b67
mov rcx, qword [rsp + 0x70]
call fcn.180004070
lea r8, [0x18019c898]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x158]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x78]
call fcn.180005c00
test al, al
je 0x180025bcd
lea rcx, [rsp + 0x158]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025bcd
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025bcd
mov rcx, qword [rsp + 0x78]
call fcn.180004070
lea r8, [0x18019c880]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x138]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x80]
call fcn.180005c00
test al, al
je 0x180025c39
lea rcx, [rsp + 0x138]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025c39
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025c39
mov rcx, qword [rsp + 0x80]
call fcn.180004070
lea r8, str.LegalTrademarks
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x118]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x88]
call fcn.180005c00
test al, al
je 0x180025ca5
lea rcx, [rsp + 0x118]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025ca5
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025ca5
mov rcx, qword [rsp + 0x88]
call fcn.180004070
lea r8, str.PrivateBuild
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0xf8]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x90]
call fcn.180005c00
test al, al
je 0x180025d11
lea rcx, [rsp + 0xf8]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025d11
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025d11
mov rcx, qword [rsp + 0x90]
call fcn.180004070
lea r8, str.SpecialBuild
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0xd8]
call fcn.180026250
nop
mov rcx, qword [rsp + 0x98]
call fcn.180005c00
test al, al
je 0x180025d7e
lea rcx, [rsp + 0xd8]
call fcn.180003a80
mov rdx, rax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r12
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180025d7e
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180025d7e
mov rcx, qword [rsp + 0x98]
call fcn.180004070
nop
lea rcx, [rsp + 0xd8]
call fcn.180003b80
nop
lea rcx, [rsp + 0xf8]
call fcn.180003b80
nop
lea rcx, [rsp + 0x118]
call fcn.180003b80
nop
lea rcx, [rsp + 0x138]
call fcn.180003b80
nop
lea rcx, [rsp + 0x158]
call fcn.180003b80
nop
lea rcx, [rsp + 0x178]
call fcn.180003b80
nop
lea rcx, [rsp + 0x198]
call fcn.180003b80
nop
lea rcx, [rsp + 0x1b8]
call fcn.180003b80
nop
lea rcx, [rsp + 0x1d8]
call fcn.180003b80
nop
lea rcx, [rsp + 0x1f8]
call fcn.180003b80
nop
lea rcx, [rsp + 0x218]
call fcn.180003b80
nop
lea rcx, [rsp + 0x238]
call fcn.180003b80
nop
lea rcx, [rsp + 0xb8]
call fcn.180003b80
add rdi, 4
cmp rdi, rbx
jne 0x180025882
mov rcx, r12
call fcn.1800d80b0
nop
lea rcx, [rsp + 0x30]
call fcn.180003800
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180025e80
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
call fcn.180005040
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov al, 1
jmp 0x180025ec4
mov rcx, r12
call fcn.1800d80b0
nop
lea rcx, [rsp + 0x30]
call fcn.180003800
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180025ec2
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
call fcn.180005040
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
jmp 0x180025ec2
xor al, al
mov rcx, qword [rsp + 0x258]
xor rcx, rsp
call fcn.1800d8050
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret