Function at 0x14002f39c
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov rax, qword [0x14011d6b0]
xor rax, rsp
mov qword [rbp + 0x160], rax
movsxd rbx, edx
mov rdi, rcx
call fcn.140071a10
mov rcx, rax
test rax, rax
je 0x14002fbb6
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea r15, [rdi + 0x580]
lea r8, str.Exchange.ini
mov rdx, r15
lea rcx, [rsp + 0x38]
call fcn.14000dc34
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x60]
lea r8, [0x1400eb840]
lea rdx, str.DetectedDisk
lea rcx, str.EXCHANGE
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or r13d, 0xffffffff
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14002f464
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rsp + 0x60]
call fcn.1400b2fb8
lea ecx, [rax - 1]
xor edx, edx
cmp ecx, 0x3f
cmovbe edx, eax
mov dword [rdi + 0xba4], edx
lea rsi, [rdi + 0xaa4]
mov rax, rsi
mov ecx, 0x40
and dword [rax - 0x510], 0
and dword [rax], 0
lea rax, [rax + 4]
sub rcx, 1
jne 0x14002f48e
test ebx, ebx
js 0x14002f4c1
cmp ebx, dword [rdi + 0xba4]
jge 0x14002f4c1
mov dword [rdi + rbx*4 + 0xaa4], 1
mov eax, dword [rdi + 0xba4]
jmp 0x14002f517
xor ebx, ebx
mov eax, dword [rdi + 0xba4]
test eax, eax
jle 0x14002f517
mov r8d, ebx
lea rdx, str.Disk_d
lea rcx, [rsp + 0x30]
call fcn.1400042cc
lea r9, [rdi + 0x2cc]
xor r8d, r8d
mov rdx, qword [rsp + 0x30]
lea rcx, str.GraphHideDisk
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
jne 0x14002f507
mov dword [rsi], 1
inc ebx
add rsi, 4
mov eax, dword [rdi + 0xba4]
cmp ebx, eax
jl 0x14002f4cd
xor esi, esi
test eax, eax
jle 0x14002f71a
mov r8d, esi
lea rdx, [0x1400ea7b8]
lea rcx, [rsp + 0x30]
call fcn.1400042cc
lea r8, str.Exchange.ini
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.14000dc34
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x60]
lea r8, [0x1400ea000]
mov rdx, qword [rsp + 0x30]
lea rcx, str.MODEL
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14002f598
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
movsxd r14, esi
lea rbx, [rdi + 0xbb0]
lea rbx, [rbx + r14*8]
lea rcx, [rsp + 0x60]
call fcn.1400af134
mov r8d, eax
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.140002b78
lea rbx, [rdi + r14*8]
lea rcx, [rsp + 0x60]
call fcn.1400af134
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, [rbx + 0xdb0]
call fcn.140002b78
lea r8, [0x1400f30fc]
lea rdx, [0x1400f0e38]
lea rcx, [rbx + 0xdb0]
call fcn.140011f84
lea r8, str.Exchange.ini
mov rdx, r15
lea rcx, [rsp + 0x48]
call fcn.14000dc34
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x60]
lea r8, [0x1400ea000]
mov rdx, qword [rsp + 0x30]
lea rcx, str.SERIAL
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14002f65f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rbx, [rdi + 0xfb0]
lea rbx, [rbx + r14*8]
lea rcx, [rsp + 0x60]
call fcn.1400af134
mov r8d, eax
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.140002b78
lea r8, str.Exchange.ini
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.14000dc34
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x60]
lea r8, [0x1400ea000]
mov rdx, qword [rsp + 0x30]
lea rcx, str.DRIVE
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14002f6e7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rbx, [rdi + 0x11b0]
lea rbx, [rbx + r14*8]
lea rcx, [rsp + 0x60]
call fcn.1400af134
mov r8d, eax
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.140002b78
inc esi
cmp esi, dword [rdi + 0xba4]
jl 0x14002f521
lea r14, [rdi + 0x2cc]
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x60]
lea rsi, [0x1400f47a4]
mov r8, rsi
lea rdx, str.LegendPosition
lea r15, str.Setting
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
call fcn.1400af134
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.140002b78
lea rdx, [0x1400f3128]
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f7c7
lea rdx, [0x1400f3130]
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f7c7
mov rdx, rsi
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f7c7
lea rdx, [0x1400f3138]
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f7c7
mov rcx, rsi
call fcn.1400af134
jmp 0x14002f7d6
lea rcx, [rsp + 0x60]
call fcn.1400af134
lea rsi, [rsp + 0x60]
lea rcx, [rdi + 0x13d0]
mov r8d, eax
mov rdx, rsi
call fcn.140002b78
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x60]
lea r8, str.mdhm
lea rdx, str.TimeFormat
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
call fcn.1400af134
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.140002b78
lea rsi, str._m__d__H:_M
mov rdx, rsi
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._m__d
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._y__m__d__H:_M
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._y__m__d
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._d__m__y
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._d__m__y__H:_M
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._d._m._y
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
lea rdx, str._d._m._y__H:_M
mov rcx, rbx
call fcn.1400b303c
test eax, eax
je 0x14002f8db
mov rcx, rsi
call fcn.1400af134
jmp 0x14002f8ea
lea rcx, [rsp + 0x60]
call fcn.1400af134
lea rsi, [rsp + 0x60]
lea rcx, [rdi + 0x13d8]
mov r8d, eax
mov rdx, rsi
call fcn.140002b78
mov qword [rsp + 0x28], r14
mov esi, 0x100
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x60]
lea r8, [0x1400eb3d8]
lea rdx, str.PaintWeekend
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
call fcn.1400b2fb8
xor ecx, ecx
test eax, eax
setg cl
mov dword [rdi + 0x14a0], ecx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x60]
lea r8, [0x1400f3258]
lea rdx, str.MaxPlotPoint
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
call fcn.1400b2fb8
test eax, eax
jle 0x14002f97c
lea rcx, [rsp + 0x60]
call fcn.1400b2fb8
jmp 0x14002f97e
xor eax, eax
mov dword [rdi + 0x14a4], eax
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x60]
lea r8, [0x1400eb3d8]
lea rdx, [0x1400f3280]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
call fcn.1400b2fb8
test eax, eax
jle 0x14002f9c3
lea rcx, [rsp + 0x60]
call fcn.1400b2fb8
jmp 0x14002f9c5
xor eax, eax
mov dword [rdi + 0x14a8], eax
mov dword [rdi + 0x798], 0xff9797
mov dword [rdi + 0x79c], 0x40c2ed
mov dword [rdi + 0x7a0], 0x4b4bcb
mov dword [rdi + 0x7a4], 0xc6ac8c
mov dword [rdi + 0x7a8], 0x4da74d
mov dword [rdi + 0x7ac], 0xaa1c4a
mov dword [rdi + 0x7b0], 0x1191bb
mov dword [rdi + 0x7b4], 0x47189e
mov dword [rdi + 0x7b8], 0xc17453
mov dword [rdi + 0x7bc], 0x1a7612
mov dword [rdi + 0x7c0], 0xff6c35
mov dword [rdi + 0x7c4], 0x24676f
mov dword [rdi + 0x7c8], 0xb29a4
mov dword [rdi + 0x7cc], 0xd2958c
mov dword [rdi + 0x7d0], 0x575700
mov dword [rdi + 0x7d4], 0x808080
mov dword [rdi + 0x7d8], 0x787878
mov dword [rdi + 0x7dc], 0x707070
mov dword [rdi + 0x7e0], 0x686868
mov dword [rdi + 0x7e4], 0x606060
mov dword [rdi + 0x7e8], 0x585858
mov dword [rdi + 0x7ec], 0x505050
mov dword [rdi + 0x7f0], 0x484848
mov dword [rdi + 0x7f4], 0x404040
mov dword [rdi + 0x7f8], 0x383838
mov dword [rdi + 0x7fc], 0x303030
mov dword [rdi + 0x800], 0x282828
mov dword [rdi + 0x804], 0x202020
mov dword [rdi + 0x808], 0x181818
mov dword [rdi + 0x80c], 0x101010
mov dword [rdi + 0x810], 0x80808
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi + 0x814], xmm0
movups xmmword [rdi + 0x824], xmm0
movups xmmword [rdi + 0x834], xmm0
movups xmmword [rdi + 0x844], xmm0
mov dword [rdi + 0x854], eax
mov dword [rdi + 0x898], 0x4a24ff
mov r9, r14
xor r8d, r8d
lea rdx, [0x1400f00e0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
je 0x14002fb51
xor eax, eax
jmp 0x14002fb56
mov eax, 1
mov dword [rdi + 0x149c], eax
mov dword [rdi + 0x56c], 1
mov rcx, rdi
call fcn.14002fbc4
nop
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14002fb8b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.1400a9d90
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140002f7c
int3