Function at 0x14002a240
Capabilities:
Get file version info

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3d0
mov qword [rsp + 0x170], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov rax, qword [0x140099938]
xor rax, rsp
mov qword [rsp + 0x3c0], rax
mov r12, r8
mov qword [rsp + 0x118], r8
mov r14, rdx
mov qword [r11 - 0x290], rdx
mov qword [r11 - 0x268], r8
mov ecx, 8
call fcn.14005b298
xor r13d, r13d
cmp rax, r13
je 0x14002a2b2
lea rcx, [rsp + 0xe0]
mov qword [rax], rcx
jmp 0x14002a2b5
mov rax, r13
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xf8], r13
mov qword [rsp + 0x100], r13
mov qword [rsp + 0x108], r13
lea rbx, [0x1400998c0]
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x120], rax
mov edi, r13d
mov rsi, r13
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x78], r13d
mov dword [rsp + 0x30], r13d
or eax, 0xffffffff
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x54], eax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x80], rax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x128], rax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x88], rax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x98], rax
mov rcx, rbx
mov rax, qword [0x1400998c0]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
mov rax, qword [r14]
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
mov edx, 0xa
sub eax, edx
or eax, ecx
jge 0x14002a3ec
mov rcx, r14
call fcn.140009ea8
mov r15, qword [r14]
lea rdx, [rsp + 0x78]
mov rcx, r15
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov ebp, eax
cmp eax, r13d
je 0x14002abd7
mov rcx, rbp
mov r8d, 0x15f3
lea rdx, str..DevConFunc.cpp
call fcn.140048afc
mov rsi, rax
cmp rax, r13
je 0x14002abd7
mov r9, rax
mov r8d, ebp
xor edx, edx
mov rcx, r15
call sub.VERSION.dll_GetFileVersionInfoW
cmp eax, r13d
je 0x14002a6a7
mov qword [rsp + 0x90], r13
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x90]
lea rdx, [0x1400778f0]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
cmp eax, r13d
je 0x14002a4d5
mov rdx, qword [rsp + 0x90]
movzx eax, word [rdx + 0xc]
movzx ecx, word [rdx + 0xe]
movzx r9d, word [rdx + 8]
movzx r8d, word [rdx + 0xa]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rdx, str._d._d._d._d
lea rcx, [rsp + 0x80]
call fcn.14000b0cc
mov r11, qword [rsp + 0x90]
movzx eax, word [r11 + 0x14]
movzx ecx, word [r11 + 0x16]
movzx r9d, word [r11 + 0x10]
movzx r8d, word [r11 + 0x12]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rdx, str._d._d._d._d
lea rcx, [rsp + 0x70]
call fcn.14000b0cc
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, str.VarFileInfoTranslation
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
cmp eax, r13d
je 0x14002a6a7
mov qword [rsp + 0x38], r13
mov rax, qword [rsp + 0x40]
movzx r9d, word [rax + 2]
movzx r8d, word [rax]
lea rdx, str.StringFileInfo_04x_04xLegalCopyright
lea rcx, [rsp + 0x1c0]
call fcn.140020684
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x1c0]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
cmp eax, r13d
je 0x14002a569
mov rbx, qword [rsp + 0x38]
cmp rbx, r13
jne 0x14002a54c
mov eax, r13d
jmp 0x14002a554
mov rcx, rbx
call fcn.14005b1c0
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.14000a188
mov rbx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
movzx r9d, word [rax + 2]
movzx r8d, word [rax]
lea rdx, str.StringFileInfo_04x_04xProductName
lea rcx, [rsp + 0x1c0]
call fcn.140020684
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x1c0]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
cmp eax, r13d
je 0x14002a5d4
mov rdi, qword [rsp + 0x38]
cmp rdi, r13
jne 0x14002a5b9
mov eax, r13d
jmp 0x14002a5c1
mov rcx, rdi
call fcn.14005b1c0
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x98]
call fcn.14000a188
mov rax, qword [rsp + 0x40]
movzx r9d, word [rax + 2]
movzx r8d, word [rax]
lea rdx, str.StringFileInfo_04x_04xCompanyName
lea rcx, [rsp + 0x1c0]
call fcn.140020684
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x1c0]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
cmp eax, r13d
je 0x14002a63f
mov rdi, qword [rsp + 0x38]
cmp rdi, r13
jne 0x14002a624
mov eax, r13d
jmp 0x14002a62c
mov rcx, rdi
call fcn.14005b1c0
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x88]
call fcn.14000a188
mov rax, qword [rsp + 0x40]
movzx r9d, word [rax + 2]
movzx r8d, word [rax]
lea rdx, str.StringFileInfo_04x_04xProductVersion
lea rcx, [rsp + 0x1c0]
call fcn.140020684
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x1c0]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
cmp eax, r13d
je 0x14002a6a7
mov rdi, qword [rsp + 0x38]
cmp rdi, r13
jne 0x14002a68f
mov eax, r13d
jmp 0x14002a697
mov rcx, rdi
call fcn.14005b1c0
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.14000a188
mov rcx, qword [r12]
sub rcx, 0x18
call fcn.140009ef0
add rax, 0x18
mov qword [rsp + 0x110], rax
mov r8d, 0x3b
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x110]
call fcn.14002802c
mov r11, qword [rsp + 0xf8]
mov rbp, r11
mov rdi, qword [rsp + 0x100]
cmp r11, rdi
jbe 0x14002a708
call fcn.14005c2f8
mov rdi, qword [rsp + 0x100]
mov r11, qword [rsp + 0xf8]
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rbp
movaps xmm0, xmmword [rsp + 0xd0]
movdqa xmmword [rsp + 0xd0], xmm0
mov r13, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
xor ebp, ebp
cmp r11, rdi
jbe 0x14002a74d
call fcn.14005c2f8
cmp r13, rbp
je 0x14002a75c
cmp r13, qword [rsp + 0xe0]
je 0x14002a761
call fcn.14005c2f8
cmp r12, rdi
je 0x14002abb4
mov edi, 8
mov rcx, rdi
call fcn.14005b298
cmp rax, rbp
je 0x14002a789
lea rcx, [rsp + 0xa0]
mov qword [rax], rcx
jmp 0x14002a78c
mov rax, rbp
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb8], rbp
mov qword [rsp + 0xc0], rbp
mov qword [rsp + 0xc8], rbp
cmp r13, rbp
jne 0x14002a7bb
call fcn.14005c2f8
mov r11, rbp
jmp 0x14002a7bf
mov r11, qword [r13]
cmp r12, qword [r11 + 0x20]
jb 0x14002a7ca
call fcn.14005c2f8
cmp qword [r12 + 0x20], rdi
jb 0x14002a7d8
mov rdx, qword [r12 + 8]
jmp 0x14002a7dd
lea rdx, [r12 + 8]
lea rcx, [rsp + 0xd0]
call fcn.14000b470
mov r8d, 0x3d
lea rdx, [rsp + 0xa0]
mov rcx, rax
call fcn.14002802c
mov r11, qword [rsp + 0xc0]
sub r11, qword [rsp + 0xb8]
movabs rax, 0x6666666666666667
imul r11
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 2
je 0x14002a850
lea rcx, [rsp + 0xa0]
call fcn.140005204
mov rcx, qword [rsp + 0xa0]
call fcn.14005ab0c
jmp 0x14002ab72
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
cmp qword [rax + 0x20], rdi
jb 0x14002a86b
mov rdx, qword [rax + 8]
jmp 0x14002a86f
lea rdx, [rax + 8]
mov r8, rax
lea rcx, [rsp + 0x190]
call fcn.140002f6c
movaps xmm5, xmmword [rsp + 0x190]
movdqa xmmword [rsp + 0x180], xmm5
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov r8, rax
cmp qword [rax + 0x20], rdi
jb 0x14002a8ae
mov rcx, qword [rax + 8]
jmp 0x14002a8b2
lea rcx, [rax + 8]
mov rax, qword [rax + 0x18]
lea rdx, [rcx + rax*2]
lea rcx, [rsp + 0x160]
call fcn.140002f6c
movaps xmm5, xmmword [rsp + 0x160]
movdqa xmmword [rsp + 0x140], xmm5
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
cmp qword [rax + 0x20], rdi
jb 0x14002a8f3
mov rdx, qword [rax + 8]
jmp 0x14002a8f7
lea rdx, [rax + 8]
mov r8, rax
lea rcx, [rsp + 0x130]
call fcn.140002f6c
movaps xmm5, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x150], xmm5
lea rax, [0x14005c48c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x180]
lea r8, [rsp + 0x140]
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x1a8]
call fcn.14000378c
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov rdi, rax
lea rcx, [0x14007cf60]
call fcn.14005b1c0
mov qword [rsp + 0x20], rax
lea r9, [0x14007cf60]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rcx, rdi
call fcn.140002d6c
cmp eax, ebp
jne 0x14002a997
lea rbp, [rsp + 0x80]
lea rdi, [rsp + 0x4c]
jmp 0x14002ab0c
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov rdi, rax
lea rcx, [0x14007cf58]
call fcn.14005b1c0
mov qword [rsp + 0x20], rax
lea r9, [0x14007cf58]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rcx, rdi
call fcn.140002d6c
cmp eax, ebp
jne 0x14002a9e2
lea rbp, [rsp + 0x70]
lea rdi, [rsp + 0x48]
jmp 0x14002ab0c
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov rdi, rax
lea rcx, [0x14007cf50]
call fcn.14005b1c0
mov qword [rsp + 0x20], rax
lea r9, [0x14007cf50]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rcx, rdi
call fcn.140002d6c
cmp eax, ebp
jne 0x14002aa2d
lea rbp, [rsp + 0x68]
lea rdi, [rsp + 0x50]
jmp 0x14002ab0c
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov rdi, rax
lea rcx, [0x14007cf48]
call fcn.14005b1c0
mov qword [rsp + 0x20], rax
lea r9, [0x14007cf48]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rcx, rdi
call fcn.140002d6c
cmp eax, ebp
jne 0x14002aa7b
lea rbp, [rsp + 0x88]
lea rdi, [rsp + 0x5c]
jmp 0x14002ab0c
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov rdi, rax
lea rcx, [0x14007cf40]
call fcn.14005b1c0
mov qword [rsp + 0x20], rax
lea r9, [0x14007cf40]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rcx, rdi
call fcn.140002d6c
cmp eax, ebp
jne 0x14002aac6
lea rbp, [rsp + 0x98]
lea rdi, [rsp + 0x58]
jmp 0x14002ab0c
xor edx, edx
lea rcx, [rsp + 0xa0]
call fcn.140025690
mov rdi, rax
lea rcx, [0x14007cf38]
call fcn.14005b1c0
mov qword [rsp + 0x20], rax
lea r9, [0x14007cf38]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rcx, rdi
call fcn.140002d6c
cmp eax, ebp
jne 0x14002ab58
lea rbp, [rsp + 0x60]
lea rdi, [rsp + 0x54]
mov edx, 1
lea rcx, [rsp + 0xa0]
call fcn.140025690
cmp qword [rax + 0x20], 8
jb 0x14002ab2b
mov rdx, qword [rax + 8]
jmp 0x14002ab2f
lea rdx, [rax + 8]
xor eax, eax
test rdx, rdx
setne al
test eax, eax
je 0x14002aba9
mov rcx, qword [rbp]
call fcn.14005c868
xor ebp, ebp
cmp eax, ebp
jne 0x14002ab52
mov dword [rdi], 1
jmp 0x14002ab58
cmp dword [rdi], ebp
jge 0x14002ab58
mov dword [rdi], ebp
lea rcx, [rsp + 0xa0]
call fcn.140005204
mov rcx, qword [rsp + 0xa0]
call fcn.14005ab0c
cmp r13, rbp
jne 0x14002ab81
call fcn.14005c2f8
mov r11, rbp
jmp 0x14002ab85
mov r11, qword [r13]
cmp r12, qword [r11 + 0x20]
jb 0x14002ab90
call fcn.14005c2f8
add r12, 0x28
mov rdi, qword [rsp + 0x100]
mov r11, qword [rsp + 0xf8]
jmp 0x14002a743
mov ecx, 0x80004005
call fcn.140009a54
nop
mov edi, dword [rsp + 0x54]
and edi, dword [rsp + 0x58]
and edi, dword [rsp + 0x5c]
and edi, dword [rsp + 0x50]
and edi, dword [rsp + 0x48]
and edi, dword [rsp + 0x4c]
mov r12, qword [rsp + 0x118]
xor r13d, r13d
cmp r15, r13
je 0x14002ac1a
mov rcx, qword [r14]
cmp rcx, r13
jne 0x14002abe9
mov eax, r13d
jmp 0x14002abf7
movsxd rdx, dword [rcx - 0xc]
call fcn.14005ca00
cmp eax, r13d
jl 0x14002ac0f
mov rcx, qword [r14]
cmp eax, dword [rcx - 0xc]
jg 0x14002ac0f
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [r14]
mov word [rax + rcx*2], r13w
jmp 0x14002ac1a
mov ecx, 0x80070057
call fcn.140009a54
int3
cmp rsi, r13
je 0x14002ac28
mov rcx, rsi
call fcn.140048b24
nop
lea rdx, [rbx - 0x18]
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002ac47
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002ac6b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002ac8f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002acb0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x128]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002acd4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002acf5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002ad19
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002ad3d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rsp + 0xe0]
call fcn.140005204
mov rcx, qword [rsp + 0xe0]
call fcn.14005ab0c
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
cmp eax, r13d
jg 0x14002ad77
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r12]
sub rdx, 0x18
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
add ecx, ebx
cmp ecx, r13d
jg 0x14002ad97
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, edi
mov rcx, qword [rsp + 0x3c0]
xor rcx, rsp
call fcn.14005bad0
mov rbx, qword [rsp + 0x410]
add rsp, 0x3d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret