Function at 0x4056a2
Capabilities:
Check if file exists
Get file attributes
Identify system language via api

Disassembly:
push r13
push r12
push rsi
push rbx
sub rsp, 0x78
mov rax, qword [0x0040c110]
mov rsi, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov rdx, qword [0x0040c160]
mov r13, qword [rdx]
movzx edx, ax
lea rcx, [r13 + 0xc000]
add r13, 0xa800
call fcn.0040708f
call fcn.00404378
mov rax, qword [0x0040c0f0]
mov rbx, qword [0x0040c0d0]
mov rcx, r13
mov eax, dword [rax]
mov dword [rbx + 0x1c], 0x10000
and eax, 0x20
mov dword [rbx], eax
call fcn.00407602
test eax, eax
jne 0x4057d4
movsxd rdx, dword [rsi + 0x68]
test edx, edx
je 0x4057d4
mov rax, qword [0x0040c0a0]
movsxd r10, dword [rsi + 0x64]
add rdx, rdx
mov r9, qword [0x0040c1c0]
mov rcx, qword [rax + 0x24]
movsxd rax, dword [rsi + 0x6c]
mov dword [rsp + 0x20], 0
add rax, rax
add rdx, rcx
lea r8, [rax + rcx]
mov rcx, r10
call fcn.00406ff7
mov r12, qword [0x0040c1c0]
mov ax, word [r12]
test ax, ax
je 0x4057d4
cmp ax, 0x22
jne 0x40577f
lea rcx, [r12 + 2]
mov edx, 0x22
add r12, 2
call fcn.00406af7
mov word [rax], 0
mov rcx, r12
call sub.KERNEL32.dll_lstrlenW
cdqe
add rax, rax
lea rcx, [r12 + rax - 8]
cmp r12, rcx
jae 0x4057c1
lea rdx, str..exe
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4057c1
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4057b9
test al, 0x10
jne 0x4057c1
mov rcx, r12
call fcn.00406b1f
mov rcx, r12
call fcn.0040717c
mov rcx, r13
mov rdx, rax
call fcn.00407161
mov rcx, r13
call fcn.00407602
test eax, eax
jne 0x4057ee
mov edx, dword [rsi + 0x138]
mov rcx, r13
call fcn.004072cf
mov r13, qword [0x0040c100]
mov dword [rsp + 0x28], 0x8040
xor r9d, r9d
mov r8d, 1
mov dword [rsp + 0x20], 0
mov edx, 0x67
mov rcx, qword [r13]
call qword [sym.imp.USER32.dll_LoadImageW]
cmp dword [rsi + 0x70], 0xffffffff
mov qword [0x00436e60], rax
je 0x4058f1
mov rdx, qword [0x0040c030]
lea r12, [0x0040b54a]
mov qword [0x00438ee0], rax
lea rcx, [0x00438ec0]
mov qword [0x00438f00], r12
mov qword [0x00438ec8], rdx
mov rdx, qword [r13]
mov qword [0x00438ed8], rdx
call qword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x405876
xor r12d, r12d
jmp 0x4059fd
xor r9d, r9d
lea r8, [rsp + 0x60]
xor edx, edx
mov ecx, 0x30
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
mov ecx, dword [rsp + 0x64]
mov edx, dword [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x58], 0
mov rax, qword [r13]
mov r9d, 0x80000000
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x20], edx
mov qword [rsp + 0x48], 0
sub eax, ecx
mov ecx, pe_nt_image_headers64
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x68]
mov qword [rsp + 0x40], 0
sub eax, edx
mov rdx, r12
mov dword [rsp + 0x30], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [0x00438f30], rax
xor ecx, ecx
call fcn.0040351f
mov r12d, eax
test eax, eax
jne 0x4059eb
call fcn.00404378
cmp dword [rbx + 0x20], 0
jne 0x4059cd
mov rcx, qword [0x00438f30]
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
lea rcx, str.RichEd20
call fcn.004078e0
test rax, rax
jne 0x405941
lea rcx, str.RichEd32
call fcn.004078e0
xor ecx, ecx
mov rbx, qword [sym.imp.USER32.dll_GetClassInfoW]
lea r8, [0x00438ec0]
lea rdx, str.RichEdit20W
call rbx
test eax, eax
jne 0x40598b
xor ecx, ecx
lea r8, [0x00438ec0]
lea rdx, str.RichEdit
call rbx
lea rax, str.RichEdit20W
lea rcx, [0x00438ec0]
mov qword [0x00438f00], rax
call qword [sym.imp.USER32.dll_RegisterClassW]
mov eax, dword [0x00436e58]
lea r9, [0x00404ce9]
xor r8d, r8d
mov qword [rsp + 0x20], 0
mov rcx, qword [r13]
lea edx, [rax + 0x69]
movzx edx, dx
call qword [sym.imp.USER32.dll_DialogBoxParamW]
mov ecx, 5
mov r12d, eax
call fcn.0040351f
mov ecx, 1
call fcn.00404220
jmp 0x4059fd
xor ecx, ecx
call fcn.00404477
test eax, eax
je 0x4059f3
cmp dword [0x00436e50], 0
jne 0x4059eb
mov ecx, 2
call fcn.0040351f
mov r12d, 2
jmp 0x4059fd
mov ecx, 1
call fcn.0040351f
mov eax, r12d
add rsp, 0x78
pop rbx
pop rsi
pop r12
pop r13
ret