Function at 0x401000
Capabilities:
Read .ini file

Disassembly:
mov r11, rsp
sub rsp, 0x108
mov rax, qword [0x00417b90]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov qword [rsp + 0x28], r8
mov rbp, rcx
mov ebx, r9d
mov qword [r11 - 0x18], rsi
lea r8, [0x00412649]
lea rcx, str.FONT
lea r9, [rsp + 0x40]
mov qword [r11 - 0x20], rdi
mov dword [rsp + 0x20], 0x80
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea rsi, [rsp + 0x40]
lea rdi, [0x00412649]
mov ecx, 1
repe cmpsb byte [rsi], byte [rdi]
jne 0x401075
test ebx, ebx
je 0x4013dd
mov qword [rsp + 0xd8], r13
xor r13d, r13d
lea rdx, [0x00412649]
lea rcx, [rbp + 0x1c]
mov dword [rbp], 8
mov dword [rbp + 4], InitCommonControls
mov dword [rbp + 0x10], r13d
mov dword [rbp + 0x14], r13d
mov dword [rbp + 0x18], r13d
mov dword [rbp + 8], 0x190
mov byte [rbp + 0xc], 1
mov byte [rbp + 0xd], 0
mov byte [rbp + 0xe], InitCommonControls
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
lea rcx, [rsp + 0x40]
call fcn.00409ba0
test rax, rax
je 0x4013d5
mov rcx, rax
call fcn.00409b90
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
mov dword [rbp], eax
call fcn.00409ba0
test rax, rax
je 0x4013d5
mov rcx, rax
call fcn.00409b90
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
mov dword [rbp + 4], eax
call fcn.00409ba0
test rax, rax
mov rsi, rax
je 0x4013d5
mov rcx, rax
mov qword [rsp + 0xe0], r12
call fcn.00409b90
lea r12, [0x00400000]
test eax, eax
jle 0x40114e
mov dword [rbp + 8], eax
jmp 0x401188
mov edi, r13d
movsxd rax, edi
lea rcx, [rax + rax*8]
lea rdx, [r12 + rcx*4 + 0x172b0]
mov rcx, rsi
call fcn.00409af0
test eax, eax
je 0x401176
add edi, 1
cmp edi, 0xf
jl 0x401151
jmp 0x401188
movsxd rax, edi
lea rcx, [rax + rax*8]
mov eax, dword [r12 + rcx*4 + 0x172d0]
mov dword [rbp + 8], eax
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
call fcn.00409ba0
test rax, rax
mov rsi, rax
je 0x4013cd
mov edi, r13d
nop
nop
movsxd rcx, edi
lea rdx, [rcx + rcx*8]
mov rcx, rsi
lea rdx, [r12 + rdx*4 + 0x17000]
call fcn.00409af0
test eax, eax
je 0x4011d5
add edi, 1
cmp edi, 0x13
jl 0x4011b0
jmp 0x4011e8
movsxd rax, edi
lea rcx, [rax + rax*8]
movzx eax, byte [r12 + rcx*4 + 0x17020]
mov byte [rbp + 0xc], al
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
call fcn.00409ba0
test rax, rax
mov rsi, rax
je 0x4013cd
mov edi, r13d
nop
nop
movsxd rcx, edi
lea rdx, [rcx + rcx*8]
mov rcx, rsi
lea rdx, [r12 + rdx*4 + 0x174d0]
call fcn.00409af0
test eax, eax
je 0x401235
add edi, 1
cmp edi, 3
jl 0x401210
jmp 0x401248
movsxd rax, edi
lea rcx, [rax + rax*8]
movzx eax, byte [r12 + rcx*4 + 0x174f0]
mov byte [rbp + 0xd], al
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
call fcn.00409ba0
test rax, rax
mov rsi, rax
je 0x4013cd
mov edi, r13d
nop
nop
movsxd rcx, edi
lea rdx, [rcx + rcx*8]
mov rcx, rsi
lea rdx, [r12 + rdx*4 + 0x17540]
call fcn.00409af0
test eax, eax
je 0x401295
add edi, 1
cmp edi, 6
jl 0x401270
jmp 0x4012a8
movsxd rax, edi
lea rcx, [rax + rax*8]
movzx eax, byte [r12 + rcx*4 + 0x17560]
mov byte [rbp + 0xe], al
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
call fcn.00409ba0
test rax, rax
je 0x4013cd
lea rdx, str.TRUE
mov rcx, rax
call fcn.00409af0
mov ecx, r13d
lea r8, [rsp + 0x30]
test eax, eax
lea rdx, [0x00412640]
sete cl
mov dword [rbp + 0x10], ecx
xor ecx, ecx
call fcn.00409ba0
test rax, rax
je 0x4013cd
lea rdx, str.TRUE
mov rcx, rax
call fcn.00409af0
mov ecx, r13d
lea r8, [rsp + 0x30]
test eax, eax
lea rdx, [0x00412640]
sete cl
mov dword [rbp + 0x14], ecx
xor ecx, ecx
call fcn.00409ba0
test rax, rax
mov rdi, rax
je 0x4013cd
lea rdx, str.DIALOG
mov rcx, rax
call fcn.00409af0
test eax, eax
jne 0x40137b
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
mov dword [rbp + 0x18], 1
call fcn.00409ba0
test rax, rax
mov rdi, rax
je 0x4013cd
lea rdx, [0x00412649]
mov rcx, rax
call fcn.00409af0
test eax, eax
jmp 0x4013be
lea rdx, [0x00412649]
mov rcx, rdi
mov dword [rbp + 0x18], r13d
call fcn.00409af0
test eax, eax
jne 0x4013c0
lea r8, [rsp + 0x30]
lea rdx, [0x00412640]
xor ecx, ecx
call fcn.00409ba0
test rax, rax
mov rdi, rax
je 0x4013cd
lea rdx, [0x00412649]
mov rcx, rax
call fcn.00409af0
test eax, eax
je 0x4013cd
lea rcx, [rbp + 0x1c]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov r12, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.00409d20
add rsp, 0x108
ret