Function at 0x140077fa0
Capabilities:
Get common file path
Get file version info

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x840]
sub rsp, 0x940
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x998], rbx
mov rax, qword [0x1403d88e8]
xor rax, rsp
mov qword [rbp + 0x830], rax
mov rsi, r8
mov qword [rsp + 0x28], r8
mov r12, rdx
mov r13, rcx
mov qword [rsp + 0x60], rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov edx, 0x104
lea rcx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea ecx, [rdi + 0x20]
test eax, eax
je 0x140079317
mov word [rbp + 0x636], di
mov r14d, 0x200
mov edx, r14d
lea rcx, [rbp + 0x30]
lea r15, [rbp + 0x430]
lea rax, [rbp + 0x30]
sub r15, rax
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078057
movzx eax, word [r15 + rcx]
test ax, ax
je 0x140078057
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078034
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
nop dword [rax]
cmp word [rax], di
je 0x14007807f
add rax, 2
sub rcx, 1
jne 0x140078070
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp - 0x20], r8
je 0x1400780ef
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x1400780e1
lea rax, [r8 + 0x7ffffdfe]
add rax, rdx
lea r9, str.ddraw.dll
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x1400780e1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x1400780e1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400780c0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x38], eax
test eax, eax
je 0x140078256
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x140078256
mov r9, rax
mov r8d, dword [rsp + 0x38]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14007824a
mov qword [rbp - 0x60], rdi
lea r9, [rsp + 0x38]
lea r8, [rbp - 0x60]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14007824a
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x14007824a
mov edi, dword [rax + 8]
mov dword [rsp + 0x34], edi
mov esi, dword [rax + 0xc]
mov dword [rsp + 0x30], esi
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x40002
ja 0x14007818f
jb 0x1400781c3
cmp esi, 0x5f
jb 0x1400781c3
test r13, r13
je 0x14007819c
mov dword [r13], 1
test r12, r12
je 0x1400781a7
xor eax, eax
mov dword [r12], eax
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400781b9
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
jmp 0x1400781c8
mov rax, qword [rsp + 0x28]
cmp edi, 0x40003
ja 0x1400781da
jb 0x140078207
cmp esi, 0x448
jb 0x140078207
test r13, r13
je 0x1400781e7
mov dword [r13], 2
test r12, r12
je 0x1400781f2
xor ecx, ecx
mov dword [r12], ecx
test rax, rax
je 0x1400781ff
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
cmp edi, 0x40004
ja 0x140078216
jb 0x140078254
cmp esi, 0x44
jb 0x140078254
test r13, r13
je 0x140078223
mov dword [r13], 3
xor edi, edi
test r12, r12
je 0x14007822e
mov dword [r12], edi
mov rsi, qword [rsp + 0x28]
test rsi, rsi
je 0x140078240
mov eax, 0x20
mov word [rsi], ax
mov dword [rsp + 0x20], 1
jmp 0x140078256
mov rcx, rbx
call fcn.1400f8164
jmp 0x140078256
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop dword [rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078283
movzx eax, word [r15 + rcx]
test ax, ax
je 0x140078283
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078260
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x1400782a8
add rax, 2
sub rcx, 1
jne 0x140078298
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp - 0x18], r8
je 0x140078311
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x140078303
lea rax, [r8 + 0x7ffffdfe]
add rax, rdx
lea r9, str.d3drg8x.dll
sub r9, rcx
test rax, rax
je 0x140078303
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140078303
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400782e2
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x4c]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x1400783e0
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x1400783e0
mov r9, rax
mov r8d, dword [rsp + 0x3c]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x1400783d4
mov qword [rsp + 0x70], rdi
lea r9, [rsp + 0x3c]
lea r8, [rsp + 0x70]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1400783d4
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1400783d4
mov edi, dword [rax + 8]
mov esi, dword [rax + 0xc]
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x40004
ja 0x1400783a0
jb 0x1400783de
cmp esi, 0x46
jb 0x1400783de
test r13, r13
je 0x1400783ad
mov dword [r13], 3
xor edi, edi
test r12, r12
je 0x1400783b8
mov dword [r12], edi
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400783ca
mov ecx, 0x61
mov word [rax], cx
mov dword [rsp + 0x20], 1
jmp 0x1400783e0
mov rcx, rbx
call fcn.1400f8164
jmp 0x1400783e0
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop word [rax + rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078413
movzx eax, word [r15 + rcx]
test ax, ax
je 0x140078413
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1400783f0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x140078438
add rax, 2
sub rcx, 1
jne 0x140078428
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp - 0x10], r8
je 0x1400784a1
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x140078493
lea rax, [r8 + 0x7ffffdfe]
add rax, rdx
lea r9, str.ddraw.dll
sub r9, rcx
test rax, rax
je 0x140078493
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140078493
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140078472
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x40], eax
test eax, eax
je 0x140078602
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x140078602
mov r9, rax
mov r8d, dword [rsp + 0x40]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140078918
mov qword [rsp + 0x78], rdi
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x78]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140078918
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140078918
mov edi, dword [rax + 8]
mov dword [rsp + 0x34], edi
mov esi, dword [rax + 0xc]
mov dword [rsp + 0x30], esi
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x40005
ja 0x140078547
jb 0x14007857b
cmp esi, 0x9b
jb 0x14007857b
test r13, r13
je 0x140078554
mov dword [r13], 5
test r12, r12
je 0x14007855f
xor eax, eax
mov dword [r12], eax
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140078571
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
jmp 0x140078580
mov rax, qword [rsp + 0x28]
cmp edi, 0x40006
ja 0x140078592
jb 0x140078600
cmp esi, 0x13e
jb 0x1400785bf
test r13, r13
je 0x14007859f
mov dword [r13], 6
test r12, r12
je 0x1400785aa
xor ecx, ecx
mov dword [r12], ecx
test rax, rax
je 0x1400785b7
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
cmp edi, 0x40006
ja 0x1400785d1
jb 0x140078600
cmp esi, 0x1b4
jb 0x140078600
test r13, r13
je 0x1400785de
mov dword [r13], 6
test r12, r12
je 0x1400785eb
mov dword [r12], 1
test rax, rax
je 0x1400785f8
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop dword [rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078633
movzx eax, word [r15 + rcx]
test ax, ax
je 0x140078633
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078610
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x140078658
add rax, 2
sub rcx, 1
jne 0x140078648
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp - 8], r8
je 0x1400786bf
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x1400786b1
add r8, 0x7ffffdfe
add r8, rdx
lea r9, str.dplayx.dll
sub r9, rcx
test r8, r8
je 0x1400786b1
movzx eax, word [rcx + r9]
test ax, ax
je 0x1400786b1
mov word [rcx], ax
add rcx, 2
dec r8
sub rdx, 1
jne 0x140078692
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x44]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x44], eax
test eax, eax
je 0x140078790
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x140078790
mov r9, rax
mov r8d, dword [rsp + 0x44]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140078925
mov qword [rbp - 0x80], rdi
lea r9, [rsp + 0x44]
lea r8, [rbp - 0x80]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140078925
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x140078925
mov edi, dword [rax + 8]
mov esi, dword [rax + 0xc]
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x40006
ja 0x14007875a
jb 0x14007878e
cmp esi, 0x30206
jb 0x14007878e
test r13, r13
je 0x140078767
mov dword [r13], 6
test r12, r12
je 0x140078774
mov dword [r12], 1
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140078786
mov ecx, 0x61
mov word [rax], cx
mov dword [rsp + 0x20], 1
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop word [rax + rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x1400787c3
movzx eax, word [r15 + rcx]
test ax, ax
je 0x1400787c3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1400787a0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x1400787e8
add rax, 2
sub rcx, 1
jne 0x1400787d8
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp], r8
je 0x140078851
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x140078843
lea rax, [r8 + 0x7ffffdfe]
add rax, rdx
lea r9, str.ddraw.dll
sub r9, rcx
test rax, rax
je 0x140078843
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140078843
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140078822
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x48], eax
test eax, eax
je 0x14007893e
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x14007893e
mov r9, rax
mov r8d, dword [rsp + 0x48]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140078932
mov qword [rbp - 0x78], rdi
lea r9, [rsp + 0x48]
lea r8, [rbp - 0x78]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140078932
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x140078932
mov edi, dword [rax + 8]
mov esi, dword [rax + 0xc]
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x40007
ja 0x1400788e4
jb 0x14007893c
cmp esi, 0x2bc
jb 0x14007893c
test r13, r13
je 0x1400788f1
mov dword [r13], 7
xor edi, edi
test r12, r12
je 0x1400788fc
mov dword [r12], edi
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14007890e
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
jmp 0x14007893e
mov rcx, rbx
call fcn.1400f8164
jmp 0x140078602
mov rcx, rbx
call fcn.1400f8164
jmp 0x140078790
mov rcx, rbx
call fcn.1400f8164
jmp 0x14007893e
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop word [rax + rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078973
movzx eax, word [rcx + r15]
test ax, ax
je 0x140078973
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078950
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x140078998
add rax, 2
sub rcx, 1
jne 0x140078988
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp + 8], r8
je 0x1400789ff
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x1400789f1
add r8, 0x7ffffdfe
add r8, rdx
lea r9, str.dinput.dll
sub r9, rcx
test r8, r8
je 0x1400789f1
movzx eax, word [rcx + r9]
test ax, ax
je 0x1400789f1
mov word [rcx], ax
add rcx, 2
dec r8
sub rdx, 1
jne 0x1400789d2
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x3c]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x4c], eax
test eax, eax
je 0x140078ad5
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x140078ad5
mov r9, rax
mov r8d, dword [rsp + 0x4c]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140078ac9
mov qword [rsp + 0x68], rdi
lea r9, [rsp + 0x4c]
lea r8, [rsp + 0x68]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140078ac9
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x140078ac9
mov edi, dword [rax + 8]
mov esi, dword [rax + 0xc]
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x40007
ja 0x140078a95
jb 0x140078ad3
cmp esi, 0x2cc
jb 0x140078ad3
test r13, r13
je 0x140078aa2
mov dword [r13], 7
xor edi, edi
test r12, r12
je 0x140078aad
mov dword [r12], edi
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140078abf
mov ecx, 0x61
mov word [rax], cx
mov dword [rsp + 0x20], 1
jmp 0x140078ad5
mov rcx, rbx
call fcn.1400f8164
jmp 0x140078ad5
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop dword [rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078b03
movzx eax, word [rcx + r15]
test ax, ax
je 0x140078b03
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078ae0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x140078b28
add rax, 2
sub rcx, 1
jne 0x140078b18
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp + 0x10], r8
je 0x140078b96
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x140078b88
lea rax, [r8 + 0x7ffffdfe]
add rax, rdx
lea r13, str.ddraw.dll
sub r13, rcx
test rax, rax
je 0x140078b83
movzx r8d, word [rcx + r13]
test r8w, r8w
je 0x140078b83
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140078b62
mov r13, qword [rsp + 0x60]
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x50], eax
test eax, eax
je 0x140078c98
mov ecx, eax
call fcn.1400f816c
mov rdi, rax
test rax, rax
je 0x140078c96
mov r9, rax
mov r8d, dword [rsp + 0x50]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140078c8e
xor eax, eax
mov qword [rbp - 0x70], rax
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x70]
lea rdx, [0x1403466e8]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140078c8e
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x140078c8e
mov ebx, dword [rax + 8]
mov dword [rsp + 0x34], ebx
mov esi, dword [rax + 0xc]
mov dword [rsp + 0x30], esi
mov rcx, rdi
call fcn.1400f8164
mov eax, ebx
shr eax, 0x10
cmp ax, 4
jne 0x140078c42
cmp ebx, 0x40008
ja 0x140078c5a
jb 0x140078c42
cmp esi, 0x18f
ja 0x140078c5a
cmp ax, 5
jne 0x140078c96
cmp ebx, 0x50001
ja 0x140078c5a
jb 0x140078c96
cmp esi, 0x8d20190
jb 0x140078c96
test r13, r13
je 0x140078c67
mov dword [r13], 8
xor edi, edi
test r12, r12
je 0x140078c72
mov dword [r12], edi
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140078c84
mov ecx, 0x20
mov word [rax], cx
mov dword [rsp + 0x20], 1
jmp 0x140078c98
mov rcx, rdi
call fcn.1400f8164
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078cc3
movzx eax, word [rcx + r15]
test ax, ax
je 0x140078cc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078ca0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x140078ce8
add rax, 2
sub rcx, 1
jne 0x140078cd8
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp + 0x18], r8
je 0x140078d4f
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x140078d41
add r8, 0x7ffffdfe
add r8, rdx
lea r9, str.d3d8.dll
sub r9, rcx
test r8, r8
je 0x140078d41
movzx eax, word [rcx + r9]
test ax, ax
je 0x140078d41
mov word [rcx], ax
add rcx, 2
dec r8
sub rdx, 1
jne 0x140078d22
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x54], eax
test eax, eax
je 0x140078ebd
mov ecx, eax
call fcn.1400f816c
mov rdi, rax
test rax, rax
je 0x140078ebb
mov r9, rax
mov r8d, dword [rsp + 0x54]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140078eb3
xor eax, eax
mov qword [rbp - 0x68], rax
lea r9, [rsp + 0x54]
lea r8, [rbp - 0x68]
lea rdx, [0x1403466e8]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140078eb3
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x140078eb3
mov ebx, dword [rax + 8]
mov dword [rsp + 0x34], ebx
mov esi, dword [rax + 0xc]
mov dword [rsp + 0x30], esi
mov rcx, rdi
call fcn.1400f8164
mov eax, ebx
shr eax, 0x10
cmp ax, 4
jne 0x140078dff
cmp ebx, 0x40008
ja 0x140078e17
jb 0x140078dff
cmp esi, 0x10370
ja 0x140078e17
cmp ax, 5
jne 0x140078e4d
cmp ebx, 0x50001
ja 0x140078e17
jb 0x140078e4d
cmp esi, 0xa280371
jb 0x140078e4d
test r13, r13
je 0x140078e24
mov dword [r13], 8
test r12, r12
je 0x140078e31
mov dword [r12], 1
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140078e43
mov edx, 0x20
mov word [rcx], dx
mov dword [rsp + 0x20], 1
jmp 0x140078e52
mov rcx, qword [rsp + 0x28]
cmp ax, 4
jne 0x140078e6a
cmp ebx, 0x40008
ja 0x140078e82
jb 0x140078e6a
cmp esi, 0x10384
ja 0x140078e82
cmp ax, 5
jne 0x140078ebb
cmp ebx, 0x50001
ja 0x140078e82
jb 0x140078ebb
cmp esi, 0xa280385
jb 0x140078ebb
test r13, r13
je 0x140078e8f
mov dword [r13], 8
test r12, r12
je 0x140078e9c
mov dword [r12], 1
test rcx, rcx
je 0x140078ea9
mov eax, 0x61
mov word [rcx], ax
mov dword [rsp + 0x20], 1
jmp 0x140078ebb
mov rcx, rdi
call fcn.1400f8164
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140078ee7
movzx eax, word [rcx + r15]
test ax, ax
je 0x140078ee7
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140078ec4
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
nop dword [rax]
cmp word [rax], 0
je 0x140078f10
add rax, 2
sub rcx, 1
jne 0x140078f00
mov rax, r14
sub rax, rcx
mov r8, rdi
test rcx, rcx
cmovne r8, rax
mov qword [rbp + 0x20], r8
je 0x140078f7f
mov rdx, r14
sub rdx, r8
lea rcx, [rbp + 0x30]
lea rcx, [rcx + r8*2]
je 0x140078f71
lea rax, [r8 + 0x7ffffdfe]
add rax, rdx
lea r9, str.mpg2splt.ax
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x140078f71
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140078f71
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140078f50
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x34]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x58], eax
test eax, eax
je 0x140079050
mov ecx, eax
call fcn.1400f816c
mov rbx, rax
test rax, rax
je 0x140079050
mov r9, rax
mov r8d, dword [rsp + 0x58]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14007920c
mov qword [rbp - 0x58], rdi
lea r9, [rsp + 0x58]
lea r8, [rbp - 0x58]
lea rdx, [0x1403466e8]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14007920c
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x14007920c
mov edi, dword [rax + 8]
mov esi, dword [rax + 0xc]
mov rcx, rbx
call fcn.1400f8164
cmp edi, 0x60003
ja 0x14007901a
jb 0x14007904e
cmp esi, 0x10375
jb 0x14007904e
test r13, r13
je 0x140079027
mov dword [r13], 8
test r12, r12
je 0x140079034
mov dword [r12], 1
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140079046
mov ecx, 0x62
mov word [rax], cx
mov dword [rsp + 0x20], 1
xor edi, edi
mov rdx, r14
lea rcx, [rbp + 0x30]
nop word [rax + rax]
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x140079083
movzx eax, word [rcx + r15]
test ax, ax
je 0x140079083
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140079060
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov rcx, r14
lea rax, [rbp + 0x30]
cmp word [rax], 0
je 0x1400790a8
add rax, 2
sub rcx, 1
jne 0x140079098
mov rax, r14
sub rax, rcx
mov rdx, rdi
test rcx, rcx
cmovne rdx, rax
mov qword [rbp + 0x28], rdx
je 0x14007910d
sub r14, rdx
lea rcx, [rbp + 0x30]
lea rcx, [rcx + rdx*2]
je 0x1400790ff
lea rax, [rdx + 0x7ffffdfe]
add rax, r14
lea r8, str.dpnet.dll
sub r8, rcx
nop
test rax, rax
je 0x1400790ff
movzx edx, word [rcx + r8]
test dx, dx
je 0x1400790ff
mov word [rcx], dx
add rcx, 2
dec rax
sub r14, 1
jne 0x1400790e0
lea rax, [rcx - 2]
test r14, r14
cmovne rax, rcx
mov word [rax], di
lea rdx, [rbp - 0x2c]
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [rsp + 0x5c], eax
test eax, eax
je 0x140079221
mov ecx, eax
call fcn.1400f816c
mov rdi, rax
test rax, rax
je 0x140079221
mov r9, rax
mov r8d, dword [rsp + 0x5c]
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140079219
xor eax, eax
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x5c]
lea r8, [rsp + 0x60]
lea rdx, [0x1403466e8]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140079219
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x140079219
mov ebx, dword [rax + 8]
mov dword [rsp + 0x34], ebx
mov esi, dword [rax + 0xc]
mov dword [rsp + 0x30], esi
mov rcx, rdi
call fcn.1400f8164
mov eax, ebx
shr eax, 0x10
cmp ax, 4
jne 0x1400791c0
cmp ebx, 0x40009
ja 0x1400791d8
jb 0x1400791c0
cmp esi, 0x85
ja 0x1400791d8
cmp ax, 5
jne 0x140079221
cmp ebx, 0x50002
ja 0x1400791d8
jb 0x140079221
cmp esi, 0xe5d0086
jb 0x140079221
test r13, r13
je 0x1400791e5
mov dword [r13], 8
test r12, r12
je 0x1400791f2
mov dword [r12], 2
mov rsi, qword [rsp + 0x28]
test rsi, rsi
je 0x140079204
mov eax, 0x20
mov word [rsi], ax
mov r14d, 1
jmp 0x14007922b
mov rcx, rbx
call fcn.1400f8164
jmp 0x140079050
mov rcx, rdi
call fcn.1400f8164
mov r14d, dword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov edi, 9
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x140079368
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov r9d, edi
lea r8, [rbp + 0x430]
lea rdx, str._sd3d_d.dll
lea rcx, [rsp + 0x28]
call fcn.14000dfa0
mov rbx, qword [rsp + 0x28]
cmp dword [rbx - 8], 1
jle 0x140079288
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x28]
call fcn.14000dc90
mov rbx, qword [rsp + 0x28]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140079380
test eax, eax
js 0x1400792c0
test r13, r13
je 0x1400792a2
mov dword [r13], edi
test r12, r12
je 0x1400792ad
xor eax, eax
mov dword [r12], eax
test rsi, rsi
je 0x1400792ba
mov eax, 0x20
mov word [rsi], ax
mov r14d, 1
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1402a58a8
test eax, eax
js 0x14007935d
cmp eax, dword [rbx - 0xc]
jg 0x14007935d
mov dword [rbx - 0x10], eax
cdqe
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140079302
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc edi
cmp edi, 0x63
jl 0x140079230
test r14d, r14d
jne 0x140079331
xor edi, edi
lea ecx, [rdi + 0x20]
test r13, r13
je 0x140079320
mov dword [r13], edi
test r12, r12
je 0x140079329
mov dword [r12], edi
test rsi, rsi
je 0x140079331
mov word [rsi], cx
xor eax, eax
mov rcx, qword [rbp + 0x830]
xor rcx, rsp
call fcn.14029d880
mov rbx, qword [rsp + 0x998]
add rsp, 0x940
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.14000de90
nop
mov ecx, 0x80004005
call fcn.14000de90
int3