Function at 0x500f6f
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x56ea29
call fcn.0053c1d0
sub esp, 0x990
mov eax, dword [0x5af710]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor eax, ebp
mov edi, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x968], edi
mov dword [ebp - 0x98c], ebx
xor esi, esi
cmp ebx, esi
mov dword [ebp - 4], esi
je 0x5016c3
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.00502474
push eax
lea ecx, [ebp - 0x980]
call fcn.004071e0
push 0x572aed
lea ecx, [ebp - 0x944]
mov byte [ebp - 4], 1
call fcn.004071e0
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.0050237b
and dword [ebp - 0x964], esi
test eax, eax
mov dword [ebp - 0x998], eax
jle 0x5016a5
push dword [ebp - 0x964]
mov ecx, ebx
call fcn.0050248b
mov esi, eax
mov eax, dword [esi]
push 0x57e694
push eax
call fcn.0053e16c
test eax, eax
pop ecx
pop ecx
jne 0x50118c
push str.regkey
mov ecx, esi
call fcn.00502474
push eax
lea ecx, [ebp - 0x984]
call fcn.004071e0
push str.regkeyname
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00502474
push eax
lea ecx, [ebp - 0x970]
call fcn.004071e0
push str.regkeydatatype
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.00502474
push eax
lea ecx, [ebp - 0x974]
call fcn.004071e0
push str.value
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00502474
push eax
lea ecx, [ebp - 0x97c]
call fcn.004071e0
lea eax, [ebp - 0x944]
push eax
push ecx
lea eax, [ebp - 0x974]
mov dword [ebp - 0x960], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 6
call fcn.0040b190
push ecx
lea eax, [ebp - 0x970]
mov dword [ebp - 0x96c], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 7
call fcn.0040b190
push ecx
lea eax, [ebp - 0x984]
mov dword [ebp - 0x978], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 8
call fcn.0040b190
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.00500307
test eax, eax
je 0x50114b
push str.lower
push dword [ebp - 0x980]
call fcn.0053e16c
test eax, eax
pop ecx
pop ecx
jne 0x50114b
lea eax, [ebp - 0x944]
push eax
mov ecx, edi
call fcn.004ffbb0
push ecx
lea eax, [ebp - 0x97c]
mov dword [ebp - 0x978], esp
mov ecx, esp
push eax
call fcn.0040b190
push ecx
lea eax, [ebp - 0x944]
mov dword [ebp - 0x960], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 9
call fcn.0040b190
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.005008f3
test eax, eax
jl 0x5016eb
mov ecx, dword [ebp - 0x97c]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x974]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x970]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x984]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.00401250
jmp 0x50168d
mov eax, dword [esi]
push str.file
push eax
call fcn.0053e16c
test eax, eax
pop ecx
pop ecx
jne 0x50168d
push str.filename
mov ecx, esi
call fcn.00502474
push eax
lea ecx, [ebp - 0x948]
call fcn.004071e0
push str.path
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.00502474
push eax
lea ecx, [ebp - 0x940]
call fcn.004071e0
push str.section
mov ecx, esi
mov byte [ebp - 4], 0xb
call fcn.00502474
push eax
lea ecx, [ebp - 0x958]
call fcn.004071e0
push 0x5769cc
mov ecx, esi
mov byte [ebp - 4], 0xc
call fcn.00502474
push eax
lea ecx, [ebp - 0x954]
call fcn.004071e0
push str.lines
mov ecx, esi
mov byte [ebp - 4], 0xd
call fcn.00502474
push eax
lea ecx, [ebp - 0x94c]
call fcn.004071e0
push str.value
mov ecx, esi
mov byte [ebp - 4], 0xe
call fcn.00502474
push eax
lea ecx, [ebp - 0x950]
call fcn.004071e0
lea eax, [ebp - 0x948]
push eax
add edi, 0x8c
lea eax, [ebp - 0x95c]
push edi
push eax
mov byte [ebp - 4], 0xf
call fcn.0040b370
push str._avversion_
push dword [ebp - 0x948]
mov byte [ebp - 4], 0x10
call fcn.0053e16c
add esp, 0x14
test eax, eax
jne 0x50133b
push str.avversion.dat
lea ecx, [ebp - 0x948]
call fcn.00404600
lea eax, [ebp - 0x948]
push eax
lea eax, [ebp - 0x99c]
push edi
push eax
call fcn.0040b370
add esp, 0xc
push eax
lea ecx, [ebp - 0x95c]
mov byte [ebp - 4], 0x11
call fcn.0040b4e0
mov ecx, dword [ebp - 0x99c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x10
call fcn.00401250
mov esi, dword [ebp - 0x95c]
push 0
push esi
call fcn.0053e126
cmp eax, 0xffffffff
pop ecx
pop ecx
jne 0x501341
lea ecx, [esi - 0x10]
call fcn.00401250
mov ecx, dword [ebp - 0x950]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x94c]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x954]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x958]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x940]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x948]
jmp 0x50171b
mov esi, dword [ebp - 0x95c]
mov ebx, str._install_
push ebx
push dword [ebp - 0x940]
call fcn.0053e16c
test eax, eax
pop ecx
pop ecx
je 0x50142d
push 9
lea eax, [ebp - 0x988]
push eax
lea ecx, [ebp - 0x940]
call fcn.00418d7f
push ebx
push dword [ebp - 0x988]
mov byte [ebp - 4], 0x12
call fcn.0053e16c
test eax, eax
pop ecx
pop ecx
jne 0x50141b
push dword [edi]
lea ecx, [ebp - 0x940]
push ebx
call fcn.0042a62e
push 1
lea eax, [ebp - 0x990]
push eax
lea ecx, [ebp - 0x940]
call fcn.00418d32
mov esi, 0x572ea0
push esi
push eax
call fcn.00429c30
pop ecx
pop ecx
mov ecx, dword [ebp - 0x990]
add ecx, 0xfffffff0
mov bl, al
call fcn.00401250
test bl, bl
je 0x5013da
push esi
lea ecx, [ebp - 0x940]
call fcn.0042ad47
lea eax, [ebp - 0x948]
push eax
lea eax, [ebp - 0x940]
push eax
lea eax, [ebp - 0x994]
push eax
call fcn.0040b370
add esp, 0xc
push eax
lea ecx, [ebp - 0x95c]
mov byte [ebp - 4], 0x13
call fcn.0040b4e0
mov ecx, dword [ebp - 0x994]
add ecx, 0xfffffff0
call fcn.00401250
mov esi, dword [ebp - 0x95c]
mov ecx, dword [ebp - 0x988]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x10
call fcn.00401250
mov eax, dword [ebp - 0x94c]
xor ebx, ebx
cmp dword [eax - 0xc], ebx
jne 0x501487
mov edi, 0x400
push edi
lea eax, [ebp - 0x53c]
push ebx
push eax
call fcn.0053c340
add esp, 0xc
push esi
push edi
lea eax, [ebp - 0x53c]
push eax
push 0x572aed
push dword [ebp - 0x954]
push dword [ebp - 0x958]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x944]
call fcn.00404600
jmp 0x501559
push 0x12c
lea eax, [ebp - 0x13c]
push ebx
push eax
call fcn.0053c340
push 0x574434
push esi
call fcn.0053d7d9
mov edi, eax
add esp, 0x14
cmp edi, ebx
je 0x501559
push dword [ebp - 0x94c]
call fcn.0053c6a5
cmp eax, ebx
pop ecx
mov dword [ebp - 0x960], eax
mov dword [ebp - 0x96c], ebx
jle 0x50150c
test byte [edi + 0xc], 0x10
jne 0x50150c
mov ebx, 0x400
push ebx
lea eax, [ebp - 0x93c]
push 0
push eax
call fcn.0053c340
push edi
lea eax, [ebp - 0x93c]
push ebx
push eax
call fcn.0053de6e
add esp, 0x18
inc dword [ebp - 0x96c]
mov eax, dword [ebp - 0x96c]
cmp eax, dword [ebp - 0x960]
jl 0x5014cd
push edi
lea eax, [ebp - 0x13c]
push 0x12c
push eax
call fcn.0053de6e
push edi
call fcn.0053baab
add esp, 0x10
lea eax, [ebp - 0x93c]
push eax
lea ecx, [ebp - 0x944]
call fcn.00404600
push 6
lea eax, [ebp - 0x13c]
push str.client
push eax
call fcn.0053e930
add esp, 0xc
test eax, eax
jne 0x50172b
xor ebx, ebx
mov eax, dword [ebp - 0x944]
cmp dword [eax - 0xc], ebx
je 0x501621
push str.lower
push dword [ebp - 0x980]
call fcn.0053e16c
test eax, eax
pop ecx
pop ecx
jne 0x501621
mov ecx, dword [ebp - 0x968]
lea eax, [ebp - 0x944]
push eax
call fcn.004ffbb0
mov eax, dword [ebp - 0x98c]
mov eax, dword [eax]
push str.date
push eax
call fcn.0053e16c
pop ecx
pop ecx
push ecx
test eax, eax
lea eax, [ebp - 0x950]
mov ecx, esp
mov dword [ebp - 0x978], esp
push eax
jne 0x5015ec
call fcn.0040b190
push ecx
lea eax, [ebp - 0x944]
mov dword [ebp - 0x960], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x14
call fcn.0040b190
mov ecx, dword [ebp - 0x968]
mov byte [ebp - 4], 0x10
call fcn.00500480
jmp 0x501619
call fcn.0040b190
push ecx
lea eax, [ebp - 0x944]
mov dword [ebp - 0x960], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x15
call fcn.0040b190
mov ecx, dword [ebp - 0x968]
mov byte [ebp - 4], 0x10
call fcn.005008f3
cmp eax, ebx
jl 0x5012e2
lea ecx, [esi - 0x10]
call fcn.00401250
mov ecx, dword [ebp - 0x950]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x94c]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x954]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x958]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x940]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x948]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.00401250
mov edi, dword [ebp - 0x968]
mov ebx, dword [ebp - 0x98c]
inc dword [ebp - 0x964]
mov eax, dword [ebp - 0x964]
cmp eax, dword [ebp - 0x998]
jl 0x500ff3
xor esi, esi
mov ecx, dword [ebp - 0x944]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x980]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053aaae
leave
ret 8
mov ecx, dword [ebp - 0x97c]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x974]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x970]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x984]
add ecx, 0xfffffff0
call fcn.00401250
xor esi, esi
inc esi
jmp 0x5016a7
lea ecx, [esi - 0x10]
call fcn.00401250
mov ecx, dword [ebp - 0x950]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x94c]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x954]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x958]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x940]
add ecx, 0xfffffff0
call fcn.00401250
mov ecx, dword [ebp - 0x948]
add ecx, 0xfffffff0
call fcn.00401250
jmp 0x5016a5