Function at 0x1400cc650
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7e0]
sub rsp, 0x8e0
mov rax, qword [0x140173040]
xor rax, rsp
mov qword [rbp + 0x7d0], rax
mov r13, r9
mov qword [rbp - 0x68], r9
mov r15, r8
mov qword [rsp + 0x70], r8
mov r14, rdx
mov qword [rsp + 0x38], rdx
mov rsi, qword [rbp + 0x840]
mov qword [rsp + 0x30], rsi
test rdx, rdx
je 0x1400cd4cf
xor edi, edi
cmp di, word [rdx]
je 0x1400cd4cf
lea rcx, [rsp + 0x78]
call fcn.14003f460
mov r10, qword [0x14017d768]
mov r8, qword [r10 + 8]
mov rbx, r10
mov rax, qword [rsp + 0x78]
cmp byte [r8 + 0x19], dil
jne 0x1400cc725
test rax, rax
je 0x1400cd506
mov rcx, qword [r8 + 0x20]
mov r9, rax
sub r9, rcx
nop dword [rax]
movzx edx, word [rcx]
cmp dx, word [rcx + r9]
jne 0x1400cc707
add rcx, 2
test dx, dx
jne 0x1400cc6f0
mov ecx, edi
jmp 0x1400cc70c
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400cc719
mov r8, qword [r8 + 0x10]
jmp 0x1400cc71f
mov rbx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], dil
je 0x1400cc6e3
cmp byte [rbx + 0x19], dil
jne 0x1400cc763
mov r8, qword [rbx + 0x20]
test r8, r8
je 0x1400cd506
mov rcx, rax
sub r8, rax
nop
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x1400cc757
add rcx, 2
test dx, dx
jne 0x1400cc740
mov ecx, edi
jmp 0x1400cc75c
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400cc766
mov rbx, r10
lea rdx, [rax - 0x18]
mov r12, 0xffffffffffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cc787
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp rbx, qword [0x14017d768]
je 0x1400cc7a6
test r15, r15
je 0x1400cc7a1
lea rdx, [rbx + 0x28]
mov rcx, r15
call fcn.14003f3d0
mov edi, 1
mov rdx, r14
lea rcx, [rbp - 0x80]
call fcn.14003f460
mov r10, qword [0x14017d778]
mov r8, qword [r10 + 8]
mov rbx, r10
mov rax, qword [rbp - 0x80]
cmp byte [r8 + 0x19], 0
jne 0x1400cc816
test rax, rax
je 0x1400cd511
mov rcx, qword [r8 + 0x20]
mov r9, rax
sub r9, rcx
nop
movzx edx, word [rcx]
cmp dx, word [rcx + r9]
jne 0x1400cc7f7
add rcx, 2
test dx, dx
jne 0x1400cc7e0
xor ecx, ecx
jmp 0x1400cc7fc
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400cc809
mov r8, qword [r8 + 0x10]
jmp 0x1400cc80f
mov rbx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x1400cc7d4
cmp byte [rbx + 0x19], 0
jne 0x1400cc853
mov r8, qword [rbx + 0x20]
test r8, r8
je 0x1400cd511
mov rcx, rax
sub r8, rax
nop
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x1400cc847
add rcx, 2
test dx, dx
jne 0x1400cc830
xor ecx, ecx
jmp 0x1400cc84c
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400cc856
mov rbx, r10
lea rdx, [rax - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cc870
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp rbx, qword [0x14017d778]
je 0x1400cc88c
test r13, r13
je 0x1400cc88a
lea rdx, [rbx + 0x28]
mov rcx, r13
call fcn.14003f3d0
inc edi
mov rdx, r14
lea rcx, [rbp - 0x78]
call fcn.14003f460
mov r10, qword [0x14017d788]
mov r8, qword [r10 + 8]
mov rbx, r10
mov rax, qword [rbp - 0x78]
cmp byte [r8 + 0x19], 0
jne 0x1400cc8fa
test rax, rax
je 0x1400cd51c
mov rcx, qword [r8 + 0x20]
mov r9, rax
sub r9, rcx
movzx edx, word [rcx]
cmp dx, word [rcx + r9]
jne 0x1400cc8db
add rcx, 2
test dx, dx
jne 0x1400cc8c4
xor ecx, ecx
jmp 0x1400cc8e0
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400cc8ed
mov r8, qword [r8 + 0x10]
jmp 0x1400cc8f3
mov rbx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x1400cc8ba
cmp byte [rbx + 0x19], 0
jne 0x1400cc936
mov r8, qword [rbx + 0x20]
test r8, r8
je 0x1400cd51c
mov rcx, rax
sub r8, rax
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x1400cc92a
add rcx, 2
test dx, dx
jne 0x1400cc913
xor ecx, ecx
jmp 0x1400cc92f
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400cc939
mov rbx, r10
lea rdx, [rax - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cc953
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp rbx, qword [0x14017d788]
je 0x1400cc96f
test rsi, rsi
je 0x1400cc96d
lea rdx, [rbx + 0x28]
mov rcx, rsi
call fcn.14003f3d0
inc edi
test edi, edi
jne 0x1400cd4cb
test r15, r15
je 0x1400cc9dc
mov r9, r15
lea r8, str.FriendlyAppName
mov rdx, r14
call fcn.1400d6950
cmp al, 1
jne 0x1400cc9dc
mov rdx, r14
lea rcx, [rsp + 0x48]
call fcn.14003f460
nop
lea rdx, [rsp + 0x48]
lea rcx, [0x14017d768]
call fcn.140074540
mov rcx, rax
mov rdx, r15
call fcn.14003f3d0
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cc9dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r13, r13
je 0x1400cca41
mov r9, r13
lea r8, [0x14014f7f0]
mov rdx, r14
call fcn.1400d6950
cmp al, 1
jne 0x1400cca41
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.14003f460
nop
lea rdx, [rsp + 0x50]
lea rcx, [0x14017d778]
call fcn.140074540
mov rcx, rax
mov rdx, r13
call fcn.14003f3d0
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cca41
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test rsi, rsi
je 0x1400ccaa6
mov r9, rsi
lea r8, [0x14014f818]
mov rdx, r14
call fcn.1400d6950
cmp al, 1
jne 0x1400ccaa6
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.14003f460
nop
lea rdx, [rsp + 0x58]
lea rcx, [0x14017d788]
call fcn.140074540
mov rcx, rax
mov rdx, rsi
call fcn.14003f3d0
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400ccaa6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, r14
lea rcx, [rbp - 0x70]
call fcn.14003f460
mov r11, qword [0x14017d798]
mov r8, qword [r11 + 8]
mov r10, r11
mov rax, qword [rbp - 0x70]
cmp byte [r8 + 0x19], 0
jne 0x1400ccb16
test rax, rax
je 0x1400cd527
mov rcx, qword [r8 + 0x20]
mov r9, rax
sub r9, rcx
nop
movzx edx, word [rcx]
cmp dx, word [rcx + r9]
jne 0x1400ccaf7
add rcx, 2
test dx, dx
jne 0x1400ccae0
xor ecx, ecx
jmp 0x1400ccafc
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400ccb09
mov r8, qword [r8 + 0x10]
jmp 0x1400ccb0f
mov r10, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x1400ccad4
cmp byte [r10 + 0x19], 0
jne 0x1400ccb53
mov r8, qword [r10 + 0x20]
test r8, r8
je 0x1400cd527
mov rcx, rax
sub r8, rax
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x1400ccb47
add rcx, 2
test dx, dx
jne 0x1400ccb30
xor ecx, ecx
jmp 0x1400ccb4c
sbb ecx, ecx
or ecx, 1
shr ecx, 0x1f
test cl, cl
je 0x1400ccb56
mov r10, r11
cmp r10, r11
setne bl
lea rdx, [rax - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400ccb76
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x1400cd4cb
xor r15d, r15d
mov r13d, r15d
xor edx, edx
mov rcx, r14
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
movsxd rbx, eax
test eax, eax
je 0x1400cd4c6
mov rcx, rbx
call fcn.1400ff0c4
mov rdi, rax
mov qword [rsp + 0x40], rax
mov r9, rax
mov r8d, ebx
xor edx, edx
mov rcx, r14
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
jne 0x1400ccc08
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.14003f460
nop
lea rdx, [rsp + 0x30]
lea rcx, [0x14017d798]
call fcn.140074b60
mov byte [rax], 1
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x1400cd4b9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400cd4b9
mov dword [rbp - 0x40], r15d
mov qword [rbp - 0x50], r15
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x50]
lea rdx, str.VarFileInfoTranslation
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400cd4b9
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x48], r15
mov rax, qword [rbp - 0x50]
movzx ecx, word [rax + 2]
movzx r9d, word [rax]
mov dword [rsp + 0x20], ecx
lea r8, str.StringFileInfo_04x_04xFileDescription
mov edx, 0x400
lea rcx, [rbp - 0x30]
call fcn.1400060f0
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x60]
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400ccf16
cmp qword [rbp - 0x60], r13
je 0x1400ccf16
mov rdx, r14
lea rcx, [rsp + 0x60]
call fcn.14003f460
nop
mov rdi, qword [rbp - 0x60]
lea rdx, [rsp + 0x60]
lea rcx, [0x14017d788]
call fcn.140074540
mov r15, rax
test rdi, rdi
je 0x1400ccdc1
mov rbx, r12
nop word [rax + rax]
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1400cccc0
test ebx, ebx
je 0x1400ccdc1
mov rax, qword [rax]
mov r12d, dword [rax - 0x10]
mov r14, rdi
sub r14, rax
sar r14, 1
test ebx, ebx
js 0x1400cd532
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, ebx
or eax, ecx
jge 0x1400ccd05
mov edx, ebx
mov rcx, r15
call fcn.140005a20
mov rcx, qword [r15]
movsxd rsi, ebx
add rsi, rsi
movsxd r8, dword [rcx - 0xc]
cmp r14, r12
ja 0x1400ccd59
lea rdx, [rcx + r14*2]
test rsi, rsi
je 0x1400ccd9c
test rcx, rcx
jne 0x1400ccd32
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400ccd97
test rdx, rdx
jne 0x1400ccd44
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400ccd97
mov rax, r8
add rax, rax
cmp rax, rsi
jb 0x1400ccd8c
mov r8, rsi
call fcn.14012c6c0
jmp 0x1400ccd9c
add r8, r8
test rsi, rsi
je 0x1400ccd9c
test rcx, rcx
jne 0x1400ccd73
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400ccd97
cmp r8, rsi
jb 0x1400ccd85
mov r8, rsi
mov rdx, rdi
call fcn.14012c6c0
jmp 0x1400ccd9c
xor edx, edx
call fcn.14012ce40
call fcn.14010b5c8
mov dword [rax], 0x22
call fcn.14010b428
mov rax, qword [r15]
cmp ebx, dword [rax - 0xc]
jg 0x1400cd532
mov dword [rax - 0x10], ebx
mov rax, qword [r15]
xor r13d, r13d
mov word [rsi + rax], r13w
lea r12, [r13 - 1]
mov rsi, qword [rsp + 0x30]
jmp 0x1400ccdcc
mov rcx, r15
call fcn.1400056e0
xor r13d, r13d
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400ccdeb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test rsi, rsi
je 0x1400ccf06
mov rdi, qword [rbp - 0x60]
test rdi, rdi
je 0x1400ccefe
mov rbx, r12
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1400cce04
test ebx, ebx
je 0x1400ccefe
mov rax, qword [rsi]
mov r15d, dword [rax - 0x10]
mov r14, rdi
sub r14, rax
sar r14, 1
test ebx, ebx
js 0x1400cd4fb
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, ebx
or eax, ecx
jge 0x1400cce49
mov edx, ebx
mov rcx, rsi
call fcn.140005a20
mov rcx, qword [rsi]
movsxd rsi, ebx
add rsi, rsi
movsxd r8, dword [rcx - 0xc]
cmp r14, r15
ja 0x1400cce9d
lea rdx, [rcx + r14*2]
test rsi, rsi
je 0x1400ccee0
test rcx, rcx
jne 0x1400cce76
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400ccedb
test rdx, rdx
jne 0x1400cce88
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400ccedb
mov rax, r8
add rax, rax
cmp rax, rsi
jb 0x1400cced0
mov r8, rsi
call fcn.14012c6c0
jmp 0x1400ccee0
add r8, r8
test rsi, rsi
je 0x1400ccee0
test rcx, rcx
jne 0x1400cceb7
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400ccedb
cmp r8, rsi
jb 0x1400ccec9
mov r8, rsi
mov rdx, rdi
call fcn.14012c6c0
jmp 0x1400ccee0
xor edx, edx
call fcn.14012ce40
call fcn.14010b5c8
mov dword [rax], 0x22
call fcn.14010b428
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
cmp ebx, dword [rax - 0xc]
jg 0x1400cd4fb
mov dword [rax - 0x10], ebx
mov rax, qword [rcx]
mov word [rsi + rax], r13w
jmp 0x1400ccf06
mov rcx, rsi
call fcn.1400056e0
mov r13d, 1
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rax, qword [rbp - 0x50]
movzx ecx, word [rax + 2]
movzx r9d, word [rax]
mov dword [rsp + 0x20], ecx
lea r8, str.StringFileInfo_04x_04xProductName
mov edx, 0x400
lea rcx, [rbp - 0x30]
call fcn.1400060f0
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x58]
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400cd1eb
cmp qword [rbp - 0x58], 0
je 0x1400cd1eb
mov rdx, r14
lea rcx, [rsp + 0x68]
call fcn.14003f460
nop
mov rdi, qword [rbp - 0x58]
lea rdx, [rsp + 0x68]
lea rcx, [0x14017d768]
call fcn.140074540
mov r15, rax
test rdi, rdi
je 0x1400cd093
mov rbx, r12
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1400ccf95
test ebx, ebx
je 0x1400cd093
mov rax, qword [rax]
mov r12d, dword [rax - 0x10]
mov r14, rdi
sub r14, rax
sar r14, 1
test ebx, ebx
js 0x1400cd53d
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, ebx
or eax, ecx
jge 0x1400ccfda
mov edx, ebx
mov rcx, r15
call fcn.140005a20
mov rcx, qword [r15]
movsxd rsi, ebx
add rsi, rsi
movsxd r8, dword [rcx - 0xc]
cmp r14, r12
ja 0x1400cd032
lea rdx, [rcx + r14*2]
test rsi, rsi
je 0x1400cd075
test rcx, rcx
jne 0x1400cd00b
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd070
test rdx, rdx
jne 0x1400cd01d
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd070
mov rax, r8
add rax, rax
cmp rax, rsi
jb 0x1400cd065
mov r8, rsi
call fcn.14012c6c0
jmp 0x1400cd075
add r8, r8
test rsi, rsi
je 0x1400cd075
test rcx, rcx
jne 0x1400cd04c
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd070
cmp r8, rsi
jb 0x1400cd05e
mov r8, rsi
mov rdx, rdi
call fcn.14012c6c0
jmp 0x1400cd075
xor edx, edx
call fcn.14012ce40
call fcn.14010b5c8
mov dword [rax], 0x22
call fcn.14010b428
mov rax, qword [r15]
cmp ebx, dword [rax - 0xc]
jg 0x1400cd53d
mov dword [rax - 0x10], ebx
mov rax, qword [r15]
xor ecx, ecx
mov word [rsi + rax], cx
lea r12, [rcx - 1]
jmp 0x1400cd09c
mov rcx, r15
call fcn.1400056e0
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cd0bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x1400cd1e3
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x1400cd1db
mov rbx, r12
nop dword [rax]
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1400cd0e0
test ebx, ebx
je 0x1400cd1db
mov rax, qword [rsi]
mov r15d, dword [rax - 0x10]
mov r14, rdi
sub r14, rax
sar r14, 1
test ebx, ebx
js 0x1400cd4fb
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, ebx
or eax, ecx
jge 0x1400cd125
mov edx, ebx
mov rcx, rsi
call fcn.140005a20
mov rcx, qword [rsi]
movsxd rsi, ebx
add rsi, rsi
movsxd r8, dword [rcx - 0xc]
cmp r14, r15
ja 0x1400cd179
lea rdx, [rcx + r14*2]
test rsi, rsi
je 0x1400cd1bc
test rcx, rcx
jne 0x1400cd152
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd1b7
test rdx, rdx
jne 0x1400cd164
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd1b7
mov rax, r8
add rax, rax
cmp rax, rsi
jb 0x1400cd1ac
mov r8, rsi
call fcn.14012c6c0
jmp 0x1400cd1bc
add r8, r8
test rsi, rsi
je 0x1400cd1bc
test rcx, rcx
jne 0x1400cd193
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd1b7
cmp r8, rsi
jb 0x1400cd1a5
mov r8, rsi
mov rdx, rdi
call fcn.14012c6c0
jmp 0x1400cd1bc
xor edx, edx
call fcn.14012ce40
call fcn.14010b5c8
mov dword [rax], 0x22
call fcn.14010b428
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
cmp ebx, dword [rax - 0xc]
jg 0x1400cd4fb
mov dword [rax - 0x10], ebx
mov rax, qword [rcx]
xor ecx, ecx
mov word [rsi + rax], cx
jmp 0x1400cd1e3
mov rcx, rsi
call fcn.1400056e0
inc r13d
mov rdi, qword [rsp + 0x40]
mov rax, qword [rbp - 0x50]
movzx ecx, word [rax + 2]
movzx r9d, word [rax]
mov dword [rsp + 0x20], ecx
lea r8, str.StringFileInfo_04x_04xCompanyName
mov edx, 0x400
lea rcx, [rbp - 0x30]
call fcn.1400060f0
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400cd4b9
cmp qword [rbp - 0x48], 0
je 0x1400cd4b9
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x38]
call fcn.14003f460
nop
mov rsi, qword [rbp - 0x48]
lea rdx, [rsp + 0x38]
lea rcx, [0x14017d778]
call fcn.140074540
mov r15, rax
test rsi, rsi
je 0x1400cd36a
mov rbx, r12
nop dword [rax]
inc rbx
cmp word [rsi + rbx*2], 0
jne 0x1400cd270
test ebx, ebx
je 0x1400cd36a
mov rax, qword [rax]
mov r12d, dword [rax - 0x10]
mov r14, rsi
sub r14, rax
sar r14, 1
test ebx, ebx
js 0x1400cd548
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, ebx
or eax, ecx
jge 0x1400cd2b5
mov edx, ebx
mov rcx, r15
call fcn.140005a20
mov rcx, qword [r15]
movsxd rdi, ebx
add rdi, rdi
movsxd r8, dword [rcx - 0xc]
cmp r14, r12
ja 0x1400cd309
lea rdx, [rcx + r14*2]
test rdi, rdi
je 0x1400cd34c
test rcx, rcx
jne 0x1400cd2e2
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd347
test rdx, rdx
jne 0x1400cd2f4
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd347
mov rax, r8
add rax, rax
cmp rax, rdi
jb 0x1400cd33c
mov r8, rdi
call fcn.14012c6c0
jmp 0x1400cd34c
add r8, r8
test rdi, rdi
je 0x1400cd34c
test rcx, rcx
jne 0x1400cd323
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd347
cmp r8, rdi
jb 0x1400cd335
mov r8, rdi
mov rdx, rsi
call fcn.14012c6c0
jmp 0x1400cd34c
xor edx, edx
call fcn.14012ce40
call fcn.14010b5c8
mov dword [rax], 0x22
call fcn.14010b428
mov rax, qword [r15]
cmp ebx, dword [rax - 0xc]
jg 0x1400cd548
mov dword [rax - 0x10], ebx
mov rax, qword [r15]
xor ecx, ecx
mov word [rdi + rax], cx
lea r12, [rcx - 1]
jmp 0x1400cd373
mov rcx, r15
call fcn.1400056e0
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cd392
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r15, qword [rbp - 0x68]
test r15, r15
je 0x1400cd4b1
mov rdi, qword [rbp - 0x48]
test rdi, rdi
je 0x1400cd4a9
nop dword [rax]
inc r12
cmp word [rdi + r12*2], 0
jne 0x1400cd3b0
test r12d, r12d
je 0x1400cd4a9
mov rax, qword [r15]
mov r14d, dword [rax - 0x10]
mov rsi, rdi
sub rsi, rax
sar rsi, 1
test r12d, r12d
js 0x1400cd4fb
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, r12d
or ecx, eax
jge 0x1400cd3fa
mov edx, r12d
mov rcx, r15
call fcn.140005a20
mov rcx, qword [r15]
movsxd rbx, r12d
add rbx, rbx
movsxd r8, dword [rcx - 0xc]
cmp rsi, r14
ja 0x1400cd44e
lea rdx, [rcx + rsi*2]
test rbx, rbx
je 0x1400cd491
test rcx, rcx
jne 0x1400cd427
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd48c
test rdx, rdx
jne 0x1400cd439
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd48c
mov rax, r8
add rax, rax
cmp rax, rbx
jb 0x1400cd481
mov r8, rbx
call fcn.14012c6c0
jmp 0x1400cd491
add r8, r8
test rbx, rbx
je 0x1400cd491
test rcx, rcx
jne 0x1400cd468
call fcn.14010b5c8
mov dword [rax], 0x16
jmp 0x1400cd48c
cmp r8, rbx
jb 0x1400cd47a
mov r8, rbx
mov rdx, rdi
call fcn.14012c6c0
jmp 0x1400cd491
xor edx, edx
call fcn.14012ce40
call fcn.14010b5c8
mov dword [rax], 0x22
call fcn.14010b428
mov rax, qword [r15]
cmp r12d, dword [rax - 0xc]
jg 0x1400cd4fb
mov dword [rax - 0x10], r12d
mov rax, qword [r15]
xor ecx, ecx
mov word [rbx + rax], cx
jmp 0x1400cd4b1
mov rcx, r15
call fcn.1400056e0
inc r13d
mov rdi, qword [rsp + 0x40]
mov edx, 1
mov rcx, rdi
call fcn.1400ff054
mov eax, r13d
jmp 0x1400cd4d1
mov eax, edi
jmp 0x1400cd4d1
xor eax, eax
mov rcx, qword [rbp + 0x7d0]
xor rcx, rsp
call fcn.1400ff350
mov rbx, qword [rsp + 0x920]
add rsp, 0x8e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.140002b00
int3
mov ecx, 0x80004005
call fcn.140002b00
int3
mov ecx, 0x80004005
call fcn.140002b00
int3
mov ecx, 0x80004005
call fcn.140002b00
int3
mov ecx, 0x80004005
call fcn.140002b00
nop
mov ecx, 0x80070057
call fcn.140002b00
nop
mov ecx, 0x80070057
call fcn.140002b00
nop
mov ecx, 0x80070057
call fcn.140002b00
int3