Function at 0x140057350
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 + 0x24c]
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 0x140057381
lea rsi, [rbx + 0x270]
mov r8d, reloc.WS2_32.dll_recv
mov rax, qword [rsi]
cmp rax, qword [rsi + 8]
je 0x1400573db
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 0x14005740c
mov dword [rdx], eax
add qword [rsi + 8], 4
jmp 0x140057419
lea r8, [rsp + 0x30]
mov rcx, rsi
call fcn.14002de10
movzx r8d, byte [rbx + 0x55b]
lea rdx, str.restricted
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x55c]
lea rdx, str.AllowUntrustedServers
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x55b], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x238]
lea rdx, str.viewonly
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x55c], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x55d]
lea rdx, str.nostatus
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x238], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x55e]
lea rdx, str.nohotkeys
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x55d], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x292]
lea rdx, str.showtoolbar
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x55e], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2d1]
lea rdx, str.fullscreen
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x292], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2d2]
lea rdx, str.SavePos
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2d1], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2d3]
lea rdx, str.SaveSize
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2d2], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2d4]
lea rdx, str.directx
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2d3], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x288]
test eax, eax
setne al
mov byte [rbx + 0x2d4], al
mov r9, rdi
lea rdx, str.autoDetect
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x28c]
lea rdx, str.8bit
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x288], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x290]
lea rdx, str.shared
mov r9, rdi
mov dword [rbx + 0x28c], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x289]
lea rdx, str.swapmouse
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x290], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2ce]
lea rdx, str.emulate3
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x289], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2cf]
lea rdx, str.JapKeyboard
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2ce], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x28a]
lea rdx, str.disableclipboard
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2cf], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x550]
lea rdx, str.Scaling
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x28a], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x239]
lea rdx, str.AutoScaling
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x550], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x23a]
lea rdx, str.AutoScalingEven
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x239], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x23b]
lea rdx, str.AutoScalingLimit
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x23a], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x298]
lea rdx, str.scale_num
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x23b], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x29c]
lea rdx, str.scale_den
mov r9, rdi
mov dword [rbx + 0x298], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2c5]
lea rdx, str.cursorshape
mov r9, rdi
mov dword [rbx + 0x29c], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2cc]
lea rdx, str.noremotecursor
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2c5], 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 + 0x2cc], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 0xffffffff
je 0x140057850
mov byte [rbx + 0x2b2], 1
mov dword [rbx + 0x2b4], 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 0x14005787f
mov byte [rbx + 0x2b8], 1
mov dword [rbx + 0x2bc], eax
mov r8d, dword [rbx + 0x294]
lea rdx, str.ServerScale
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x2a0]
lea rdx, str.Reconnect
mov r9, rdi
mov dword [rbx + 0x294], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2b0]
lea rdx, str.EnableCache
mov r9, rdi
mov dword [rbx + 0x2a0], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2b1]
lea rdx, str.EnableZstd
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2b0], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x2c8]
lea rdx, str.QuickOption
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2b1], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2d5]
lea rdx, str.UseDSMPlugin
mov r9, rdi
mov dword [rbx + 0x2c8], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x10]
lea rdx, str.UseProxy
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2d5], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x23d]
lea rdx, str.allowMonitorSpanning
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x10], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x23e]
lea rdx, str.ChangeServerRes
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x23d], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x23f]
lea rdx, str.extendDisplay
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x23e], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x240]
lea rdx, str.showExtend
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x23f], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
setne al
movzx r8d, byte [rbx + 0x241]
lea rdx, str.use_virt
mov r9, rdi
mov byte [rbx + 0x240], al
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x242]
lea rdx, str.useAllMonitors
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x241], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x244]
lea rdx, str.requestedWidth
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x242], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x248]
lea rdx, str.requestedHeight
mov r9, rdi
mov dword [rbx + 0x244], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea r9, [rbx + 0x2d6]
mov qword [rsp + 0x28], rdi
lea r8, str.NoPlugin
mov dword [rbx + 0x248], eax
lea rdx, str.DSMPlugin
mov dword [rsp + 0x20], 0x104
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r8, [rbx + 0x3dc]
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 + 0x4e0]
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 + 0x518]
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 + 0x5c4]
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 0x140057bd8
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 + 0x2a4]
lea rdx, str.AutoReconnect
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov r8d, dword [rbx + 0x2a8]
lea rdx, str.FileTransferTimeout
mov r9, rdi
mov dword [rbx + 0x2a4], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [rbx + 0x2a8], eax
cmp eax, 0x258
jle 0x140057c31
mov dword [rbx + 0x2a8], 0x258
mov r8d, dword [rbx + 0x554]
lea rdx, str.KeepAliveInterval
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [rbx + 0x2a8]
dec ecx
mov dword [rbx + 0x554], eax
cmp eax, ecx
jl 0x140057c67
mov dword [rbx + 0x554], ecx
mov r8d, dword [rbx + 0x2c0]
lea rdx, str.ThrottleMouse
mov r9, rdi
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2c4]
lea rdx, str.GiiEnable
mov r9, rdi
mov dword [rbx + 0x2c0], eax
lea rcx, str.options
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x558]
lea rdx, str.AutoAcceptIncoming
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x2c4], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x559]
lea rdx, str.AutoAcceptNoDSM
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x558], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x55a]
lea rdx, str.RequireEncryption
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x559], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx r8d, byte [rbx + 0x2d0]
lea rdx, str.PreemptiveUpdates
test eax, eax
lea rcx, str.options
mov r9, rdi
setne al
mov byte [rbx + 0x55a], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea r9, [rbx + 0x10d]
mov qword [rsp + 0x28], rdi
test eax, eax
mov dword [rsp + 0x20], 0xfa
lea r8, [0x14019581a]
setne al
lea rdx, str.proxyhost
lea rcx, str.connection
mov byte [rbx + 0x2d0], al
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov r9, rdi
lea rdx, str.proxyport
xor r8d, r8d
lea rcx, str.connection
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [rbx + 0xc], eax
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