Function at 0x140004a40
Capabilities:
Read .ini file

Disassembly:
push rdi
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rsi
mov rsi, rcx
call fcn.140014264
mov rcx, rax
xor edx, edx
test rax, rax
setne dl
test edx, edx
jne 0x140004a80
mov ecx, 0x80004005
call fcn.140001970
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
mov rdi, qword [0x140231960]
mov ebp, 1
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x140004ac0
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDC_BUTTON_START
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004efd
cmp eax, dword [rbx - 0xc]
jg 0x140004efd
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3e9
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
mov rdi, qword [0x140231960]
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x140004b55
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDEXIT
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004ef2
cmp eax, dword [rbx - 0xc]
jg 0x140004ef2
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3f1
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
mov rdi, qword [0x140231960]
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x140004bea
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDC_RADIO_CLEAN
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004ee7
cmp eax, dword [rbx - 0xc]
jg 0x140004ee7
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3ea
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
mov rdi, qword [0x140231960]
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x140004c7f
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDC_RADIO_UPDATE
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004edc
cmp eax, dword [rbx - 0xc]
jg 0x140004edc
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3eb
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
mov rdi, qword [0x140231960]
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x140004d14
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDC_RADIO_CLEAN_AND_REINSTALL
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004ed1
cmp eax, dword [rbx - 0xc]
jg 0x140004ed1
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3ec
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
mov rdi, qword [0x140231960]
mov ecx, ebp
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x140004da9
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDC_ST_STATU
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004ec6
cmp eax, dword [rbx - 0xc]
jg 0x140004ec6
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3ef
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
mov rdi, qword [0x140231960]
sub ebp, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ebp
jge 0x140004e3c
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140001910
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
mov r9, rbx
lea r8, [0x1401e2848]
lea rdx, str.IDC_STATIC_OP
lea rcx, str.widget
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401663c8
test eax, eax
js 0x140004ebb
cmp eax, dword [rbx - 0xc]
jg 0x140004ebb
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov edx, 0x3f0
mov rcx, rsi
call fcn.140029030
mov rcx, rax
mov rdx, rbx
call fcn.140029190
nop
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140004f08
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140004f08
mov ecx, 0x80070057
call fcn.140001970
int3
mov ecx, 0x80070057
call fcn.140001970
int3
mov ecx, 0x80070057
call fcn.140001970
int3
mov ecx, 0x80070057
call fcn.140001970
int3
mov ecx, 0x80070057
call fcn.140001970
int3
mov ecx, 0x80070057
call fcn.140001970
int3
mov ecx, 0x80070057
call fcn.140001970
nop
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret