Function at 0x180047560
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x198]
sub rsp, 0x280
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x18012c3a8]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov rsi, rcx
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x60]
call fcn.1800abaa0
xor edi, edi
mov qword [rsp + 0x48], rdi
mov r14d, edi
lea rcx, str.i18n.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rbx, rax
test rax, rax
jne 0x18004788c
cmp word [rsi + 0x64c], di
jbe 0x18004773d
mov edx, 0x104
lea rcx, [rsp + 0x60]
lea r8, [rsp + 0x60]
mov rax, rsi
sub rax, r8
lea r8, [rax + 0x64c]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x180047623
movzx eax, word [r8 + rcx]
test ax, ax
je 0x180047623
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x180047600
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rdx, str.i18n.dll
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18004773d
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1800476a7
lea r9, [0x1800f7d08]
lea r8, [0x1800f7d08]
xor edx, edx
xor ecx, ecx
call fcn.1800689dc
jmp 0x18004773d
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.1800680cc
mov rcx, rbx
test eax, eax
jne 0x1800476c6
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18004773d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x40], 1
jbe 0x18004773d
mov eax, dword [0x180132740]
test al, 1
jne 0x180047711
or eax, 1
mov dword [0x180132740], eax
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.AddDllDirectory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
setne al
mov byte [0x180132744], al
jmp 0x180047718
movzx eax, byte [0x180132744]
neg al
sbb r8d, r8d
and r8d, 0x800
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [0x1800d4958]
mov rbx, rax
test rax, rax
jne 0x18004788c
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, qword [0x180131308]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x180047760
xor eax, eax
jmp 0x180047908
lea rdx, [0x1800fce34]
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.i18n.dll
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180047759
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1800477e7
lea r9, [0x1800f7d08]
lea r8, [0x1800f7d08]
xor edx, edx
xor ecx, ecx
call fcn.1800689dc
mov rbx, rdi
jmp 0x18004787c
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.1800680cc
mov rcx, rbx
test eax, eax
jne 0x180047809
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, rdi
jmp 0x18004787c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x40], 1
ja 0x18004781b
mov rbx, rdi
jmp 0x18004787c
mov eax, dword [0x180132740]
test al, 1
jne 0x180047859
or eax, 1
mov dword [0x180132740], eax
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.AddDllDirectory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
setne al
mov byte [0x180132744], al
jmp 0x180047860
movzx eax, byte [0x180132744]
neg al
sbb r8d, r8d
and r8d, 0x800
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [0x1800d4958]
mov rbx, rax
test rbx, rbx
setne dil
test rbx, rbx
je 0x180047759
lea rdx, str.CreateI18N
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1800478e9
lea rcx, [rsp + 0x48]
call rax
test eax, eax
je 0x1800478e9
lea rdx, [0x1800fce34]
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea rdx, [rsp + 0x60]
call qword [rax + 0x40]
test eax, eax
je 0x1800478e9
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov dword [rsi + 0xc6c], eax
mov r14d, 1
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1800478f8
mov rdx, qword [rcx]
call qword [rdx]
test edi, edi
je 0x180047905
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, r14d
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.18008f850
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret