Function at 0x140049420
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0xc0], rbx
mov rsi, rdx
mov r14, rcx
xor edi, edi
mov dword [rbp - 0x58], edi
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x140049b25
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea r15, [0x140393240]
mov rdx, r15
mov rcx, rsi
call fcn.1400168b0
lea rbx, [rdi - 1]
test al, al
jne 0x1400494aa
mov rax, rbx
inc rax
cmp word [r15 + rax*2], 0
jne 0x140049490
mov r8d, eax
mov rdx, r15
mov rcx, rsi
call fcn.140016ad0
nop
mov dword [rbp - 0x58], 1
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x140049b30
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x48], rax
mov rdx, r15
lea rcx, [rbp - 0x48]
call fcn.1400168b0
test al, al
jne 0x1400494fe
mov rax, rbx
inc rax
cmp word [r15 + rax*2], 0
jne 0x1400494e3
mov r8d, eax
mov rdx, r15
lea rcx, [rbp - 0x48]
call fcn.140016ad0
nop
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x140049b3b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
mov rdx, r15
lea rcx, [rbp - 0x50]
call fcn.1400168b0
test al, al
jne 0x14004954b
mov rax, rbx
inc rax
cmp word [r15 + rax*2], 0
jne 0x140049530
mov r8d, eax
mov rdx, r15
lea rcx, [rbp - 0x50]
call fcn.140016ad0
nop
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x140049b46
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x58], rax
mov rdx, r15
lea rcx, [rbp + 0x58]
call fcn.1400168b0
test al, al
jne 0x14004959b
mov rax, rbx
nop dword [rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x140049580
mov r8d, eax
mov rdx, r15
lea rcx, [rbp + 0x58]
call fcn.140016ad0
nop
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x140049b1a
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x50], rax
mov rdx, r15
lea rcx, [rbp + 0x50]
call fcn.1400168b0
test al, al
jne 0x1400495eb
mov rax, rbx
nop dword [rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x1400495d0
mov r8d, eax
mov rdx, r15
lea rcx, [rbp + 0x50]
call fcn.140016ad0
nop
lea rdx, [r14 + 0x88]
mov rcx, rsi
call fcn.140016d50
lea rdx, str.Users_Manual_
mov rax, rbx
inc rax
cmp word [rdx + rax*2], 0
jne 0x140049604
mov r8d, eax
mov rcx, rsi
call fcn.140016630
mov rdx, rsi
lea rcx, [rbp + 0x50]
call fcn.140016d50
lea rdx, str.English
mov rax, rbx
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x140049630
mov r8d, eax
lea rcx, [rbp + 0x50]
call fcn.140016630
mov ecx, edi
mov rax, qword [r14 + 0x10]
movzx edx, word [rax + 0x564]
lea rax, [0x140451bc8]
lea r8, [0x140451dc8]
cmp dx, word [rax]
je 0x140049673
inc ecx
add rax, 0x10
cmp rax, r8
jl 0x140049661
jmp 0x1400496a6
movsxd rax, ecx
add rax, rax
lea rdx, str.Arabic
mov rdx, qword [rdx + rax*8]
test rdx, rdx
je 0x14004969a
mov rdi, rbx
nop dword [rax]
inc rdi
cmp word [rdx + rdi*2], 0
jne 0x140049690
mov r8d, edi
lea rcx, [rbp + 0x58]
call fcn.140016630
mov rdx, qword [rbp + 0x58]
mov r8d, dword [rdx - 0x10]
mov rcx, rsi
call fcn.140016630
lea r12, str..xps
mov r8, r12
mov rdx, rsi
lea rcx, [rbp - 0x38]
call fcn.1400239d0
mov rdi, rax
mov rdx, qword [rax]
movzx ecx, word [rdx]
lea r13, str..pdf
cmp cx, word [0x140393240]
jne 0x1400496eb
add rdx, 0xffffffffffffffe8
jmp 0x140049704
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rdx, qword [rdi]
sub rdx, 0x18
cmp eax, 0xffffffff
jne 0x140049851
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049719
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, r13
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.1400239d0
mov rdi, rax
mov rdx, qword [rax]
movzx ecx, word [rdx]
cmp cx, word [0x140393240]
jne 0x140049740
add rdx, 0xffffffffffffffe8
jmp 0x140049759
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rdx, qword [rdi]
sub rdx, 0x18
cmp eax, 0xffffffff
jne 0x14004981f
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14004976e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, str..chm
mov rdx, rsi
lea rcx, [rbp - 0x28]
call fcn.1400239d0
mov rdi, rax
mov rdx, qword [rax]
movzx ecx, word [rdx]
cmp cx, word [0x140393240]
jne 0x140049799
add rdx, 0xffffffffffffffe8
jmp 0x1400497ae
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rdx, qword [rdi]
sub rdx, 0x18
cmp eax, 0xffffffff
jne 0x1400497ee
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400497c3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop word [rax + rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x1400497d0
mov r8d, eax
mov rdx, r15
mov rcx, rsi
call fcn.140016ad0
jmp 0x140049889
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049803
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
lea rcx, str..chm
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140049810
mov rdx, rcx
jmp 0x14004987e
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049834
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop word [rax + rax]
inc rax
cmp word [r13 + rax*2], 0
jne 0x140049840
mov rdx, r13
jmp 0x14004987e
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049866
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop dword [rax]
inc rax
cmp word [r12 + rax*2], 0
jne 0x140049870
mov rdx, r12
mov r8d, eax
mov rcx, rsi
call fcn.140016630
mov rax, qword [rsi]
movzx eax, word [rax]
cmp ax, word [0x140393240]
jne 0x140049a87
mov rax, qword [r14 + 0x10]
mov ecx, 0x409
cmp word [rax + 0x564], cx
je 0x140049a87
mov r8, r12
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x20]
call fcn.1400239d0
mov rdi, rax
mov rax, qword [rax]
movzx ecx, word [rax]
cmp cx, word [0x140393240]
jne 0x1400498da
lea rdx, [rax - 0x18]
jmp 0x1400498f3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rdx, qword [rdi]
sub rdx, 0x18
cmp eax, 0xffffffff
jne 0x140049a41
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049908
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, r13
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x18]
call fcn.1400239d0
mov rdi, rax
mov rax, qword [rax]
movzx ecx, word [rax]
cmp cx, word [0x140393240]
jne 0x140049930
lea rdx, [rax - 0x18]
jmp 0x140049949
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rdx, qword [rdi]
sub rdx, 0x18
cmp eax, 0xffffffff
jne 0x140049a10
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14004995e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r14, str..chm
mov r8, r14
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x40]
call fcn.1400239d0
mov rdi, rax
mov rdx, qword [rax]
movzx ecx, word [rdx]
cmp cx, word [0x140393240]
jne 0x14004998d
add rdx, 0xffffffffffffffe8
jmp 0x1400499a2
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rdx, qword [rdi]
sub rdx, 0x18
cmp eax, 0xffffffff
jne 0x1400499de
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400499b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop word [rax + rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x1400499c0
mov r8d, eax
mov rdx, r15
mov rcx, rsi
call fcn.140016ad0
jmp 0x140049a87
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400499f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop word [rax + rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x140049a00
mov rdx, r14
jmp 0x140049a6e
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049a25
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop dword [rax + rax]
inc rax
cmp word [r13 + rax*2], 0
jne 0x140049a30
mov rdx, r13
jmp 0x140049a6e
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049a56
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
nop dword [rax]
inc rax
cmp word [r12 + rax*2], 0
jne 0x140049a60
mov rdx, r12
mov r8d, eax
lea rcx, [rbp + 0x50]
call fcn.140016630
lea rdx, [rbp + 0x50]
mov rcx, rsi
call fcn.140016d50
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049aa5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049ac3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140049ae1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x140049afc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rsi
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140012800
nop
mov ecx, 0x80004005
call fcn.140012800
int3
mov ecx, 0x80004005
call fcn.140012800
nop
mov ecx, 0x80004005
call fcn.140012800
nop
mov ecx, 0x80004005
call fcn.140012800
int3