Function at 0x572240
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58da8b
mov eax, dword fs:[0]
push eax
sub esp, 0x36c
mov eax, dword [0x5ebfc4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
call fcn.00563560
call fcn.00408a65
push 0x88
mov eax, dword [eax + 8]
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push dword [edi + 0x5a0]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0x80
push dword [edi + 0x20]
mov dword [edi + 0x5a8], eax
mov dword [ebp - 0x348], ebx
call ebx
push dword [edi + 0x5a4]
push 0
push 0x80
push dword [edi + 0x20]
call ebx
push 0xa
lea ecx, [edi + 0x324]
push str.Background
call fcn.00402430
push edi
lea ecx, [ebp - 0x378]
call fcn.004116b6
mov dword [ebp - 4], 0
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x572e1e
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x572e28
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x358], eax
push 0x5c
lea eax, [ebp - 0x33c]
mov byte [ebp - 4], 1
push 0
push eax
mov dword [ebp - 0x35c], 0
call fcn.0053eae0
add esp, 0xc
mov byte [ebp - 0x325], 1
lea eax, [ebp - 0x35c]
push 0
push eax
push 0x572f60
lea eax, [ebp - 0x33c]
push eax
push dword [ebp - 0x374]
call dword [sym.imp.GDI32.dll_EnumFontFamiliesExW]
cmp dword [ebp - 0x35c], 0
je 0x572371
mov eax, 0x5c3b64
mov ecx, 8
jmp 0x57237b
mov eax, 0x5c3b78
mov ecx, 6
push ecx
push eax
lea ecx, [ebp - 0x358]
call fcn.00402430
lea esi, [edi + 0xf8]
push esi
push 0x100
lea eax, [ebp - 0x2e0]
push eax
push dword [ebp - 0x358]
push str.FontFace
push 0x5c3b9c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x2e0]
lea eax, [edx + 2]
lea ecx, [edi + 0xd0]
mov dword [ebp - 0x344], eax
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x5723c6
sub edx, dword [ebp - 0x344]
lea eax, [ebp - 0x2e0]
sar edx, 1
push edx
push eax
call fcn.00402430
mov eax, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push esi
push 0
push 0x5c3bac
push 0x5c3bc0
mov dword [ebp - 0x340], eax
call eax
mov dword [edi + 0xdc], eax
test eax, eax
js 0x57240f
cmp eax, 4
jle 0x572419
mov dword [edi + 0xdc], 1
push esi
push 0
push str.TestData
push 0x5c3be4
call dword [ebp - 0x340]
mov dword [edi + 0x55c], eax
cmp eax, 1
je 0x572441
mov dword [edi + 0x55c], 0
push esi
push 0
push str.Profile
push 0x5c3c04
call dword [ebp - 0x340]
mov dword [edi + 0x564], eax
cmp eax, 5
jle 0x57246d
mov dword [edi + 0x564], 0
xor eax, eax
jmp 0x572485
cmp eax, 3
je 0x572480
cmp eax, 4
je 0x572480
cmp eax, 5
je 0x572480
xor eax, eax
jmp 0x572485
mov eax, 1
push esi
push 0x64
push 0x5c3c14
push 0x5c3c28
mov dword [edi + 0x568], eax
call dword [ebp - 0x340]
mov dword [edi + 0x558], eax
cmp eax, 0xc8
jg 0x5724b0
cmp eax, 0x32
jge 0x5724ba
mov dword [edi + 0x558], 0x64
push esi
push 0
push 0x5c3c38
push 0x5c3c4c
call dword [ebp - 0x340]
mov dword [edi + 0x554], eax
test eax, eax
js 0x5724dc
cmp eax, 1
jle 0x5724e6
mov dword [edi + 0x554], 0
push str.MB_s
push 0
push 0x143
push dword [edi + 0x2bd0]
call ebx
push str.GB_s
push 0
push 0x143
push dword [edi + 0x2bd0]
call ebx
push str.IOPS
push 0
push 0x143
push dword [edi + 0x2bd0]
call ebx
push 0x5c3c80
push 0
push 0x143
push dword [edi + 0x2bd0]
call ebx
mov ebx, 1
jmp 0x572540
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x572e1e
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x572e2f
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x360], eax
push ebx
lea eax, [ebp - 0x360]
mov byte [ebp - 4], 2
push 0x5c3c88
push eax
call fcn.00404950
mov esi, dword [ebp - 0x360]
add esp, 0xc
push esi
push 0
push 0x143
push dword [edi + 0x2d60]
call dword [ebp - 0x348]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x5725e7
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x572e36
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x572e36
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
inc ebx
cmp ebx, 0xa
jl 0x572540
mov esi, 0xa
mov dword [ebp - 0x34c], esi
lea ebx, [esi + 0x50]
nop
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x572e1e
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x572e3d
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x364], eax
push ebx
push esi
lea eax, [ebp - 0x364]
mov byte [ebp - 4], 3
push str.R_d___W_d__
push eax
call fcn.00404950
mov esi, dword [ebp - 0x364]
add esp, 0x10
push esi
push 0
push 0x143
push dword [edi + 0xf68]
call dword [ebp - 0x348]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x5726a8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x572e44
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x572e44
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebp - 0x34c]
sub ebx, 0xa
add esi, 0xa
mov dword [ebp - 0x34c], esi
test ebx, ebx
jg 0x572600
mov ecx, edi
call fcn.0056ef50
mov dword [edi + 0x410], 0
mov ecx, edi
mov dword [edi + 0x414], 0
mov dword [edi + 0x54c], 0xffffffff
call fcn.005775d0
mov ecx, edi
call fcn.00577c30
mov eax, dword [edi + 0x3bc]
sub eax, 0x10
push eax
call fcn.00401f10
add esp, 4
lea ebx, [edi + 0xf8]
lea esi, [eax + 0x10]
push ebx
push esi
push str.Theme
push 0x5c6fcc
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x572763
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x572e4b
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x572e4b
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push ecx
mov esi, esp
mov dword [ebp - 0x344], esi
mov eax, dword [edi + 0x3c8]
sub eax, 0x10
push eax
call fcn.00401f10
add esp, 4
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.00569fa0
mov esi, dword [ebp - 0x340]
push ebx
push 0
push 0x5c3ca8
push 0x5c3cbc
call esi
mov dword [edi + 0x4fc], eax
test eax, eax
js 0x5727ae
cmp eax, 3
jl 0x5727ba
mov dword [edi + 0x4fc], 0
xor eax, eax
mov ebx, dword [ebp - 0x348]
push 0
push eax
push 0x14e
push dword [edi + 0x2bd0]
call ebx
lea eax, [edi + 0xf8]
push eax
push 4
push 0x5c3ccc
push 0x5c3ce0
call esi
mov dword [edi + 0x500], eax
test eax, eax
js 0x5727f4
cmp eax, 9
jl 0x572803
mov dword [edi + 0x500], 4
mov eax, 4
push 0
push eax
push 0x14e
push dword [edi + 0x2d60]
call ebx
mov eax, dword [str.16MiB]
mov dword [ebp - 0xe0], eax
mov eax, dword [0x5c3cf4]
mov dword [ebp - 0xdc], eax
mov eax, dword [0x5c3cf8]
mov dword [ebp - 0xd8], eax
mov eax, dword [str.32MiB]
mov dword [ebp - 0xd0], eax
mov eax, dword [0x5c3d00]
mov dword [ebp - 0xcc], eax
mov eax, dword [0x5c3d04]
mov dword [ebp - 0xc8], eax
mov eax, dword [str.64MiB]
mov dword [ebp - 0xc0], eax
mov eax, dword [0x5c3d0c]
mov dword [ebp - 0xbc], eax
mov eax, dword [0x5c3d10]
mov dword [ebp - 0xb8], eax
mov eax, dword [str.128MiB]
mov dword [ebp - 0xb0], eax
mov eax, dword [0x5c3d18]
mov dword [ebp - 0xac], eax
mov eax, dword [0x5c3d1c]
mov dword [ebp - 0xa8], eax
movzx eax, word [0x5c3d20]
mov word [ebp - 0xa4], ax
xor eax, eax
mov word [ebp - 0xa2], ax
mov eax, dword [str.256MiB]
mov dword [ebp - 0xa0], eax
mov eax, dword [0x5c3d28]
mov dword [ebp - 0x9c], eax
mov eax, dword [0x5c3d2c]
mov dword [ebp - 0x98], eax
movzx eax, word [0x5c3d30]
mov word [ebp - 0x94], ax
xor eax, eax
mov word [ebp - 0x92], ax
mov eax, dword [str.512MiB]
mov dword [ebp - 0x90], eax
mov eax, dword [0x5c3d38]
mov dword [ebp - 0x8c], eax
mov eax, dword [0x5c3d3c]
mov dword [ebp - 0x88], eax
movzx eax, word [0x5c3d40]
mov word [ebp - 0x84], ax
xor eax, eax
mov word [ebp - 0x82], ax
mov eax, dword [str.1GiB]
mov dword [ebp - 0x80], eax
mov eax, dword [0x5c3d48]
mov dword [ebp - 0x7c], eax
movzx eax, word [0x5c3d4c]
mov word [ebp - 0x78], ax
xor eax, eax
mov dword [ebp - 0x76], eax
mov word [ebp - 0x72], ax
mov eax, dword [str.2GiB]
mov dword [ebp - 0x70], eax
mov eax, dword [0x5c3d54]
mov dword [ebp - 0x6c], eax
movzx eax, word [0x5c3d58]
mov word [ebp - 0x68], ax
xor eax, eax
mov dword [ebp - 0x66], eax
mov word [ebp - 0x62], ax
mov eax, dword [str.4GiB]
mov dword [ebp - 0x60], eax
mov eax, dword [0x5c3d60]
mov dword [ebp - 0x5c], eax
movzx eax, word [0x5c3d64]
mov word [ebp - 0x58], ax
xor eax, eax
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x56], eax
lea esi, [ebp - 0xe0]
mov word [ebp - 0x52], ax
mov eax, dword [str.8GiB]
mov dword [ebp - 0x50], eax
mov eax, dword [0x5c3d6c]
mov dword [ebp - 0x4c], eax
movzx eax, word [0x5c3d70]
mov word [ebp - 0x48], ax
xor eax, eax
mov dword [ebp - 0x46], eax
mov word [ebp - 0x42], ax
mov eax, dword [str.16GiB]
mov dword [ebp - 0x40], eax
mov eax, dword [0x5c3d78]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x5c3d7c]
mov dword [ebp - 0x38], eax
mov eax, dword [str.32GiB]
mov dword [ebp - 0x30], eax
mov eax, dword [0x5c3d84]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x5c3d88]
mov dword [ebp - 0x28], eax
mov eax, dword [str.64GiB]
mov dword [ebp - 0x20], eax
mov eax, dword [0x5c3d90]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5c3d94]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x348], esi
nop
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x572e1e
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x572e52
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x34c], eax
push esi
lea eax, [ebp - 0x34c]
mov byte [ebp - 4], 4
push 0x5c3d98
push eax
call fcn.00404950
mov esi, dword [ebp - 0x34c]
add esp, 0xc
push esi
push 0
push 0x143
push dword [edi + 0x2ef0]
call ebx
mov byte [ebp - 4], 1
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x572ae3
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x572e59
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x572e59
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebp - 0x344]
add dword [ebp - 0x348], 0x10
inc esi
mov dword [ebp - 0x344], esi
cmp esi, 0xd
mov esi, dword [ebp - 0x348]
jl 0x572a40
lea esi, [edi + 0xf8]
push esi
push 6
push 0x5c3da0
push 0x5c3db4
call dword [ebp - 0x340]
mov dword [edi + 0x504], eax
test eax, eax
js 0x572b2e
cmp eax, 0xd
jle 0x572b3d
mov dword [edi + 0x504], 6
mov eax, 6
push 0
push eax
push 0x14e
push dword [edi + 0x2ef0]
call ebx
push esi
push 6
push 0x5c3dc4
push 0x5c3dd4
call dword [ebp - 0x340]
mov ecx, eax
mov dword [edi + 0x50c], ecx
test ecx, ecx
js 0x572b71
cmp ecx, 0xa
jle 0x572b80
mov dword [edi + 0x50c], 6
mov ecx, 6
mov eax, 9
sub eax, ecx
push 0
push ecx
push 0x14e
push dword [edi + 0xf68]
lea eax, [eax + eax*4]
add eax, eax
mov dword [edi + 0x56c], eax
call ebx
push 0
mov ecx, edi
call fcn.0040e4e5
mov ecx, edi
call fcn.0056c090
mov ecx, edi
call fcn.0056e830
mov ecx, edi
call fcn.005671d0
push esi
push 0
push 0x5c3de4
push 0x5c3df8
call dword [ebp - 0x340]
add eax, 0xffffff9c
cmp eax, 0xc8
ja case.0x572be4.101
movzx eax, byte [eax + 0x572e8c]
jmp dword [eax*4 + 0x572e70]
mov eax, 0x8023
mov ecx, 0x64
jmp 0x572c3a
mov eax, 0x8024
mov ecx, 0x7d
jmp 0x572c3a
mov eax, 0x8025
mov ecx, 0x96
jmp 0x572c3a
mov eax, 0x8026
mov ecx, 0xc8
jmp 0x572c3a
mov eax, 0x8027
mov ecx, 0xfa
jmp 0x572c3a
mov eax, 0x8028
mov ecx, 0x12c
jmp 0x572c3a
mov eax, 0x8411
xor ecx, ecx
push ecx
push eax
mov ecx, edi
call fcn.00568720
push dword [edi + 0x308]
mov ecx, edi
call fcn.005638a0
cmp dword [edi + 0x568], 0
mov dword [edi + 0x5ac], 0x1e0
mov dword [edi + 0x5b0], 0x12c
je 0x572c77
mov dword [edi + 0x5ac], 0x2a8
push ecx
mov esi, esp
mov dword [ebp - 0x344], esi
call fcn.00407271
test eax, eax
je 0x572e1e
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
cmp ecx, 0x5940e4
jne 0x572e60
lock inc dword [eax + 0x14]
add eax, 8
add eax, 0x10
mov dword [esi], eax
push 0x5c3e08
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.004022b0
test al, al
jne 0x572ccc
push 0
push 0x5c3e08
mov ecx, esi
call fcn.00402430
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.00566fe0
fld qword [edi + 0x300]
mov ecx, edi
fild dword [edi + 0x5b0]
push 0
fnstcw word [ebp - 0x33e]
fstp qword [ebp - 0x354]
fld qword [ebp - 0x354]
movzx eax, word [ebp - 0x33e]
fmul st(1)
or eax, 0xc00
mov dword [ebp - 0x344], eax
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x354]
mov eax, dword [ebp - 0x354]
push eax
fldcw word [ebp - 0x33e]
fild dword [edi + 0x5ac]
fnstcw word [ebp - 0x33e]
fstp qword [ebp - 0x354]
fmul qword [ebp - 0x354]
movzx eax, word [ebp - 0x33e]
or eax, 0xc00
mov dword [ebp - 0x344], eax
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x354]
mov eax, dword [ebp - 0x354]
push eax
fldcw word [ebp - 0x33e]
call fcn.00563950
push 0
mov ecx, edi
mov dword [edi + 0xe4], 1
call fcn.0040ac5f
push 1
mov ecx, edi
call fcn.0056d040
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x194]
push dword [edi + 0x20]
mov dword [edi + 0x3d0], 0
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x358]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x572df2
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x572e69
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x572e69
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [ebp - 0x378]
call fcn.00411813
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053c0f2
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00402ab0
call edx
jmp 0x57230a
call edx
jmp 0x572566
call edx
jmp 0x5725e7
call edx
jmp 0x572626
call edx
jmp 0x5726a8
call edx
jmp 0x572763
call edx
jmp 0x572a66
call edx
jmp 0x572ae3
mov ecx, eax
call edx
jmp 0x572ca5
mov ecx, edx
call esi
jmp 0x572df2