Function at 0x1400375c0
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.140011b88
mov rcx, rax
test rax, rax
je 0x1400378a5
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea r8, vtable.ATL::CAtlStringMgr.0
cmp rax, r8
jne 0x1400378b0
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 0x14003765c
cmp rbx, 0x10000
jae 0x14003764c
movzx edx, bx
lea rcx, [rsp + 0x20]
call fcn.140012370
jmp 0x140037670
mov rax, r15
nop
inc rax
cmp word [rbx + rax*2], r12w
jne 0x140037650
jmp 0x14003765f
mov eax, r12d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140002a7c
nop
mov rbx, qword [rsp + 0x20]
mov rsi, rbx
mov rdi, r12
mov r13d, 1
cmp word [rbx], di
je 0x14003770c
movzx eax, word [rbx]
nop dword [rax]
mov r14, rdi
mov rbp, rdi
movzx edx, ax
lea rcx, [0x1402f2510]
call fcn.14022e688
test rax, rax
je 0x1400376b6
mov rdi, rsi
test rbp, rbp
cmovne rdi, rbp
jmp 0x1400376b9
mov rdi, r12
add rsi, 2
movzx eax, word [rsi]
test ax, ax
jne 0x140037690
test rdi, rdi
je 0x14003770c
sub rdi, rbx
sar rdi, 1
test edi, edi
js 0x1400378b7
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1400376f8
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140002a1c
mov rbx, qword [rsp + 0x20]
cmp edi, dword [rbx - 0xc]
jg 0x1400378cd
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], r12w
lea r14, [0x1402f2518]
mov rsi, r14
sub rsi, rbx
sar rsi, 1
mov r12d, dword [rbx - 0x10]
mov edx, SafeArrayGetDim
mov rcx, r14
call fcn.140234330
mov rbp, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, r12d
jl 0x1400378c2
lea edi, [r12 + rax]
test edi, edi
js 0x1400378d8
sub r13d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r13d
jge 0x14003776b
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140002a1c
mov rbx, qword [rsp + 0x20]
cmp rsi, r12
ja 0x140037774
lea r14, [rbx + rsi*2]
movsxd rdx, ebp
lea rcx, [rbx + r12*2]
mov r9d, ebp
mov r8, r14
call fcn.140002c18
cmp edi, dword [rbx - 0xc]
jg 0x14003789a
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.14008ae18
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 0x14003782c
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ebp
lea r9, [rsp + 0x28]
lea r8, [rsp + 0x30]
lea rdx, [0x1402f3024]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14003781f
cmp dword [rsp + 0x28], ebp
je 0x14003781f
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.14008ae10
mov dil, 1
jmp 0x140037834
call fcn.14008ae10
xor dil, dil
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140037880
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, vtable.ATL::CAtlStringMgr.0
cmp rax, r9
jne 0x140037895
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, vtable.ATL::CWin32Heap.0
cmp rax, r9
jne 0x140037895
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 0x140037880
mov ecx, 0x80070057
call fcn.140002d3c
nop
mov ecx, 0x80004005
call fcn.140002d3c
int3
call rdx
jmp 0x14003761c
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3