Function at 0x18001fd40
Capabilities:
Get file version info
Identify system language via api

Disassembly:
mov rax, rsp
push rdi
push r14
push r15
sub rsp, 0x1f0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1802247b8]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
mov rbx, rdx
mov rsi, rcx
call fcn.180020e60
mov rcx, rbx
call fcn.18003d950
test al, al
je 0x180020849
xor r15d, r15d
mov dword [rsp + 0x30], r15d
cmp qword [rbx + 0x18], 8
jb 0x18001fda1
mov rcx, qword [rbx]
jmp 0x18001fda4
mov rcx, rbx
lea rdx, [rsp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov edi, eax
mov dword [rsp + 0x34], edi
test eax, eax
je 0x180020849
mov rcx, rdi
lea rdx, [0x18034bc86]
call fcn.18013a0a0
mov r14, rax
test rax, rax
je 0x180020849
cmp qword [rbx + 0x18], 8
jb 0x18001fde2
mov rbx, qword [rbx]
mov r9, rax
mov r8d, edi
mov edx, dword [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov rcx, r14
test eax, eax
jne 0x18001fe06
call fcn.18013a400
jmp 0x180020849
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r15d
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [0x1801aa260]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x18001fe58
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x18001fe58
cmp dword [rsp + 0x20], 0x34
jne 0x18001fe58
movups xmm0, xmmword [rax]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsi + 0x20], xmm0
mov eax, dword [rax + 0x30]
mov dword [rsi + 0x30], eax
mov ebx, r15d
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, str.VarFileInfoTranslation
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x18001ff81
cmp qword [rsp + 0x28], rbx
je 0x18001ff81
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov rdx, qword [rsp + 0x28]
mov r8d, dword [rsp + 0x20]
add r8, rdx
cmp rdx, r8
jae 0x18001feb7
cmp word [rdx], ax
je 0x18001feb0
add rdx, 4
cmp rdx, r8
jb 0x18001fea0
jmp 0x18001feb7
mov ebx, dword [rdx]
jmp 0x18001ff81
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx r10d, ax
mov r9, qword [rsp + 0x28]
mov r8, r9
mov edx, dword [rsp + 0x20]
add rdx, r9
cmp r9, rdx
jae 0x18001feee
cmp word [r8], r10w
je 0x18001fee6
add r8, 4
cmp r8, rdx
jb 0x18001fed5
jmp 0x18001feee
mov ebx, dword [r8]
jmp 0x18001ff81
mov rcx, r9
cmp r9, rdx
jae 0x18001ff1c
mov r8d, 0xff
and r10w, r8w
movzx eax, word [rcx]
and ax, r8w
cmp ax, r10w
je 0x18001ff18
add rcx, 4
cmp rcx, rdx
jb 0x18001ff00
jmp 0x18001ff1c
mov ebx, dword [rcx]
jmp 0x18001ff81
mov rax, r9
cmp r9, rdx
jae 0x18001ff38
cmp word [rax], bx
je 0x18001ff34
add rax, 4
cmp rax, rdx
jb 0x18001ff24
jmp 0x18001ff38
mov ebx, dword [rax]
jmp 0x18001ff81
mov rax, r9
cmp r9, rdx
jae 0x18001ff4d
cmp byte [rax], bl
je 0x18001ff34
add rax, 4
cmp rax, rdx
jb 0x18001ff40
mov rax, r9
cmp r9, rdx
jae 0x18001ff64
cmp word [rax], 9
je 0x18001ff34
add rax, 4
cmp rax, rdx
jb 0x18001ff55
mov rax, r9
cmp r9, rdx
jae 0x18001ff7e
nop dword [rax]
cmp byte [rax], 9
je 0x18001ff34
add rax, 4
cmp rax, rdx
jb 0x18001ff70
mov ebx, dword [r9]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x58], 7
mov qword [rsp + 0x50], r15
mov word [rsp + 0x40], r15w
mov r9d, ebx
shr r9d, 0x10
movzx r8d, bx
lea rdx, str.StringFileInfo_04X_04X_
lea rcx, [rsp + 0x40]
call fcn.180022b70
lea r8, [0x1801aa5b8]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x1c0]
call fcn.18000e720
nop
lea rdx, [rsp + 0x1c0]
cmp qword [rsp + 0x1d8], 8
cmovae rdx, qword [rsp + 0x1c0]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180020038
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180020038
or rbx, 0xffffffffffffffff
cmp word [rdx], 0
jne 0x18002001f
mov r8, r15
jmp 0x18002002d
mov r8, rbx
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020022
lea rcx, [rsi + 0x38]
call fcn.180005920
jmp 0x18002003c
or rbx, 0xffffffffffffffff
lea r8, [0x1801aa5d0]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x180]
call fcn.18000e720
nop
lea rdx, [rsp + 0x180]
cmp qword [rsp + 0x198], 8
cmovae rdx, qword [rsp + 0x180]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800200b4
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800200b4
cmp word [rdx], 0
jne 0x18002009c
mov r8, r15
jmp 0x1800200ab
mov r8, rbx
nop
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800200a0
lea rcx, [rsi + 0x58]
call fcn.180005920
lea r8, [0x1801aa5f0]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x140]
call fcn.18000e720
nop
lea rdx, [rsp + 0x140]
cmp qword [rsp + 0x158], 8
cmovae rdx, qword [rsp + 0x140]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180020134
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180020134
cmp word [rdx], 0
jne 0x180020114
mov r8, r15
jmp 0x18002012b
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020120
lea rcx, [rsi + 0x78]
call fcn.180005920
lea r8, [0x1801aa608]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x100]
call fcn.18000e720
nop
lea rdx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rdx, qword [rsp + 0x100]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800201b7
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800201b7
cmp word [rdx], 0
jne 0x180020194
mov r8, r15
jmp 0x1800201ab
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800201a0
lea rcx, [rsi + 0x98]
call fcn.180005920
lea r8, [0x1801aa628]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xc0]
call fcn.18000e720
nop
lea rdx, [rsp + 0xc0]
cmp qword [rsp + 0xd8], 8
cmovae rdx, qword [rsp + 0xc0]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180020237
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180020237
cmp word [rdx], 0
jne 0x180020217
mov r8, r15
jmp 0x18002022b
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020220
lea rcx, [rsi + 0xb8]
call fcn.180005920
lea r8, str.OriginalFileName
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x80]
call fcn.18000e720
nop
lea rdx, [rsp + 0x80]
cmp qword [rsp + 0x98], 8
cmovae rdx, qword [rsp + 0x80]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800202b7
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800202b7
cmp word [rdx], 0
jne 0x180020297
mov r8, r15
jmp 0x1800202ab
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800202a0
lea rcx, [rsi + 0xd8]
call fcn.180005920
lea r8, [0x1801aa670]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x120]
call fcn.18000e720
nop
lea rdx, [rsp + 0x120]
cmp qword [rsp + 0x138], 8
cmovae rdx, qword [rsp + 0x120]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180020337
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180020337
cmp word [rdx], 0
jne 0x180020317
mov r8, r15
jmp 0x18002032b
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020320
lea rcx, [rsi + 0xf8]
call fcn.180005920
lea r8, [0x1801aa688]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x160]
call fcn.18000e720
nop
lea rdx, [rsp + 0x160]
cmp qword [rsp + 0x178], 8
cmovae rdx, qword [rsp + 0x160]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800203b7
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800203b7
cmp word [rdx], 0
jne 0x180020397
mov r8, r15
jmp 0x1800203ab
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800203a0
lea rcx, [rsi + 0x118]
call fcn.180005920
lea r8, [0x1801aa6a8]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xe0]
call fcn.18000e720
nop
lea rdx, [rsp + 0xe0]
cmp qword [rsp + 0xf8], 8
cmovae rdx, qword [rsp + 0xe0]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180020437
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180020437
cmp word [rdx], 0
jne 0x180020417
mov r8, r15
jmp 0x18002042b
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020420
lea rcx, [rsi + 0x138]
call fcn.180005920
lea r8, str.LegalTrademarks
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.18000e720
nop
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800204a7
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800204a7
cmp word [rdx], 0
jne 0x18002048b
mov r8, r15
jmp 0x18002049b
mov r8, rbx
nop
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020490
lea rcx, [rsi + 0x158]
call fcn.180005920
lea r8, str.PrivateBuild
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xa0]
call fcn.18000e720
nop
lea rdx, [rsp + 0xa0]
cmp qword [rsp + 0xb8], 8
cmovae rdx, qword [rsp + 0xa0]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x180020527
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x180020527
cmp word [rdx], 0
jne 0x180020507
mov r8, r15
jmp 0x18002051b
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180020510
lea rcx, [rsi + 0x178]
call fcn.180005920
lea r8, str.SpecialBuild
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x1a0]
call fcn.18000e720
nop
lea rdx, [rsp + 0x1a0]
cmp qword [rsp + 0x1b8], 8
cmovae rdx, qword [rsp + 0x1a0]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1800205a9
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800205a9
cmp word [rdx], 0
jne 0x180020590
mov rbx, r15
jmp 0x18002059a
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180020590
lea rcx, [rsi + 0x198]
mov r8, rbx
call fcn.180005920
mov rcx, r14
call fcn.18013a400
nop
cmp qword [rsp + 0x1b8], 8
jb 0x1800205ca
mov rcx, qword [rsp + 0x1a0]
call fcn.180139b7c
mov qword [rsp + 0x1b8], 7
mov qword [rsp + 0x1b0], r15
mov word [rsp + 0x1a0], r15w
cmp qword [rsp + 0xb8], 8
jb 0x1800205ff
mov rcx, qword [rsp + 0xa0]
call fcn.180139b7c
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
cmp qword [rsp + 0x78], 8
jb 0x18002062e
mov rcx, qword [rsp + 0x60]
call fcn.180139b7c
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r15
mov word [rsp + 0x60], r15w
cmp qword [rsp + 0xf8], 8
jb 0x18002065a
mov rcx, qword [rsp + 0xe0]
call fcn.180139b7c
mov qword [rsp + 0xf8], 7
mov qword [rsp + 0xf0], r15
mov word [rsp + 0xe0], r15w
cmp qword [rsp + 0x178], 8
jb 0x18002068f
mov rcx, qword [rsp + 0x160]
call fcn.180139b7c
mov qword [rsp + 0x178], 7
mov qword [rsp + 0x170], r15
mov word [rsp + 0x160], r15w
cmp qword [rsp + 0x138], 8
jb 0x1800206c4
mov rcx, qword [rsp + 0x120]
call fcn.180139b7c
mov qword [rsp + 0x138], 7
mov qword [rsp + 0x130], r15
mov word [rsp + 0x120], r15w
cmp qword [rsp + 0x98], 8
jb 0x1800206f9
mov rcx, qword [rsp + 0x80]
call fcn.180139b7c
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], r15w
cmp qword [rsp + 0xd8], 8
jb 0x18002072e
mov rcx, qword [rsp + 0xc0]
call fcn.180139b7c
mov qword [rsp + 0xd8], 7
mov qword [rsp + 0xd0], r15
mov word [rsp + 0xc0], r15w
cmp qword [rsp + 0x118], 8
jb 0x180020763
mov rcx, qword [rsp + 0x100]
call fcn.180139b7c
mov qword [rsp + 0x118], 7
mov qword [rsp + 0x110], r15
mov word [rsp + 0x100], r15w
cmp qword [rsp + 0x158], 8
jb 0x180020798
mov rcx, qword [rsp + 0x140]
call fcn.180139b7c
mov qword [rsp + 0x158], 7
mov qword [rsp + 0x150], r15
mov word [rsp + 0x140], r15w
cmp qword [rsp + 0x198], 8
jb 0x1800207cd
mov rcx, qword [rsp + 0x180]
call fcn.180139b7c
mov qword [rsp + 0x198], 7
mov qword [rsp + 0x190], r15
mov word [rsp + 0x180], r15w
cmp qword [rsp + 0x1d8], 8
jb 0x180020802
mov rcx, qword [rsp + 0x1c0]
call fcn.180139b7c
mov qword [rsp + 0x1d8], 7
mov qword [rsp + 0x1d0], r15
mov word [rsp + 0x1c0], r15w
cmp qword [rsp + 0x58], 8
jb 0x180020831
mov rcx, qword [rsp + 0x40]
call fcn.180139b7c
mov qword [rsp + 0x58], 7
mov qword [rsp + 0x50], r15
mov word [rsp + 0x40], r15w
mov al, 1
jmp 0x18002084b
xor al, al
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.180139310
lea r11, [rsp + 0x1f0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret