Function at 0x1400634d0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r14
sub rsp, 0xd0
mov rax, qword [0x1401b5030]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rdi, rdx
lea r14, [rcx + 0x4b3]
mov rbx, rcx
xor esi, esi
mov r8d, esi
lea rdx, str.use_encoding__d
lea rcx, [rsp + 0x40]
call fcn.14003c1f0
movzx r8d, byte [r14]
lea rdx, [rsp + 0x40]
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
lea r14, [r14 + 1]
setne al
inc esi
mov byte [r14 - 1], al
cmp esi, 0x1d
jle 0x140063501
lea rsi, [rbx + 0x330]
mov r8d, reloc.WS2_32.dll_recv
mov rax, qword [rsi]
cmp rax, qword [rsi + 8]
je 0x14006355b
mov r8d, dword [rax]
mov r9, rdi
lea rdx, str.preferred_encoding
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov rdx, qword [rsi]
mov qword [rsi + 8], rdx
mov dword [rsp + 0x30], eax
cmp rdx, qword [rsi + 0x10]
je 0x14006358c
mov dword [rdx], eax
add qword [rsi + 8], 4
jmp 0x140063599
lea r8, [rsp + 0x30]
mov rcx, rsi
call fcn.14002de10
movzx r8d, byte [rbx + 0x31c]
lea rdx, str.restricted
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x31d]
lea rdx, str.AllowUntrustedServers
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x31c], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x31e]
lea rdx, str.viewonly
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x31d], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x31f]
lea rdx, str.nostatus
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x31e], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x320]
lea rdx, str.nohotkeys
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x31f], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x325]
lea rdx, str.showtoolbar
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x320], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x321]
lea rdx, str.fullscreen
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x325], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x322]
lea rdx, str.SavePos
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x321], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x323]
lea rdx, str.SaveSize
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x322], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x324]
lea rdx, str.directx
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x323], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x326]
test eax, eax
setne al
mov byte [rbx + 0x324], al
mov r9, rdi
lea rdx, str.autoDetect
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x328]
lea rdx, str.8bit
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x326], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x354]
lea rdx, str.shared
mov r9, rdi
mov dword [rbx + 0x328], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x348]
lea rdx, str.swapmouse
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x354], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x356]
lea rdx, str.belldeiconify
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x348], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x349]
lea rdx, str.BlockSameMouse
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x356], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x34a]
lea rdx, str.emulate3
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x349], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x34b]
lea rdx, str.JapKeyboard
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x34a], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x34c]
lea rdx, str.emulate3timeout
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x34b], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x350]
lea rdx, str.emulate3fuzz
mov r9, rdi
mov dword [rbx + 0x34c], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x357]
lea rdx, str.disableclipboard
mov r9, rdi
mov dword [rbx + 0x350], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
setne al
mov byte [rbx + 0x357], al
mov r8d, dword [rbx + 0x358]
lea rdx, str.localcursor
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x360]
lea rdx, str.Scaling
mov r9, rdi
mov dword [rbx + 0x358], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x361]
lea rdx, str.AutoScaling
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x360], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x362]
lea rdx, str.AutoScalingEven
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x361], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x363]
lea rdx, str.AutoScalingLimit
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x362], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x364]
lea rdx, str.scale_num
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x363], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x368]
lea rdx, str.scale_den
mov r9, rdi
mov dword [rbx + 0x364], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x37c]
lea rdx, str.cursorshape
mov r9, rdi
mov dword [rbx + 0x368], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x37d]
lea rdx, str.noremotecursor
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x37c], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r9, rdi
lea rdx, str.compresslevel
test eax, eax
lea rcx, str.options
mov r8d, 0xffffffff
setne al
mov byte [rbx + 0x37d], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 0xffffffff
je 0x140063a90
mov byte [rbx + 0x36c], 1
mov dword [rbx + 0x370], eax
mov r9, rdi
lea rdx, str.quality
mov r8d, 0xffffffff
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 0xffffffff
je 0x140063abf
mov byte [rbx + 0x374], 1
mov dword [rbx + 0x378], eax
mov r8d, dword [rbx + 0x380]
lea rdx, str.ServerScale
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x384]
lea rdx, str.Reconnect
mov r9, rdi
mov dword [rbx + 0x380], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x398]
lea rdx, str.EnableCache
mov r9, rdi
mov dword [rbx + 0x384], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x399]
lea rdx, str.EnableZstd
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x398], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x214]
lea rdx, str.QuickOption
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x399], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x39a]
lea rdx, str.UseDSMPlugin
mov r9, rdi
mov dword [rbx + 0x214], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x6d0]
lea rdx, str.UseProxy
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x39a], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x6d1]
lea rdx, str.allowMonitorSpanning
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x6d0], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x6d2]
lea rdx, str.ChangeServerRes
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x6d1], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x6d3]
lea rdx, str.extendDisplay
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x6d2], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x6d4]
lea rdx, str.showExtend
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x6d3], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
setne al
movzx r8d, byte [rbx + 0x6d5]
lea rdx, str.use_virt
mov r9, rdi
mov byte [rbx + 0x6d4], al
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x6d6]
lea rdx, str.useAllMonitors
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x6d5], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x6d8]
lea rdx, str.requestedWidth
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x6d6], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x6dc]
lea rdx, str.requestedHeight
mov r9, rdi
mov dword [rbx + 0x6d8], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea r9, [rbx + 0x39b]
mov qword [rsp + 0x28], rdi
lea r8, str.NoPlugin
mov dword [rbx + 0x6dc], eax
lea rdx, str.DSMPlugin
mov dword [rsp + 0x20], 0x104
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r8, [rbx + 0x809]
mov qword [rsp + 0x28], rdi
mov r9, r8
mov dword [rsp + 0x20], 0x104
lea rdx, str.folder
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r8, [rbx + 0x90d]
mov qword [rsp + 0x28], rdi
mov r9, r8
mov dword [rsp + 0x20], 0x38
lea rdx, str.prefix
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r8, [rbx + 0x945]
mov qword [rsp + 0x28], rdi
mov r9, r8
mov dword [rsp + 0x20], 0x38
lea rdx, str.imageFormat
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r8, [rbx + 0xa82]
mov qword [rsp + 0x28], rdi
mov r9, r8
mov dword [rsp + 0x20], 0xfe
lea rdx, str.InfoMsg
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x1402bace4], 0
jne 0x140063e1e
mov r9, rdi
lea rdx, str.sponsor
xor r8d, r8d
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
setne byte [0x1402bace4]
mov r8d, dword [rbx + 0x7f0]
lea rdx, str.AutoReconnect
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x7f5]
lea rdx, str.ExitCheck
mov r9, rdi
mov dword [rbx + 0x7f0], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x7f8]
lea rdx, str.FileTransferTimeout
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x7f5], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0xc]
lea rdx, str.ListenPort
mov r9, rdi
mov dword [rbx + 0x7f8], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp dword [rbx + 0x7f8], 0x258
mov dword [rbx + 0xc], eax
jle 0x140063ec4
mov dword [rbx + 0x7f8], 0x258
mov r8d, dword [rbx + 0x7fc]
lea rdx, str.KeepAliveInterval
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [rbx + 0x7f8]
dec ecx
mov dword [rbx + 0x7fc], eax
cmp eax, ecx
jl 0x140063efa
mov dword [rbx + 0x7fc], ecx
mov r8d, dword [rbx + 0x35c]
lea rdx, str.ThrottleMouse
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x808]
lea rdx, str.GiiEnable
mov r9, rdi
mov dword [rbx + 0x35c], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x804]
lea rdx, str.AutoAcceptIncoming
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x808], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x805]
lea rdx, str.AutoAcceptNoDSM
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x804], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x806]
lea rdx, str.RequireEncryption
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x805], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x807]
lea rdx, str.PreemptiveUpdates
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x806], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
setne al
mov byte [rbx + 0x807], al
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.14011b0c0
mov rbx, qword [rsp + 0x100]
add rsp, 0xd0
pop r14
pop rdi
pop rsi
ret