Function at 0x40bea0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x43ec3c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c0
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x14], esi
mov al, byte [esi + 0x144]
test al, al
je 0x40bed6
mov al, 1
jmp 0x40c575
mov ebx, dword [esp + 0x4e0]
lea eax, [esp + 0x13]
push 0
push eax
push ebx
call fcn.004096a0
add esp, 0xc
test al, al
je 0x40c573
mov al, byte [esp + 0x13]
test al, al
jne 0x40c573
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str.AutoPatchconfig.ini
push 0
push str.Default_Mode
push str.program
call ebp
xor ecx, ecx
push ebx
test eax, eax
push 0x2710
push str.QLinkTimeOut
setne cl
push str.time
mov dword [esi + 4], ecx
call ebp
push ebx
push 0x2710
push str.QSendTimeOut
push str.time
mov dword [esi + 8], eax
call ebp
push ebx
push 0x2710
push str.QReceiveTimeOut
push str.time
mov dword [esi + 0xc], eax
call ebp
push ebx
push 0x2710
push str.DLinkTimeOut
push str.time
mov dword [esi + 0x10], eax
call ebp
push ebx
push 0x2710
push str.DSendTimeOut
push str.time
mov dword [esi + 0x14], eax
call ebp
push ebx
push 0x2710
push str.DReceiveTimeOut
push str.time
mov dword [esi + 0x18], eax
call ebp
lea edi, [esi + 0x20]
push ebx
push 0x104
push edi
push 0x45207c
push str.Server
push str.Manual
mov dword [esi + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jne 0x40bfd1
push str.Serverhttp:__222.77.188.188_ftpdown_downLoad.php_v
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [esi + 8]
mov eax, 0x3e8
cmp ecx, eax
jae 0x40bfe0
mov dword [esi + 8], eax
cmp dword [esi + 0xc], eax
jae 0x40bfe8
mov dword [esi + 0xc], eax
cmp dword [esi + 0x10], eax
jae 0x40bff0
mov dword [esi + 0x10], eax
cmp dword [esi + 0x14], eax
jae 0x40bff8
mov dword [esi + 0x14], eax
cmp dword [esi + 0x18], eax
jae 0x40c000
mov dword [esi + 0x18], eax
cmp dword [esi + 0x1c], eax
jae 0x40c008
mov dword [esi + 0x1c], eax
mov dl, byte [0x45207c]
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x2d1]
mov byte [esp + 0x2d0], dl
mov byte [esp + 0xc8], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xc9]
mov byte [esp + 0x1cc], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x1cd]
mov byte [esp + 0x34], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x48], dl
mov byte [esp + 0x60], dl
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x35], eax
mov dword [esp + 0x49], ecx
mov dword [esp + 0x61], edx
mov dword [esp + 0x39], eax
mov dword [esp + 0x4d], ecx
mov dword [esp + 0x65], edx
mov dword [esp + 0x3d], eax
mov dword [esp + 0x51], ecx
mov dword [esp + 0x69], edx
xor edi, edi
mov dword [esp + 0x41], eax
mov dword [esp + 0x55], ecx
mov dword [esp + 0x6d], edx
push ebx
push edi
mov word [esp + 0x4d], ax
mov word [esp + 0x61], cx
mov word [esp + 0x79], dx
push str.GroupAmount
push str.Header
mov byte [esp + 0x57], al
mov byte [esp + 0x6b], cl
mov byte [esp + 0x83], dl
call ebp
cmp eax, 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x18], 1
jl 0x40c465
jmp 0x40c0e5
xor edi, edi
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xc8]
push eax
push str.Group_d
push ecx
call fcn.00421907
add esp, 0xc
lea edx, [esp + 0xc8]
push ebx
push edi
push str.Count
push edx
call ebp
mov cl, byte [esp + 0x13]
mov dword [esp + 0x30], eax
mov byte [esp + 0x1c], cl
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x4d8], edi
mov edi, 1
cmp eax, edi
mov dword [esp + 0x2c], edi
jl 0x40c3ef
push edi
lea edx, [esp + 0x1d0]
push str.Server_d
push edx
call fcn.00421907
add esp, 0xc
lea eax, [esp + 0x2d0]
lea ecx, [esp + 0x1cc]
lea edx, [esp + 0xc8]
push ebx
push 0x200
push eax
push 0x45207c
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x7c]
push eax
lea edx, [esp + 0x84]
push ecx
lea eax, [esp + 0x68]
push edx
lea ecx, [esp + 0x84]
push eax
lea edx, [esp + 0x58]
push ecx
lea eax, [esp + 0x48]
push edx
push eax
lea ecx, [esp + 0x2ec]
push str._s__s__d__s__d__d__d
push ecx
call fcn.00422412
add esp, 0x24
cmp eax, 7
jne 0x40c3de
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x88]
mov byte [esp + 0x88], dl
call fcn.00403320
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x98]
mov byte [esp + 0x4dc], 1
mov byte [esp + 0x98], al
call fcn.00403320
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0xac], cl
lea ecx, [esp + 0xac]
mov byte [esp + 0x4dc], 2
call fcn.00403320
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x4dc], 3
mov ebp, ecx
lea ecx, [esp + 0x88]
push ebp
call fcn.00403660
test al, al
je 0x40c27d
mov edi, dword [esp + 0x88]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x8c], ebp
mov byte [eax + ebp], 0
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x98]
push ebp
call fcn.00403660
test al, al
je 0x40c2d1
mov edi, dword [esp + 0x98]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x48]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x9c], ebp
mov byte [eax + ebp], 0
mov ecx, dword [esp + 0x78]
lea edi, [esp + 0x60]
mov dword [esp + 0xa4], ecx
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0xac]
push ebp
call fcn.00403660
test al, al
je 0x40c330
mov edi, dword [esp + 0xac]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x60]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xb0], ebp
mov byte [eax + ebp], 0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xb8], ecx
lea ecx, [esp + 0x84]
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x24]
push ecx
xor edi, edi
push 1
push edx
lea ecx, [esp + 0x28]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc8], edi
call fcn.004084b0
push 1
lea ecx, [esp + 0xac]
mov byte [esp + 0x4dc], 0
call fcn.00403320
push 1
lea ecx, [esp + 0x98]
call fcn.00403320
mov ecx, dword [esp + 0x88]
cmp ecx, edi
je 0x40c3bf
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x40c3b6
cmp al, 0xff
je 0x40c3b6
dec al
mov byte [ecx], al
jmp 0x40c3bf
push ecx
call fcn.0043359c
add esp, 4
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
inc edi
cmp edi, eax
mov dword [esp + 0x2c], edi
jle 0x40c140
mov eax, dword [esi + 0x150]
lea ecx, [esi + 0x148]
lea edx, [esp + 0x1c]
push edx
push 1
push eax
call fcn.0040cdc0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov dword [esp + 0x4d8], 0xffffffff
mov edi, eax
je 0x40c433
mov ecx, esi
call fcn.00406af0
add esi, 0x44
cmp esi, edi
jne 0x40c421
mov esi, dword [esp + 0x20]
push esi
call fcn.0043359c
mov ecx, dword [esp + 0x78]
xor eax, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jle 0x40c0e3
xor edi, edi
mov eax, dword [esi + 0x14c]
cmp eax, edi
je 0x40c573
mov ecx, dword [esi + 0x150]
sub ecx, eax
test ecx, 0xfffffff0
je 0x40c573
push ebx
lea edx, [esp + 0x2d4]
push 0x200
push edx
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x2dc]
push 0x45207c
push str.Server
push str.Statistics
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edi, [esp + 0x2d0]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esi + 0x15c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x40c4dd
call fcn.0042e0ea
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x40c50b
mov al, byte [ecx - 1]
test al, al
je 0x40c50b
cmp al, 0xff
je 0x40c50b
test ebp, ebp
jne 0x40c538
dec al
push ebp
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.00403320
mov byte [esi + 0x144], 1
mov al, 1
jmp 0x40c575
test ebp, ebp
jne 0x40c523
push 1
mov ecx, ebx
call fcn.00403320
mov byte [esi + 0x144], 1
mov al, 1
jmp 0x40c575
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x40c52f
cmp eax, ebp
jae 0x40c540
push 1
mov ecx, ebx
call fcn.00403320
push ebp
mov ecx, ebx
call fcn.00403a50
mov edi, dword [ebx + 4]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0x2d0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x14]
mov dword [ebx + 8], ebp
mov byte [ecx + ebp], 0
mov byte [esi + 0x144], 1
jmp 0x40c575
xor al, al
mov ecx, dword [esp + 0x4d0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4cc
ret 4