Function at 0x1400520c0
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov rax, qword [0x14033e810]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rdi, rcx
lea rdx, [rbp - 1]
mov rcx, qword [rcx + 0x90]
call fcn.1402526c4
test eax, eax
jne 0x14005277a
mov rax, qword [rbp + 0x1f]
mov qword [rdi + 0x60], rax
cmp rax, 0
je 0x140052781
lea rdx, [rbp - 0x79]
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
test eax, eax
je 0x140052781
lea ecx, [rax + 1]
mov ebx, ecx
call fcn.1400164e0
mov qword [rdi + 0x20], rax
mov r8d, ebx
xor edx, edx
mov rcx, rax
call fcn.140241ba0
mov dword [rdi + 0x28], esi
mov r9, qword [rdi + 0x20]
mov r8d, esi
mov edx, dword [rbp - 0x79]
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140052781
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x1400527bb
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x21], rax
lea rax, [rdi + 0x18]
lea rcx, [rdi + 0x10]
lea r9, [rdi + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor r8d, r8d
lea rdx, [rbp - 0x21]
mov rcx, rdi
call fcn.140052e00
xor r14d, r14d
mov qword [rbp - 0x71], r14
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi + 0x2c], xmm0
movups xmmword [rdi + 0x3c], xmm0
movups xmmword [rdi + 0x4c], xmm0
mov dword [rdi + 0x5c], eax
mov rcx, qword [rdi + 0x20]
lea rsi, [rax - 1]
test rcx, rcx
je 0x140052759
lea r9, [rbp - 0x19]
lea r8, [rbp - 0x71]
lea rdx, [0x1402ed690]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140052759
mov rax, qword [rbp - 0x71]
test rax, rax
je 0x14005222a
movups xmm0, xmmword [rax]
movups xmmword [rdi + 0x2c], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdi + 0x3c], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdi + 0x4c], xmm0
mov eax, dword [rax + 0x30]
mov dword [rdi + 0x5c], eax
mov ecx, dword [rdi + 0x34]
mov eax, ecx
shr eax, 0x10
mov word [rdi + 0x6c], ax
mov word [rdi + 0x6e], cx
mov ecx, dword [rdi + 0x38]
mov eax, ecx
shr eax, 0x10
mov word [rdi + 0x70], ax
mov word [rdi + 0x72], cx
mov ecx, dword [rdi + 0x3c]
mov eax, ecx
shr eax, 0x10
mov word [rdi + 0x74], ax
mov word [rdi + 0x76], cx
mov ecx, dword [rdi + 0x40]
mov eax, ecx
shr eax, 0x10
mov word [rdi + 0x78], ax
mov word [rdi + 0x7a], cx
mov eax, dword [rdi + 0x48]
mov dword [rdi + 0x7c], eax
mov eax, dword [rdi + 0x4c]
mov dword [rdi + 0x80], eax
mov eax, dword [rdi + 0x50]
mov dword [rdi + 0x84], eax
mov eax, dword [rdi + 0x54]
mov dword [rdi + 0x88], eax
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x1400527c6
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x29], rax
lea rdx, [rbp - 0x29]
mov rcx, rdi
call fcn.140052800
mov qword [rbp - 0x61], r14
lea rbx, [0x1402e82f0]
mov rax, rsi
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400522c4
mov r8d, eax
mov rdx, rbx
lea rcx, [rdi + 0x98]
call fcn.14000df90
cmp qword [rdi + 0x20], 0
je 0x1400523dc
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x1400527d1
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x69], rax
lea r9, [0x1402f0fb0]
mov r8, qword [rdi + 0xb8]
lea rdx, str.StringFileInfo_s_s
lea rcx, [rbp - 0x69]
call fcn.14000e180
mov rbx, qword [rbp - 0x69]
lea r15, [rbx - 0x18]
movsxd rcx, dword [r15 + 8]
add rcx, 0x64
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400164e0
mov r12, rax
mov rdx, rax
sub rdx, rbx
nop word [rax + rax]
movzx ecx, word [rbx]
mov word [rdx + rbx], cx
lea rbx, [rbx + 2]
test cx, cx
jne 0x140052360
lea r9, [rbp - 0x15]
lea r8, [rbp - 0x61]
mov rdx, r12
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400523ae
mov rdx, qword [rbp - 0x61]
test rdx, rdx
je 0x1400523ae
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x140052395
mov r8d, eax
lea rcx, [rdi + 0x98]
call fcn.14000df90
test r12, r12
je 0x1400523bc
mov rcx, r12
call fcn.140095d64
nop
mov eax, esi
lock xadd dword [r15 + 0x10], eax
sub eax, 1
jg 0x1400523d5
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rbx, [0x1402e82f0]
mov qword [rbp - 0x51], r14
mov rax, rsi
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400523e3
mov r8d, eax
mov rdx, rbx
lea rcx, [rdi + 0xa0]
call fcn.14000df90
cmp qword [rdi + 0x20], 0
je 0x1400524fc
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x1400527dc
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x59], rax
lea r9, [0x1402f0f90]
mov r8, qword [rdi + 0xb8]
lea rdx, str.StringFileInfo_s_s
lea rcx, [rbp - 0x59]
call fcn.14000e180
mov rbx, qword [rbp - 0x59]
lea r15, [rbx - 0x18]
movsxd rcx, dword [r15 + 8]
add rcx, 0x64
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400164e0
mov r12, rax
mov rdx, rax
sub rdx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, word [rbx]
mov word [rdx + rbx], cx
lea rbx, [rbx + 2]
test cx, cx
jne 0x140052480
lea r9, [rbp - 0x11]
lea r8, [rbp - 0x51]
mov rdx, r12
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400524ce
mov rdx, qword [rbp - 0x51]
test rdx, rdx
je 0x1400524ce
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400524b5
mov r8d, eax
lea rcx, [rdi + 0xa0]
call fcn.14000df90
test r12, r12
je 0x1400524dc
mov rcx, r12
call fcn.140095d64
nop
mov eax, esi
lock xadd dword [r15 + 0x10], eax
sub eax, 1
jg 0x1400524f5
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rbx, [0x1402e82f0]
mov qword [rbp - 0x41], r14
mov rax, rsi
inc rax
cmp word [rbx + rax*2], 0
jne 0x140052503
mov r8d, eax
mov rdx, rbx
lea rcx, [rdi + 0xa8]
call fcn.14000df90
cmp qword [rdi + 0x20], 0
je 0x14005261c
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x1400527e7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x49], rax
lea r9, [0x1402f0f70]
mov r8, qword [rdi + 0xb8]
lea rdx, str.StringFileInfo_s_s
lea rcx, [rbp - 0x49]
call fcn.14000e180
mov rbx, qword [rbp - 0x49]
lea r15, [rbx - 0x18]
movsxd rcx, dword [r15 + 8]
add rcx, 0x64
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400164e0
mov r12, rax
mov rdx, rax
sub rdx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, word [rbx]
mov word [rbx + rdx], cx
lea rbx, [rbx + 2]
test cx, cx
jne 0x1400525a0
lea r9, [rbp - 0xd]
lea r8, [rbp - 0x41]
mov rdx, r12
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400525ee
mov rdx, qword [rbp - 0x41]
test rdx, rdx
je 0x1400525ee
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400525d5
mov r8d, eax
lea rcx, [rdi + 0xa8]
call fcn.14000df90
test r12, r12
je 0x1400525fc
mov rcx, r12
call fcn.140095d64
nop
mov eax, esi
lock xadd dword [r15 + 0x10], eax
sub eax, 1
jg 0x140052615
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rbx, [0x1402e82f0]
mov qword [rbp - 0x31], r14
mov rax, rsi
inc rax
cmp word [rbx + rax*2], 0
jne 0x140052623
mov r8d, eax
mov rdx, rbx
lea rcx, [rdi + 0xb0]
call fcn.14000df90
cmp qword [rdi + 0x20], 0
je 0x140052735
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x1400527b0
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x39], rax
lea r9, [0x1402f1030]
mov r8, qword [rdi + 0xb8]
lea rdx, str.StringFileInfo_s_s
lea rcx, [rbp - 0x39]
call fcn.14000e180
mov rbx, qword [rbp - 0x39]
lea r14, [rbx - 0x18]
movsxd rcx, dword [r14 + 8]
add rcx, 0x64
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400164e0
mov r15, rax
mov rdx, rax
sub rdx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, word [rbx]
mov word [rbx + rdx], cx
lea rbx, [rbx + 2]
test cx, cx
jne 0x1400526c0
lea r9, [rbp - 9]
lea r8, [rbp - 0x31]
mov rdx, r15
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14005270e
mov rdx, qword [rbp - 0x31]
test rdx, rdx
je 0x14005270e
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400526f5
mov r8d, eax
lea rcx, [rdi + 0xb0]
call fcn.14000df90
test r15, r15
je 0x14005271c
mov rcx, r15
call fcn.140095d64
nop
mov eax, esi
lock xadd dword [r14 + 0x10], eax
sub eax, 1
jg 0x140052735
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r14d, 1
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, r14d
jg 0x140052759
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140052775
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, r14d
jmp 0x140052783
xor r14d, r14d
mov qword [rdi + 0x60], r14
xor eax, eax
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1402155d0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400080b0
nop
mov ecx, 0x80004005
call fcn.1400080b0
nop
mov ecx, 0x80004005
call fcn.1400080b0
nop
mov ecx, 0x80004005
call fcn.1400080b0
nop
mov ecx, 0x80004005
call fcn.1400080b0
nop
mov ecx, 0x80004005
call fcn.1400080b0
int3