Function at 0x4c3670
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5c]
push edi
cmp dword [esi], 0xfffffc19
jne 0x4c36b3
push 0x5b9260
lea eax, [esp + 0x20]
push 0x20
push eax
push str.1966075
push str.Flag
push str.Toolbar
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x1c]
push ecx
call fcn.004d6be0
add esp, 4
mov dword [esi], eax
mov cl, byte [esi]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x14], eax
test cl, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
je 0x4c36f7
cmp edx, eax
je 0x4c36ea
mov ecx, 5
mov esi, ebx
mov edi, edx
mov eax, 1
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ebp, 1
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
test byte [esi], 2
je 0x4c3728
test edx, edx
je 0x4c3715
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x14]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
test byte [esi], 4
je 0x4c3759
test edx, edx
je 0x4c3746
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x28]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
test byte [esi], 8
je 0x4c378a
test edx, edx
je 0x4c3777
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x3c]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
test byte [esi], 0x10
je 0x4c37bb
test edx, edx
je 0x4c37a8
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x50]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
test byte [esi], 0x20
je 0x4c37ec
test edx, edx
je 0x4c37d9
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x64]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
test byte [esi], 0x40
je 0x4c381d
test edx, edx
je 0x4c380a
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x78]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
cmp byte [esi], 0
jns 0x4c3851
test edx, edx
je 0x4c383e
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x8c]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
mov ecx, dword [esi]
test ch, 1
je 0x4c3887
test edx, edx
je 0x4c3874
lea ecx, [eax + eax*4]
lea esi, [ebx + 0xa0]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
mov ecx, dword [esi]
test ch, 2
je 0x4c38bd
test edx, edx
je 0x4c38aa
lea ecx, [eax + eax*4]
lea esi, [ebx + 0xb4]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
mov ecx, dword [esi]
test ch, 4
je 0x4c38f3
test edx, edx
je 0x4c38e0
lea ecx, [eax + eax*4]
lea esi, [ebx + 0xc8]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc ecx
inc edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
inc ebp
test dword [esi], 0x100000
je 0x4c3936
add ebp, 2
mov dword [esp + 0x18], 2
test edx, edx
je 0x4c3936
lea ecx, [eax + eax*4]
lea esi, [ebx + 0xdc]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + eax*4]
lea esi, [ebx + 0xf0]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov ecx, dword [esi]
test ch, 8
je 0x4c3963
test edx, edx
je 0x4c3959
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x104]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
inc edi
inc ebp
mov dword [esp + 0x10], edi
mov ecx, dword [esi]
test ch, 0x10
je 0x4c3990
test edx, edx
je 0x4c3986
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x118]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
inc edi
inc ebp
mov dword [esp + 0x10], edi
mov ecx, dword [esi]
test ch, 0x20
je 0x4c39bd
test edx, edx
je 0x4c39b3
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x12c]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
inc edi
inc ebp
mov dword [esp + 0x10], edi
mov ecx, dword [esi]
test ch, 0x40
je 0x4c39ea
test edx, edx
je 0x4c39e0
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x140]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
inc edi
inc ebp
mov dword [esp + 0x10], edi
mov ecx, dword [esi]
test ch, ch
jns 0x4c3a16
test edx, edx
je 0x4c3a0c
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x154]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
inc edi
inc ebp
mov dword [esp + 0x10], edi
test dword [esi], 0x10000
je 0x4c3a44
test edx, edx
je 0x4c3a3a
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x168]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
inc edi
inc ebp
mov dword [esp + 0x10], edi
test dword [esi], 0x20000
je 0x4c3a9b
mov edi, dword [esp + 0x18]
add edi, 3
test edx, edx
mov dword [esp + 0x18], edi
je 0x4c3a9b
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x17c]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x190]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x1a4]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
test dword [esi], 0x40000
je 0x4c3ac3
test edx, edx
je 0x4c3abf
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x1b8]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
inc dword [esp + 0x10]
test dword [esi], 0x80000
je 0x4c3aea
test edx, edx
je 0x4c3ae3
lea ecx, [eax + eax*4]
lea esi, [ebx + 0x1cc]
inc eax
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10]
inc esi
jmp 0x4c3aee
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x4c3b18
mov edx, dword [esp + 0x70]
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x14]
mov dword [edx], esi
mov edx, dword [esp + 0x78]
mov dword [eax], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x18]
mov dword [edx], ebp
mov dword [eax], ecx
push 0x20
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [esp + 0x18]
mov ecx, dword [0x59f714]
add edx, esi
add ecx, 7
imul edx, ecx
pop edi
pop esi
pop ebp
lea eax, [edx + eax*2 + 2]
pop ebx
add esp, 0x4c
ret