Function at 0x1400a58e0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1860]
mov eax, 0x1960
call fcn.1400f9a20
sub rsp, rax
mov rax, qword [0x1401f7280]
xor rax, rsp
mov qword [rbp + 0x1850], rax
mov r14, rcx
mov qword [rsp + 0x40], rcx
xor edi, edi
lea rcx, [0x140208860]
mov rbx, r9
mov esi, r8d
mov dword [rsp + 0x38], r8d
mov r15, rdx
mov r13d, edi
mov r12d, edi
call fcn.14008cbb0
mov eax, dword [0x1401fbc58]
mov dword [rsp + 0x34], eax
mov eax, 1
lea rcx, [rbp + 0x200]
lea r8d, [rax + 0x7f]
xor edx, edx
mov dword [0x1401fbc58], eax
call fcn.1400f9ab0
test rbx, rbx
je 0x1400a5985
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], di
jne 0x1400a5970
test rax, rax
mov eax, 1
cmovne r13d, eax
lea rdx, [0x140181e34]
lea rcx, [rbp + 0xab0]
mov dword [rsp + 0x30], edi
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbp + 0x490]
lea rdx, str.Admin_SaveFormats
lea rcx, [0x140185d68]
mov r9d, 0x80
mov word [rbp + 0x490], di
call fcn.1400eae30
test eax, eax
jne 0x1400a59fe
lea rax, [0x140208860]
lea r9, [rbp + 0x490]
lea r8, [0x140181e34]
mov qword [rsp + 0x28], rax
lea rdx, str.SaveFormats
lea rcx, [0x140185d68]
mov dword [rsp + 0x20], 0x80
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp + 0x490]
or rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], di
jne 0x1400a5a10
test rax, rax
je 0x1400a5b06
lea rcx, [rbp + 0x490]
mov edx, 0x7c
mov dword [rsp + 0x3c], 1
call fcn.1400e8af0
mov r14d, edi
mov esi, edi
mov r12d, eax
test eax, eax
jle 0x1400a5af6
nop dword [rax + rax]
lea r8, [rbp + 0x280]
lea rcx, [rbp + 0x490]
mov r9d, 0x7c
mov edx, esi
mov dword [rsp + 0x20], 0x104
call fcn.1400ec2b0
lea rcx, [rbp + 0x280]
call fcn.1400aa620
lea rdx, [rbp - 0x10]
lea ecx, [rax - 1]
call fcn.1400a5780
lea rcx, [rbp - 0x10]
or rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], di
jne 0x1400a5a93
test rax, rax
je 0x1400a5ae2
lea r8, [rbp + 0x280]
lea rdx, str.._s
lea rcx, [rbp + 0x8a0]
call fcn.1400f98c8
lea rax, [rsp + 0x30]
lea r9, [rbp + 0x8a0]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
inc r14d
inc esi
cmp esi, r12d
jl 0x1400a5a50
test r14d, r14d
jne 0x1400a5eed
mov ecx, 0x40
call qword [sym.imp.USER32.dll_MessageBeep]
jmp 0x1400a6541
lea rdx, [rbp - 0x10]
xor ecx, ecx
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..bmp
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 1
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..ecw
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 2
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..emf
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 3
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..gif
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 4
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..ico
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 5
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..jls
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 6
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..jp2
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 7
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..jpg_.jpeg
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 8
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..jng
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 9
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..jpm
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 0xa
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..pcx
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 0xb
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..pbm
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 0xc
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..pdf
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, InitCommonControls
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..pgm
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, InitCommonControls
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, [0x140184d98]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, InitCommonControls
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..ppm
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, InitCommonControls
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..raw
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..tga
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 0x12
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..tif
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
lea rdx, [rbp - 0x10]
mov ecx, 0x13
call fcn.1400a5780
lea rax, [rsp + 0x30]
lea r9, str..webp
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xab0]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.14002e730
jmp 0x1400a5efb
mov r14, qword [rsp + 0x40]
mov r12d, dword [rsp + 0x3c]
mov esi, dword [rsp + 0x38]
movsxd rax, dword [rsp + 0x30]
lea rcx, [rbp + 0xab0]
lea rdx, [0x140181e34]
lea rcx, [rcx + rax*2]
call qword [sym.imp.USER32.dll_wsprintfW]
mov rcx, qword [0x1401fbba0]
lea r8, [rbp + 0x590]
mov r9d, 0x80
mov edx, 0x504
call qword [sym.imp.USER32.dll_LoadStringW]
cmp esi, 1
je 0x1400a5f62
cmp esi, 2
jne 0x1400a5f81
mov rcx, qword [0x1401fbba0]
lea r9d, [rsi + 0x7e]
lea r8, [rbp + 0x590]
mov edx, 0x4e8a
call qword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x1400a5f81
mov rcx, qword [0x1401fbba0]
lea r8, [rbp + 0x590]
mov r9d, 0x80
mov edx, 0x4f5
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, [rbp + 0x13b0]
mov r8d, 4
mov rcx, r14
call fcn.1400ed200
lea rcx, [rbp + 0x8a0]
mov edx, 5
call fcn.140094e80
lea rax, [0x140208860]
lea r9, [rbp - 0x10]
mov qword [rsp + 0x28], rax
lea r8, [rbp + 0x8a0]
lea rdx, str.SaveDir
lea rcx, [0x140185d68]
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test esi, esi
jne 0x1400a60c1
lea r8d, [rsi + 3]
lea rdx, [rbp - 0x10]
mov rcx, r14
call fcn.1400ed200
lea r8d, [rsi + 8]
lea rdx, [rbp + 0x280]
mov rcx, r14
call fcn.1400ed200
test r12d, r12d
je 0x1400a601f
lea rdx, [rbp + 0x282]
lea rcx, [rbp + 0x490]
call fcn.1400aa580
jmp 0x1400a602b
lea rcx, [rbp + 0x282]
call fcn.1400aa620
mov esi, eax
mov rcx, rdi
movzx eax, word [rbp + rcx + 0x282]
lea rcx, [rcx + 2]
mov word [rbp + rcx + 0x1fe], ax
test ax, ax
jne 0x1400a6030
lea rcx, [rbp - 0x10]
or rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], di
jne 0x1400a6051
test rax, rax
jne 0x1400a60b6
test r13d, r13d
je 0x1400a6083
lea rcx, [rbp - 0x10]
sub rcx, rbx
nop dword [rax + rax]
movzx eax, word [rbx]
lea rbx, [rbx + 2]
mov word [rcx + rbx - 2], ax
test ax, ax
jne 0x1400a6070
jmp 0x1400a60b6
lea rax, [0x140208860]
lea r9, [rbp - 0x10]
lea r8, [rbp + 0x8a0]
mov qword [rsp + 0x28], rax
lea rdx, str.SaveDir
lea rcx, [0x140185d68]
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp esi, 0xffffffff
jne 0x1400a61b9
jmp 0x1400a60e1
test r13d, r13d
je 0x1400a60e1
lea rcx, [rbp - 0x10]
sub rcx, rbx
nop dword [rax]
movzx eax, word [rbx]
lea rbx, [rbx + 2]
mov word [rcx + rbx - 2], ax
test ax, ax
jne 0x1400a60d0
lea rax, [0x140208860]
lea r9, [rbp + 0x280]
lea r8, [0x140182d20]
mov qword [rsp + 0x28], rax
lea rdx, str.SaveExtension
lea rcx, [0x140185d68]
mov dword [rsp + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test r12d, r12d
je 0x1400a618a
lea rcx, [rbp + 0x490]
mov edx, 0x7c
call fcn.1400e8af0
mov ebx, edi
mov esi, eax
test eax, eax
jle 0x1400a6180
nop word [rax + rax]
lea r8, [rbp + 0x690]
lea rcx, [rbp + 0x490]
mov r9d, 0x7c
mov edx, ebx
mov dword [rsp + 0x20], 0x104
call fcn.1400ec2b0
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x690]
call fcn.1400f92fc
test eax, eax
je 0x1400a6185
inc ebx
cmp ebx, esi
jl 0x1400a6140
or esi, 0xffffffff
jmp 0x1400a6198
lea esi, [rbx + 1]
jmp 0x1400a6198
lea rcx, [rbp + 0x280]
call fcn.1400aa620
mov esi, eax
mov rcx, rdi
nop dword [rax + rax]
movzx eax, word [rbp + rcx + 0x280]
lea rcx, [rcx + 2]
mov word [rbp + rcx + 0x1fe], ax
test ax, ax
jne 0x1400a61a0
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x98
call fcn.1400f9ab0
mov r12d, 1
mov dword [rsp + 0x50], 0x98
mov ecx, r12d
call fcn.140059780
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x58], rax
mov rax, qword [0x1401fbba0]
mov dword [rsp + 0x78], edi
mov qword [rsp + 0x60], rax
lea rax, [rbp + 0xab0]
mov dword [rsp + 0x7c], esi
mov qword [rsp + 0x68], rax
lea rax, [rbp + 0x13b0]
mov dword [rbp - 0x78], 0x104
mov qword [rbp - 0x80], rax
lea rax, [rbp - 0x10]
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x590]
mov qword [rbp - 0x50], 0x88006c
mov qword [rbp - 0x58], rax
lea rax, [rbp + 0x200]
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x40], rax
lea rax, [0x1400a9940]
mov qword [rbp - 0x30], 0x541
mov qword [rbp - 0x38], rax
call qword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
test eax, eax
je 0x1400a6537
mov rcx, qword [rbp - 0x80]
mov rdx, r15
sub rdx, rcx
nop dword [rax + rax]
movzx eax, word [rcx]
lea rcx, [rcx + 2]
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x1400a6280
lea rdx, [rbp + 0x8a0]
mov r8d, 3
mov rcx, r15
call fcn.1400ed200
lea rdx, [rbp + 0x280]
mov r8d, 8
mov rcx, r15
call fcn.1400ed200
lea r8, [rbp + 0x200]
lea rdx, [0x140185df8]
lea rcx, [rbp + 0x690]
call fcn.1400f98c8
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x690]
call fcn.1400f92fc
test eax, eax
je 0x1400a6445
lea rdx, str..jpeg
lea rcx, [rbp + 0x280]
call fcn.1400f92fc
test eax, eax
jne 0x1400a6325
lea rcx, str..jpg
nop
movzx eax, word [rdi + rcx]
lea rdi, [rdi + 2]
mov word [rbp + rdi + 0x27e], ax
test ax, ax
jne 0x1400a6310
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x690]
call fcn.1400f92fc
lea rbx, [0x140208860]
test eax, eax
je 0x1400a644c
lea rdx, str.KeepExtCase
lea rcx, [0x140185d68]
mov r9, rbx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, r12d
jne 0x1400a6405
lea rdx, [rbp + 0x280]
mov r8d, 8
mov rcx, r14
call fcn.1400ed200
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x690]
call fcn.1400f92fc
lea rcx, [r15 - 2]
test eax, eax
jne 0x1400a63d5
nop word [rax + rax]
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x1400a63a0
lea r8, [rbp + 0x280]
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [r8 + rdx*2]
lea rdx, [rdx + 1]
mov word [rcx + rdx*2 - 2], ax
test ax, ax
jne 0x1400a63c0
jmp 0x1400a644c
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x1400a63d5
lea r8, [rbp + 0x690]
xor edx, edx
nop dword [rax]
movzx eax, word [r8 + rdx*2]
lea rdx, [rdx + 1]
mov word [rcx + rdx*2 - 2], ax
test ax, ax
jne 0x1400a63f0
jmp 0x1400a644c
lea rcx, [r15 - 2]
nop dword [rax]
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x1400a6410
lea r8, [rbp + 0x690]
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [r8 + rdx*2]
lea rdx, [rdx + 1]
mov word [rcx + rdx*2 - 2], ax
test ax, ax
jne 0x1400a6430
jmp 0x1400a644c
lea rbx, [0x140208860]
mov rcx, r15
call fcn.1400e7210
test eax, eax
je 0x1400a64e0
lea rdx, str.AskOverwriteSave
lea rcx, str.Others
mov r9, rbx
mov r8d, r12d
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x1400a64e0
mov rcx, qword [0x1401fbba0]
lea r8, [rbp + 0x12b0]
mov r9d, 0x80
mov edx, 0x4f6
call qword [sym.imp.USER32.dll_LoadStringW]
lea r8, [rbp + 0x12b0]
lea rdx, str._s:__s___n
lea rcx, [rbp + 0x15c0]
mov r9, r15
call fcn.1400f98c8
mov ecx, r12d
call fcn.140059780
lea r8, [0x140209d60]
lea rdx, [rbp + 0x15c0]
mov rcx, rax
mov r9d, 0x124
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
je 0x1400a6537
cmp dword [rsp + 0x38], 0
jle 0x1400a6528
lea r8, [rbp + 0x200]
lea rdx, str.SaveExtension
lea rcx, [0x140185d68]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test r13d, r13d
jne 0x1400a6528
lea r8, [rbp + 0x8a0]
lea rdx, str.SaveDir
lea rcx, [0x140185d68]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [rsp + 0x34]
mov dword [0x1401fbc58], eax
mov eax, r12d
jmp 0x1400a6543
mov eax, dword [rsp + 0x34]
mov dword [0x1401fbc58], eax
xor eax, eax
mov rcx, qword [rbp + 0x1850]
xor rcx, rsp
call fcn.1400f9a80
mov rbx, qword [rsp + 0x19b0]
add rsp, 0x1960
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret