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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0xb20
mov qword [0x1400267c8], rcx
mov rbp, r8
mov edi, 0x104
lea rcx, [rax - 0x977]
xor r13d, r13d
xor edx, edx
mov r8, rdi
mov byte [rax - 0x978], r13b
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0xb1]
mov r8, rdi
xor edx, edx
mov byte [rsp + 0xb0], r13b
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x1c0]
mov r8d, edi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov al, byte [rsp + 0x1c0]
lea r11, [rsp + 0x1c0]
lea rdx, [rsp + 0x1c0]
jmp 0x140014516
cmp al, 0x5c
je 0x14001450b
cmp al, 0x2f
jne 0x14001450f
lea rdx, [r11 + 1]
add r11, 1
mov al, byte [r11]
cmp al, r13b
jne 0x140014503
lea rcx, [rsp + 0xb0]
call fcn.14001eea4
lea rcx, [rsp + 0xb0]
mov edx, 0x2e
call sub.msvcrt.dll_strchr
cmp rax, r13
je 0x140014542
mov byte [rax], r13b
lea rdx, str._res.dll
lea rcx, [rsp + 0xb0]
call sub.msvcrt.dll_strcat
lea rcx, [rsp + 0x2d1]
mov r8, rdi
xor edx, edx
mov byte [rsp + 0x2d0], r13b
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x3e1]
mov r8, rdi
xor edx, edx
mov byte [rsp + 0x3e0], r13b
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x3e0]
call fcn.140008a24
lea rcx, [rsp + 0x3e0]
call sub.msvcrt.dll_strlen
lea rcx, [rsp + 0xb0]
mov rbx, rax
call sub.msvcrt.dll_strlen
lea rcx, [rbx + rax + 1]
cmp rcx, rdi
jae 0x1400145dd
lea r8, [rsp + 0x2d0]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x3e0]
call fcn.140008b18
jmp 0x1400145e5
mov byte [rsp + 0x2d0], r13b
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14001460d
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x140029920], rax
lea rcx, str.comctl32.dll
mov dword [rsp + 0xb40], 8
mov dword [rsp + 0xb44], 0xff
mov ebx, r13d
mov esi, r13d
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp rax, r13
mov rdi, rax
je 0x140014672
lea rdx, str.InitCommonControlsEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp rax, r13
je 0x140014664
lea rcx, [rsp + 0xb40]
mov esi, 1
call rax
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp esi, r13d
jne 0x14001467d
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
mov ebx, 1
cmp ebx, r13d
jne 0x1400146a8
lea r8, str.Error
lea rdx, str.Error:_Cannot_load_the_common_control_classes.
mov r9d, gethostbyaddr
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov eax, 1
jmp 0x140014ab9
cmp qword [0x140029cc8], r13
jne 0x1400146e1
lea rcx, str.shell32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp rax, r13
mov qword [0x140029cc8], rax
je 0x1400146e1
lea rdx, str.SHGetSpecialFolderPathA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140029cc0], rax
call fcn.140008ae8
cmp dword [rax + 0x10], 2
jne 0x1400146f3
call fcn.140017f84
jmp 0x1400146f8
call fcn.140017eb0
lea rcx, [rsp + 0x4f0]
mov ebx, 0x20
mov dword [rsp + 0x50], 0x400
mov dword [rsp + 0x54], 0x100
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x34], r13d
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x6c], ebx
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x68], r13d
call fcn.140013ec8
lea r11, [rsp + 0x30]
lea rcx, [rsp + 0x30]
mov rdx, rbp
mov qword [rsp + 0xb10], r11
call fcn.140009500
mov rcx, qword [rsp + 0xb10]
lea rdx, str._savelangfile
call fcn.1400096ac
cmp eax, r13d
jl 0x140014788
call fcn.14000a9d4
jmp 0x140014a50
call fcn.14000a8c4
mov rcx, qword [rsp + 0xb10]
mov edi, 5
cmp dword [rcx + 0x48], 1
jl 0x14001493f
cmp dword [rcx + 0x48], edi
jl 0x140014929
lea rdx, str._close
call fcn.1400096ac
cmp eax, r13d
jne 0x140014929
mov rcx, qword [rsp + 0xb10]
mov dword [rsp + 0x14c], ebx
mov qword [rsp + 0x140], r13
mov edx, dword [rcx + 0x48]
mov dword [rsp + 0x150], r13d
mov dword [rsp + 0x148], r13d
cmp edx, edi
mov dword [rsp + 0xc0], r13d
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xf8], r13
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xe0], r13
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0xf0], r13
mov dword [rsp + 0x15c], r13d
lea rbx, [0x140020db0]
jle 0x140014867
cmp dword [rcx + 0x28], edi
jle 0x140014862
mov rax, qword [rcx + 0x10]
mov r12d, dword [rax + 0x14]
add r12, qword [rcx + 0x18]
jmp 0x14001486a
mov r12, r13
jmp 0x14001486a
mov r12, rbx
cmp edx, 4
jle 0x140014887
cmp dword [rcx + 0x28], 4
jle 0x140014882
mov rax, qword [rcx + 0x10]
mov ebp, dword [rax + 0x10]
add rbp, qword [rcx + 0x18]
jmp 0x14001488a
mov rbp, r13
jmp 0x14001488a
mov rbp, rbx
cmp edx, 3
jle 0x1400148a7
cmp dword [rcx + 0x28], 3
jle 0x1400148a2
mov rax, qword [rcx + 0x10]
mov esi, dword [rax + 0xc]
add rsi, qword [rcx + 0x18]
jmp 0x1400148aa
mov rsi, r13
jmp 0x1400148aa
mov rsi, rbx
cmp edx, 2
jle 0x1400148c7
cmp dword [rcx + 0x28], 2
jle 0x1400148c2
mov rax, qword [rcx + 0x10]
mov edi, dword [rax + 8]
add rdi, qword [rcx + 0x18]
jmp 0x1400148ca
mov rdi, r13
jmp 0x1400148ca
mov rdi, rbx
cmp edx, 1
jle 0x1400148e5
cmp dword [rcx + 0x28], 1
jle 0x1400148e2
mov rax, qword [rcx + 0x10]
mov ebx, dword [rax + 4]
add rbx, qword [rcx + 0x18]
jmp 0x1400148e5
mov rbx, r13
lea rcx, [rsp + 0xb0]
call fcn.140017178
cmp eax, r13d
je 0x140014917
lea rcx, [rsp + 0xb0]
mov r9, rsi
mov r8, rdi
mov rdx, rbx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rbp
call fcn.140017850
lea rcx, [rsp + 0xb0]
call fcn.14001677c
jmp 0x140014a50
lea rcx, [rsp + 0x4f0]
call fcn.140014120
cmp eax, r13d
jne 0x140014a50
lea rcx, [rsp + 0x4f0]
call fcn.140013e04
mov r11, qword [rsp + 0xa70]
cmp dword [r11 + 0xb4], r13d
je 0x140014978
cmp dword [r11 + 0xa8], r13d
je 0x140014978
mov rcx, qword [rsp + 0x600]
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
jmp 0x1400149a2
cmp dword [r11 + 8], 3
mov rcx, qword [rsp + 0x600]
mov edx, 3
je 0x14001498e
mov edx, edi
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [rsp + 0x600]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [0x1400267c8]
mov edx, 0x67
call qword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov rcx, qword [rsp + 0x600]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x415
mov qword [rsp + 0x630], rax
call qword [sym.imp.USER32.dll_PostMessageA]
jmp 0x140014a35
mov rdx, qword [rsp + 0x630]
mov rcx, qword [rsp + 0x600]
lea r8, [rsp + 0x80]
call qword [sym.imp.USER32.dll_TranslateAcceleratorA]
cmp eax, r13d
jne 0x140014a35
mov rcx, qword [0x140029918]
cmp rcx, r13
je 0x140014a19
lea rdx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_IsDialogMessageA]
cmp eax, r13d
jne 0x140014a35
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x80]
call qword [sym.imp.USER32.dll_DispatchMessageA]
lea rcx, [rsp + 0x80]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageA]
cmp eax, r13d
jne 0x1400149d7
lea rcx, [rsp + 0x4f0]
call fcn.14001405c
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x40]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x38], r13d
cmp rcx, r13
mov dword [rsp + 0x58], r13d
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x34], r13d
mov dword [rsp + 0x30], r13d
je 0x140014a9e
call sub.msvcrt.dll_free
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x68], r13d
call fcn.1400091b0
xor eax, eax
lea r11, [rsp + 0xb20]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret