Function at 0x4041f0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45b6b8
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x104c
call fcn.004468c0
mov eax, dword [0x4767b0]
xor eax, esp
mov dword [esp + 0x1048], eax
push ebx
push esi
push edi
mov eax, dword [0x4767b0]
xor eax, esp
push eax
lea eax, [esp + 0x1060]
mov dword fs:[0], eax
mov edi, ecx
call fcn.0041e32a
mov eax, dword [edi + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0042bfa0
mov ebx, eax
test ebx, ebx
je 0x4042f7
call fcn.0041e932
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404272
push 0x80004005
call fcn.00401f90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
push 0x65
mov dword [esp + 0x106c], 0
call fcn.0042957d
test eax, eax
je 0x4042a8
push 0x65
push eax
lea ecx, [esp + 0x20]
call fcn.00402ad0
mov esi, dword [esp + 0x18]
cmp dword [esi - 0xc], 0
je 0x4042d0
mov ecx, dword [ebx + 4]
push 0
push 0
push 0x800
push ecx
call dword [sym.imp.USER32.dll_AppendMenuW]
mov edx, dword [ebx + 4]
push esi
push 0x10
push 0
push edx
call dword [sym.imp.USER32.dll_AppendMenuW]
lea eax, [esi - 0x10]
mov dword [esp + 0x1068], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4042f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x84]
mov ecx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 1
push 0x80
push ecx
call esi
mov eax, dword [edi + 0x84]
mov edx, dword [edi + 0x20]
push eax
push 0
push 0x80
push edx
call esi
lea eax, [edi + 0x90]
push eax
push 0x82
call fcn.0040e810
lea ecx, [edi + 0x8c]
push ecx
push 0x83
call fcn.0040e810
lea edx, [edi + 0x94]
push edx
push 0x87
call fcn.0040e810
lea eax, [edi + 0x88]
push eax
push 0x8f
call fcn.0040e810
lea ecx, [edi + 0x98]
push ecx
push 0x90
call fcn.0040e810
lea edx, [edi + 0x9c]
push edx
push 0x92
call fcn.0040e810
push 0
mov ecx, edi
call fcn.0041f18f
push 0x7fe
lea ecx, [esp + 0x5a]
mov eax, 0x30
push 0
push ecx
mov word [esp + 0x60], ax
call fcn.00444200
add esp, 0xc
push 0x7fe
lea eax, [esp + 0x85a]
mov edx, 0x30
push 0
push eax
mov word [esp + 0x860], dx
call fcn.00444200
mov eax, dword [edi + 0xec]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
add esp, 0xc
push eax
push 0x400
lea ecx, [esp + 0x5c]
push ecx
push 0
push 0x464f00
push str.TXWB
call esi
mov ebx, eax
mov eax, dword [edi + 0xec]
push eax
push 0x400
lea edx, [esp + 0x85c]
push edx
push 0
push str.accesstaken
push str.TXWB
call esi
mov esi, eax
call fcn.0041e932
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40443b
push 0x80004005
call fcn.00401f90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0x1068], 1
call fcn.0041e932
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404470
push 0x80004005
call fcn.00401f90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1068], 2
test ebx, ebx
je 0x4044ed
lea ecx, [esp + 0x54]
push ecx
call fcn.00411ac0
add esp, 4
mov ebx, eax
push ebx
lea edx, [esp + 0x18]
push edx
call fcn.00406940
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x106c], 3
call fcn.004028f0
mov byte [esp + 0x1068], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4044e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x4044ed
push ebx
call fcn.0041dea2
add esp, 4
test esi, esi
je 0x404555
lea ecx, [esp + 0x854]
push ecx
call fcn.00411ac0
add esp, 4
mov esi, eax
push esi
lea edx, [esp + 0x18]
push edx
call fcn.00406940
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x106c], 4
call fcn.004028f0
mov byte [esp + 0x1068], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404548
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x404555
push esi
call fcn.0041dea2
add esp, 4
mov ebx, dword [esp + 0x1c]
lea ecx, [edi + 0xe4]
push ecx
push ecx
add ebx, 0xfffffff0
mov dword [esp + 0x3c], esp
mov dword [esp + 0x1c], esp
push ebx
lea esi, [edi + 0xe8]
mov dword [esp + 0x5c], ebx
call fcn.00402880
mov edx, dword [esp + 0x20]
add eax, 0x10
mov dword [edx], eax
mov byte [esp + 0x1074], 5
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov dword [esp + 0x20], esp
push eax
mov dword [esp + 0x28], eax
call fcn.00402880
mov ecx, dword [esp + 0x24]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
mov ecx, esi
mov byte [esp + 0x1074], 2
call fcn.00410e40
test al, al
jne 0x40462c
mov ecx, edi
call fcn.004055d0
test eax, eax
jne 0x4046a5
push eax
mov ecx, edi
call fcn.0041dfb8
mov byte [esp + 0x1068], 1
lea edx, [ebx + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4045fd
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov dword [esp + 0x1068], 0xffffffff
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404625
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x404cc9
lea ecx, [esp + 0x1c]
push 0x464ab0
push ecx
call fcn.00406e00
add esp, 8
test al, al
jne 0x404658
lea edx, [esp + 0x30]
push 0x464ab0
push edx
call fcn.00406e00
add esp, 8
test al, al
je 0x404685
mov ecx, edi
call fcn.004055d0
test eax, eax
jne 0x404685
push eax
mov ecx, edi
call fcn.0041dfb8
mov byte [esp + 0x1068], 1
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jmp 0x4045f1
lea edx, [esp + 0x30]
lea ecx, [edi + 0xe0]
push edx
call fcn.004028f0
lea eax, [esp + 0x1c]
lea ecx, [edi + 0xdc]
push eax
call fcn.004028f0
mov ecx, dword [edi + 0x74]
mov eax, dword [ecx - 0xc]
test eax, eax
jne 0x4046d7
push eax
mov ecx, edi
call fcn.0041dfb8
push str.Dialog
push str.32770
call dword [sym.imp.USER32.dll_FindWindowW]
push 0
push 0
push 0x935
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call ebx
push 1
mov dword [edi + 0xbc], eax
call ebx
mov dword [edi + 0xc0], eax
add eax, 0xfffffe56
cdq
push 1
sub eax, edx
sar eax, 1
push 0x1aa
push 0x153
push eax
mov eax, dword [edi + 0xbc]
sub eax, 0x153
cdq
sub eax, edx
sar eax, 1
push eax
mov ecx, edi
call fcn.0041f14f
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x40]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
neg ecx
push ecx
neg edx
push edx
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], vtable.CRgn.0
mov byte [esp + 0x1068], 6
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
push 8
push 9
add eax, 0xfffffffb
push eax
add ecx, 0xfffffffb
push ecx
inc edx
push edx
inc ebx
push ebx
call dword [sym.imp.GDI32.dll_CreateRoundRectRgn]
push eax
lea ecx, [esp + 0x3c]
call fcn.0042053b
mov ecx, dword [esp + 0x3c]
mov edx, dword [edi + 0x20]
push 1
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov eax, dword [edi + 0x1ec]
mov edx, dword [eax + 0x13c]
push 0xa5
push edi
lea ecx, [esp + 0x28]
push ecx
lea ebx, [edi + 0x1ec]
push 0x50000100
push 0x464f44
mov ecx, ebx
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x38], 0x32
mov dword [esp + 0x3c], 0xe6
mov dword [esp + 0x40], 0x41
call edx
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x404843
push 0x464f58
lea ecx, [esp + 0x18]
push esi
push ecx
call fcn.00406c30
add esp, 0xc
mov byte [esp + 0x1068], 7
mov edx, dword [esp + 0x14]
push edx
mov ecx, ebx
call fcn.0041f0c4
mov byte [esp + 0x1068], 6
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404843
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi + 0x3f8]
mov edx, dword [edx + 0x13c]
push 0x4b0
push edi
lea eax, [esp + 0x28]
push eax
lea esi, [edi + 0x3f8]
push 0x50000100
mov ebx, 0x917401
push str._aRbc_u7b_
mov ecx, esi
mov dword [edi + 0x344], ebx
mov dword [edi + 0x340], 0xffffff
mov dword [edi + 0x348], ebx
mov dword [edi + 0x364], 0x2bc
mov dword [edi + 0x358], 1
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x38], 0x41
mov dword [esp + 0x3c], 0x64
mov dword [esp + 0x40], 0x50
call edx
call fcn.00402620
mov ecx, 0xc
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
lea edx, [ecx + 0x18]
mov dword [edi + 0x550], ebx
mov dword [edi + 0x554], ebx
lea ebx, [ecx + 0x54]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov ecx, 0x32
mov dword [eax + 0xc], ecx
mov eax, esi
mov dword [edi + 0x55c], 1
call fcn.00402750
push 1
push 0x10
push 0x10
push 5
lea esi, [edi + 0x9b8]
push 0x136
mov ecx, esi
call fcn.0041f14f
push 0x89
push 0x88
push 0x8a
mov ebx, esi
call fcn.0040e550
sub esp, 0x10
mov eax, esp
mov ecx, 0x136
mov dword [eax], ecx
mov edx, 5
lea ebx, [ecx + 0x10]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov ecx, 0x15
mov dword [eax + 0xc], ecx
mov eax, esi
call fcn.0040e7b0
mov eax, dword [edi + 0xc4]
lea esi, [edi + 0xb5c]
push eax
mov ecx, esi
call fcn.0041f0c4
push 1
push 0x64
push 0x12c
push 0x116
push 0x11
mov ecx, esi
call fcn.0041f14f
push 1
push 0x20
push 0x66
lea esi, [edi + 0xbb0]
push 0x17c
push 0xd2
mov ecx, esi
call fcn.0041f14f
push 0x85
push 0x85
push 0x86
mov ebx, esi
call fcn.0040e550
mov eax, 0xff
mov ebx, 1
mov dword [edi + 0xc60], ebx
mov dword [esi + 0x9c], eax
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], eax
mov dword [esi + 0xb0], ebx
call fcn.0040daf0
push ebx
push 0x21
push 0x7b
push 0x87
lea esi, [edi + 0x814]
push 0x69
mov ecx, esi
call fcn.0041f14f
push 0x3e9
push 0x3e9
push 0x3e9
push esi
call fcn.0040e630
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x464f74
call fcn.00403960
mov ecx, esi
call fcn.0040e710
mov dword [edi + 0x8c4], ebx
mov dword [esi + 0xb0], ebx
mov eax, 0xff
mov dword [esi + 0x9c], eax
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], eax
or eax, 0xffffffff
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x8c], eax
mov dword [edi + 0x88c], ebx
xor eax, eax
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd4], eax
mov dword [esi + 0x84], 0x2d
mov dword [esi + 0x88], 9
call fcn.0040daf0
push ebx
push 0x21
push 0x7b
push 0xaf
lea esi, [edi + 0xd58]
push 0x69
mov ecx, esi
call fcn.0041f14f
push 0x8d
push 0x8d
push 0x8e
push esi
call fcn.0040e630
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x464f7c
call fcn.00403960
mov ecx, esi
call fcn.0040e710
mov dword [edi + 0xe08], ebx
mov eax, 0xff
mov dword [esi + 0x9c], eax
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], eax
mov eax, 0xff4c4c4c
mov dword [esi + 0xb0], ebx
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x8c], eax
xor eax, eax
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd4], eax
mov dword [esi + 0x84], 0x19
mov dword [esi + 0x88], 9
call fcn.0040daf0
mov eax, dword [edi + 0x604]
mov edx, dword [eax + 0x13c]
push 0x4b1
push edi
lea ecx, [esp + 0x28]
push ecx
lea esi, [edi + 0x604]
push 0x50000100
push 0x464f8c
mov ecx, esi
mov dword [esp + 0x34], 0x26
mov dword [esp + 0x38], 0x101
mov dword [esp + 0x3c], 0xbe
mov dword [esp + 0x40], 0x110
call edx
call fcn.00402620
mov eax, 0x4c4c4c
push 0
mov ecx, esi
mov dword [edi + 0x75c], eax
mov dword [edi + 0x758], 0xffffff
mov dword [edi + 0x760], eax
mov dword [edi + 0x770], ebx
call fcn.0041f18f
mov eax, dword [edi + 0xf0]
mov eax, dword [eax + 0x13c]
push 0x253
push edi
lea edx, [esp + 0x28]
push edx
lea ecx, [edi + 0xf0]
push 0x50000000
push 0
mov dword [edi + 0x764], ebx
mov dword [esp + 0x34], 0x14
mov dword [esp + 0x38], 0x5f
mov dword [esp + 0x3c], 0x12c
mov dword [esp + 0x40], 0xb9
call eax
mov ecx, edi
call fcn.00405e30
push 0x464fac
mov ecx, edi
call fcn.0041f0c4
push str.dialog
push str.32770
call dword [sym.imp.USER32.dll_FindWindowW]
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x40]
push ebx
sub ecx, 0x28
push ecx
sub edx, 9
push edx
push 0x1e
push 5
push edi
mov ecx, edi
call fcn.0041f457
mov eax, dword [edi + 0x20]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov byte [esp + 0x1068], 2
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], vtable.CRgn.0
call fcn.00401e20
mov eax, dword [esp + 0x50]
mov byte [esp + 0x1068], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404c9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1068], 0xffffffff
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404cc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
mov ecx, dword [esp + 0x1060]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1048]
xor ecx, esp
call fcn.004422a2
mov esp, ebp
pop ebp
ret