Function at 0x140088690
Capabilities:
Check if file exists
Enumerate gui resources
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
mov eax, 0x36a0
call fcn.1400a7800
sub rsp, rax
xor r12d, r12d
lea rcx, str.comctl32.dll
mov rbp, r8
mov dword [rsp + 0x70], 8
mov dword [rsp + 0x74], 0xff
mov ebx, r12d
mov esi, r12d
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
mov rdi, rax
je 0x14008873a
lea rdx, str.InitCommonControlsEx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140088707
lea rcx, [rsp + 0x70]
lea esi, [r12 + 1]
call rax
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test esi, esi
je 0x14008873a
test ebx, ebx
jne 0x140088740
lea r9d, [rbx + 0x30]
lea r8, str.Error
lea rdx, str.Error:_Cannot_load_the_common_control_classes.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
lea eax, [rbx + 1]
jmp 0x140088bda
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.14007f1c0
mov ecx, 0x8001
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
xor ecx, ecx
mov dword [0x1400c20d8], 0x11223344
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [0x14007f5f0]
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
lea rcx, [rsp + 0x2c0]
mov dword [rsp + 0x40], 0x400
mov dword [rsp + 0x44], 0x100
mov dword [rsp + 0x20], r12d
mov dword [rsp + 0x24], r12d
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x5c], 0x20
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0x58], r12d
mov dword [rsp + 0x68], r12d
call fcn.140084ab0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0xa30], rdx
mov rdx, rbp
call fcn.140092040
mov rbx, qword [rsp + 0xa30]
mov rsi, r12
cmp dword [rbx + 0x48], esi
mov edi, r12d
jle 0x140088846
cmp r12d, dword [rbx + 0x48]
jge 0x14008881f
test rsi, rsi
js 0x14008881a
cmp edi, dword [rbx + 0x28]
jge 0x14008881a
mov rax, qword [rbx + 0x10]
mov ecx, dword [rax + rsi*4]
mov rax, qword [rbx + 0x18]
lea rdx, [rax + rcx*2]
jmp 0x140088826
mov rdx, r12
jmp 0x140088826
lea rdx, [0x1400a89b8]
lea rcx, str._savelangfile
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140088923
add edi, 1
add rsi, 1
cmp edi, dword [rbx + 0x48]
jl 0x1400887ff
lea rcx, [rsp + 0xb2]
xor edx, edx
mov r8d, 0x208
mov word [rsp + 0xb0], r12w
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0xb0]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0xb0]
mov dx, 0x2e
call sub.msvcrt.dll_wcsrchr
test rax, rax
je 0x140088894
mov word [rax], r12w
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0xb0]
repne scasw ax, word [rdi]
mov rax, qword [str._lng.ini]
lea rcx, [rsp + 0xb0]
mov qword [rdi - 2], rax
mov rax, qword [0x1400a98d8]
mov qword [rdi + 6], rax
movzx eax, word [0x1400a98e0]
mov word [rdi + 0xe], ax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400888e6
lea rcx, [rsp + 0xb0]
call fcn.14008f610
mov rdi, qword [rsp + 0xa30]
mov ebx, r12d
mov rsi, r12
cmp ebx, dword [rdi + 0x48]
jge 0x140088a0b
test rsi, rsi
js 0x1400889d6
cmp ebx, dword [rdi + 0x28]
jge 0x1400889d6
mov rax, qword [rdi + 0x10]
mov ecx, dword [rax + rsi*4]
mov rax, qword [rdi + 0x18]
lea rdx, [rax + rcx*2]
jmp 0x1400889d9
test edi, edi
js 0x140088846
lea rax, [0x1400c16a0]
lea rcx, [rsp + 0xb2]
xor edx, edx
mov r8d, 0x208
mov word [rsp + 0xb0], r12w
mov qword [0x1400c4f20], rax
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0xb0]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0xb0]
mov dx, 0x2e
call sub.msvcrt.dll_wcsrchr
test rax, rax
je 0x140088987
mov word [rax], r12w
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0xb0]
repne scasw ax, word [rdi]
mov rax, qword [str._lng.ini]
xor ecx, ecx
mov qword [rdi - 2], rax
mov rax, qword [0x1400a98d8]
mov qword [rdi + 6], rax
movzx eax, word [0x1400a98e0]
mov word [rdi + 0xe], ax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [rsp + 0xb0]
mov rcx, rax
call fcn.140090760
jmp 0x140088b61
mov rdx, r12
lea rcx, str._deleteregkey
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400889fb
add ebx, 1
add rsi, 1
cmp ebx, dword [rdi + 0x48]
jl 0x1400888fd
jmp 0x140088a03
test ebx, ebx
jns 0x140088b61
mov rdi, qword [rsp + 0xa30]
cmp dword [rdi + 0x48], 1
jle 0x140088a3e
lea rcx, [rsp + 0x2c0]
call fcn.140087530
test eax, eax
je 0x140088a3e
lea rcx, [rsp + 0x2c0]
call fcn.140082a40
lea rcx, [rsp + 0x20]
call fcn.140091b00
jmp 0x140088bd8
lea rcx, [rsp + 0x2c0]
call fcn.1400845a0
cmp dword [rsp + 0x544], 3
mov rcx, qword [rsp + 0x4d0]
mov edx, 3
je 0x140088a67
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [rsp + 0x4d0]
call qword [sym.imp.USER32.dll_UpdateWindow]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, 0x67
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadAcceleratorsW]
lea rcx, [rsp + 0x78]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x500], rax
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x140088b61
nop
nop
nop
mov rdx, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x4d0]
lea r8, [rsp + 0x78]
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x140088b46
mov rcx, qword [0x1400c4858]
mov rdi, qword [rsp + 0xa50]
test rcx, rcx
je 0x140088b02
lea rdx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x140088b46
mov rcx, qword [rsp + 0x4d0]
lea rdx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x140088b46
test rdi, rdi
je 0x140088b30
lea rdx, [rsp + 0x78]
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x140088b46
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_DispatchMessageW]
lea rcx, [rsp + 0x78]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x140088ac0
lea rcx, [rsp + 0x2c0]
call fcn.140082a40
mov rcx, qword [rsp + 0x38]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
mov rax, qword [rsp + 0x50]
mov rcx, r12
test rax, rax
mov dword [rsp + 0x20], r12d
mov dword [rsp + 0x24], r12d
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x28], r12d
je 0x140088bba
mov rcx, rax
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0x58], r12d
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
xor eax, eax
lea r11, [rsp + 0x36a0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret