Function at 0x140037150
Capabilities:
Get file version info

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rbx, r9
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], rcx
call fcn.140011978
mov rcx, rax
test rax, rax
je 0x140037435
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea r8, vtable.ATL::CAtlStringMgr.0
cmp rax, r8
jne 0x140037440
lock inc dword [rcx + 0x20]
lea rax, [rcx + 0x10]
add rax, 0x18
mov qword [rsp + 0x20], rax
mov r15, 0xffffffffffffffff
xor r12d, r12d
test rbx, rbx
je 0x1400371ec
cmp rbx, 0x10000
jae 0x1400371dc
movzx edx, bx
lea rcx, [rsp + 0x20]
call fcn.140012160
jmp 0x140037200
mov rax, r15
nop
inc rax
cmp word [rbx + rax*2], r12w
jne 0x1400371e0
jmp 0x1400371ef
mov eax, r12d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.1400029fc
nop
mov rbx, qword [rsp + 0x20]
mov rsi, rbx
mov rdi, r12
mov r13d, 1
cmp word [rbx], di
je 0x14003729c
movzx eax, word [rbx]
nop dword [rax]
mov r14, rdi
mov rbp, rdi
movzx edx, ax
lea rcx, [0x1402f13f0]
call fcn.14022e038
test rax, rax
je 0x140037246
mov rdi, rsi
test rbp, rbp
cmovne rdi, rbp
jmp 0x140037249
mov rdi, r12
add rsi, 2
movzx eax, word [rsi]
test ax, ax
jne 0x140037220
test rdi, rdi
je 0x14003729c
sub rdi, rbx
sar rdi, 1
test edi, edi
js 0x140037447
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140037288
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.14000299c
mov rbx, qword [rsp + 0x20]
cmp edi, dword [rbx - 0xc]
jg 0x14003745d
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], r12w
lea r14, [0x1402f13f8]
mov rsi, r14
sub rsi, rbx
sar rsi, 1
mov r12d, dword [rbx - 0x10]
mov edx, SafeArrayGetDim
mov rcx, r14
call fcn.140233ce0
mov rbp, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r12d
jl 0x140037452
lea edi, [r12 + rax]
test edi, edi
js 0x140037468
sub r13d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r13d
jge 0x1400372fb
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.14000299c
mov rbx, qword [rsp + 0x20]
cmp rsi, r12
ja 0x140037304
lea r14, [rbx + rsi*2]
movsxd rdx, ebp
lea rcx, [rbx + r12*2]
mov r9d, ebp
mov r8, r14
call fcn.140002b98
cmp edi, dword [rbx - 0xc]
jg 0x14003742a
mov dword [rbx - 0x10], edi
movsxd rax, edi
xor ebp, ebp
mov word [rbx + rax*2], bp
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov edi, eax
mov ecx, eax
call fcn.14008a740
mov rsi, rax
mov r9, rax
mov r8d, edi
mov edx, dword [rsp + 0x2c]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov rcx, rsi
test eax, eax
je 0x1400373bc
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ebp
lea r9, [rsp + 0x28]
lea r8, [rsp + 0x30]
lea rdx, [0x1402f1f04]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400373af
cmp dword [rsp + 0x28], ebp
je 0x1400373af
mov rcx, qword [rsp + 0x30]
movzx eax, word [rcx + 0x12]
mov rdx, qword [rsp + 0x38]
mov dword [rdx], eax
movzx eax, word [rcx + 0x10]
mov rdx, qword [rsp + 0x40]
mov dword [rdx], eax
movzx eax, word [rcx + 0x16]
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
mov rcx, rsi
call fcn.14008a738
mov dil, 1
jmp 0x1400373c4
call fcn.14008a738
xor dil, dil
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140037410
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, vtable.ATL::CAtlStringMgr.0
cmp rax, r9
jne 0x140037425
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, vtable.ATL::CWin32Heap.0
cmp rax, r9
jne 0x140037425
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
movzx eax, dil
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call r8
jmp 0x140037410
mov ecx, 0x80070057
call fcn.140002cbc
nop
mov ecx, 0x80004005
call fcn.140002cbc
int3
call rdx
jmp 0x1400371ac
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3
mov ecx, 0x80070057
call fcn.140002cbc
int3