Function at 0x1400581b0
Capabilities:
Get common file path
Get graphical window text
Read .ini file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x858]
sub rsp, 0x958
mov rax, qword [0x1401f7280]
xor rax, rsp
mov qword [rbp + 0x840], rax
xor eax, eax
or r14, 0xffffffffffffffff
mov r12d, r9d
mov ebx, r8d
mov edi, edx
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov rsi, rcx
mov qword [rsp + 0x48], rcx
test r9d, r9d
jne 0x14005821f
mov eax, dword [0x1401fbbe0]
test ebx, ebx
cmovne eax, dword [0x1401fbbec]
mov dword [rsp + 0x50], eax
mov ecx, 1
call fcn.140059780
mov rcx, qword [0x1401fbba0]
lea r9, [0x140032f90]
mov r8, rax
lea rax, [rsp + 0x50]
mov edx, 0x559
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_DialogBoxParamW]
cmp rax, 1
je 0x14005825c
xor eax, eax
jmp 0x1400587fd
mov edx, 0x7f02
xor ecx, ecx
mov qword [rsp + 0x9a0], r13
mov qword [rsp + 0x950], r15
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
lea rdx, [rbp + 0x210]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r15, [0x140208860]
lea r9, [rbp + 0x420]
lea r8, [rbp + 0x210]
lea rdx, str.SavePath
lea rcx, str.MultiExtract
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea r9, [rsp + 0x68]
lea r8, [0x140182d20]
lea rdx, str.SaveExtension
lea rcx, str.MultiExtract
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 5
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x68]
call fcn.1400fa1a4
mov qword [rsp + 0x28], r15
lea r15, str._page_
lea r9, [rbp - 0x80]
lea rdx, str.Suffix
lea rcx, str.MultiExtract
mov r8, r15
mov dword [rsp + 0x20], 0x40
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp - 0x80]
mov rax, r14
nop word [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140058340
xor r13d, r13d
test rax, rax
jne 0x140058373
mov ecx, r13d
nop word [rax + rax]
movzx eax, word [rcx + r15]
lea rcx, [rcx + 2]
mov word [rsp + rcx + 0x7e], ax
test ax, ax
jne 0x140058360
lea rcx, [rbp + 0x420]
call fcn.1400e8b30
test r12d, r12d
je 0x1400583d2
mov rcx, qword [0x1401fbae0]
test rcx, rcx
je 0x1400583aa
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [0x1401fbae0]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov qword [0x1401fbae0], r13
mov edx, 1
xor ecx, ecx
call fcn.14005b3c0
mov rcx, qword [0x1401fbb48]
lea rdx, [rbp + 0x630]
mov r8d, 0x104
call qword [sym.imp.USER32.dll_GetWindowTextW]
jmp 0x140058407
lea rdx, [rbp]
mov rcx, rsi
sub rdx, rsi
nop dword [rax]
movzx eax, word [rcx]
lea rcx, [rcx + 2]
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x1400583e0
lea rdx, [rbp + 0x210]
lea rcx, [rbp]
mov r8d, 4
call fcn.1400ed200
cmp dword [rsp + 0x60], 1
mov r15d, r13d
mov dword [rsp + 0x34], r13d
jne 0x140058427
mov r15d, dword [rsp + 0x58]
dec r15d
cmovs r15d, r13d
mov dword [rsp + 0x34], r15d
test ebx, ebx
je 0x1400584fa
test r12d, r12d
jne 0x1400584fa
cmp dword [rsp + 0x60], 1
mov ecx, dword [0x1401fbbec]
mov rbx, r13
jne 0x140058453
mov eax, dword [rsp + 0x5c]
cmp ecx, eax
cmovl eax, ecx
mov ecx, eax
movsxd rax, r15d
movsxd rsi, ecx
cmp rax, rsi
jge 0x1400584ea
lea rdi, [rax + rax*2]
shl rdi, 4
sub rsi, rax
nop dword [rax]
mov rcx, qword [0x1401fbc78]
test rcx, rcx
je 0x14005848b
mov rcx, qword [rdi + rcx + 8]
xor edx, edx
call fcn.14004e7c0
mov rbx, rax
test rbx, rbx
je 0x1400584d4
lea ecx, [r15 + 1]
lea rax, [rsp + 0x68]
lea r9, [rbp - 0x80]
mov dword [rsp + 0x28], ecx
lea r8, [rbp + 0x210]
lea rdx, [rbp + 0x420]
mov rcx, rbx
mov r14d, r15d
mov qword [rsp + 0x20], rax
call fcn.14005dfa0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rbx, r13
inc r15d
add rdi, 0x30
dec rsi
jne 0x140058470
cmp r14d, 0xffffffff
jne 0x1400587d2
mov ecx, 0x30
call qword [sym.imp.USER32.dll_MessageBeep]
jmp 0x1400587d2
mov rcx, qword [0x1401fbae0]
test edi, edi
jle 0x140058796
nop dword [rax]
test r12d, r12d
je 0x140058570
movzx r9d, word [rbp + 0x8b0]
lea r8, [rbp]
mov edx, r13d
mov rcx, rsi
mov dword [rsp + 0x20], 0x104
call fcn.1400ec2b0
lea rdx, [rbp + 0x210]
lea rcx, [rbp]
mov r8d, 4
call fcn.1400ed200
lea rdx, [rsp + 0x30]
lea rcx, [rbp]
call fcn.1400e5350
mov edx, dword [rsp + 0x30]
lea rcx, [rbp]
call fcn.1400a4710
mov rcx, qword [0x1401fbae0]
mov esi, eax
jmp 0x140058580
mov eax, dword [0x1401f7120]
mov esi, dword [0x1401fbbe0]
mov dword [rsp + 0x30], eax
cmp esi, 1
jle 0x140058785
cmp dword [rsp + 0x60], 1
mov r14d, esi
jne 0x14005859f
mov r14d, dword [rsp + 0x5c]
cmp esi, r14d
cmovl r14d, esi
mov ebx, r15d
cmp r15d, r14d
jge 0x140058750
xor r15d, r15d
nop
test rcx, rcx
je 0x1400585cf
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [0x1401fbae0]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov qword [0x1401fbae0], r15
mov edx, dword [rsp + 0x30]
lea r9, [0x1402094a8]
lea rcx, [rbp]
mov r8d, ebx
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
call fcn.1400a4220
mov rcx, rax
mov qword [0x1401fbae0], rax
test rax, rax
je 0x140058740
lea rax, [rsp + 0x68]
lea edi, [rbx + 1]
lea r9, [rbp - 0x80]
lea r8, [rbp + 0x210]
lea rdx, [rbp + 0x420]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call fcn.14005dfa0
test r12d, r12d
jne 0x1400586f3
mov rcx, qword [0x1401fbae0]
lea r9, [0x1402094a8]
lea r8, [0x1402094ac]
lea rdx, [0x1402094b0]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call fcn.1400eb570
lea ecx, [r12 + 1]
call fcn.14005d3c0
call fcn.140056fd0
mov rcx, qword [0x1401fbb08]
lea r8d, [r12 + 1]
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [0x1401fbb08]
call qword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [r12 + 4]
call fcn.1400d8990
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
lea rdx, str.Page__d__d
lea rcx, [0x140209da0]
mov r9d, esi
mov r8d, edi
mov dword [rsp + 0x40], ebx
call fcn.1400f98c8
mov rcx, qword [0x1401fbb30]
lea rdx, [0x140209da0]
call qword [sym.imp.USER32.dll_SetWindowTextW]
mov rcx, qword [0x1401fbb30]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov edi, dword [rsp + 0x38]
jmp 0x140058739
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edi
mov edi, dword [rsp + 0x38]
lea r8d, [r13 + 1]
lea rdx, str.File:__d__d__Page__d__d
lea rcx, [0x140209da0]
mov r9d, edi
call fcn.1400f98c8
mov rcx, qword [0x1401fbb48]
lea rdx, [0x140209da0]
call qword [sym.imp.USER32.dll_SetWindowTextW]
mov rcx, qword [0x1401fbb48]
call fcn.1400ef5a0
mov rcx, qword [0x1401fbae0]
inc ebx
cmp ebx, r14d
jl 0x1400585b0
mov r15d, dword [rsp + 0x34]
test r12d, r12d
jne 0x140058785
mov r14, qword [rsp + 0x40]
cmp r14d, 0xffffffff
je 0x140058769
mov dword [0x1401fbbe4], r14d
jmp 0x140058774
mov ecx, 0x30
call qword [sym.imp.USER32.dll_MessageBeep]
mov ecx, 0x20
call fcn.1400d8990
mov rcx, qword [0x1401fbae0]
mov rsi, qword [rsp + 0x48]
inc r13d
cmp r13d, edi
jl 0x140058510
test r12d, r12d
je 0x1400587d2
test rcx, rcx
je 0x1400587be
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [0x1401fbae0]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov qword [0x1401fbae0], 0
mov rcx, qword [0x1401fbb48]
lea rdx, [rbp + 0x630]
call qword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov r15, qword [rsp + 0x950]
mov r13, qword [rsp + 0x9a0]
mov eax, 1
mov rcx, qword [rbp + 0x840]
xor rcx, rsp
call fcn.1400f9a80
add rsp, 0x958
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret