Function at 0x402130
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x105c
call fcn.00405dc0
mov eax, dword [0x409020]
xor eax, esp
mov dword [esp + 0x1058], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
lea eax, [esp + 0x220]
push eax
call fcn.004041c0
xor ebx, ebx
push 0x3ff
lea ecx, [esp + 0xc65]
push ebx
push ecx
mov byte [esp + 0xc6c], bl
call sub.MSVCR80.dll_memset
add esp, 0xc
lea ecx, [esp + 0x220]
call fcn.00404340
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x4021da
mov edx, dword [sym.imp.MSVCR80.dll___argc]
cmp dword [edx], 2
jg 0x4021da
mov eax, dword [esp + 0x250]
movzx edx, word [esp + 0x254]
push str.QQPetAgent
push eax
lea ecx, [esp + 0x444]
push ecx
push edx
push str._v__d__s___s___q__u__n__s
lea eax, [esp + 0xc74]
push 0x3ff
push eax
call dword [sym.imp.MSVCR80.dll__snprintf]
add esp, 0x1c
jmp 0x402203
mov ecx, dword [esp + 0x250]
push str.QQPetAgent
push ecx
push esi
push str._s__q__u__n__s
lea edx, [esp + 0xc70]
push 0x3ff
push edx
call dword [sym.imp.MSVCR80.dll__snprintf]
add esp, 0x18
push 0x103
lea eax, [esp + 0x845]
push ebx
push eax
mov byte [esp + 0x84c], bl
call sub.MSVCR80.dll_memset
add esp, 0xc
lea ecx, [esp + 0x840]
call fcn.00401fb0
test eax, eax
je 0x4023eb
push 0x103
lea ecx, [esp + 0x94d]
push ebx
push ecx
mov byte [esp + 0x954], bl
call sub.MSVCR80.dll_memset
add esp, 0xc
push str.kernelInfo.ini
push ecx
call section..text
add esp, 4
push eax
push str._s_s
mov eax, 0x104
lea edi, [esp + 0x954]
call fcn.00402480
add esp, 0xc
mov edx, edi
push edx
push ebx
push str.version
push str.kernel
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0x103
mov dword [esp + 0x18], eax
lea eax, [esp + 0xb5d]
push ebx
push eax
mov byte [esp + 0xb64], bl
call sub.MSVCR80.dll_memset
add esp, 0xc
mov ecx, edi
push ecx
push 0x104
lea edx, [esp + 0xb60]
push edx
push str.KernelPackage.exe
push str.packetname
push str.kernel
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x103
lea eax, [esp + 0xa55]
push ebx
push eax
mov byte [esp + 0xa5c], bl
call sub.MSVCR80.dll_memset
lea ecx, [esp + 0xb64]
add esp, 0xc
push ecx
push ecx
call section..text
add esp, 4
push eax
push str._s_s
mov eax, 0x104
lea edi, [esp + 0xa5c]
call fcn.00402480
add esp, 0xc
mov edx, edi
push ebx
push edx
call dword [sym.imp.MSVCR80.dll__access]
add esp, 8
test eax, eax
jne 0x402375
lea esi, [esp + 0x18]
call fcn.00401140
mov ecx, esi
call fcn.004012e0
mov edi, dword [esp + 0x14]
cmp edi, eax
jbe 0x402375
lea esi, [esp + 0x18]
call fcn.00401140
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0xa54]
push ecx
push str.SetupPath
push str.Kernel
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push edi
mov ecx, esi
call fcn.00401260
lea esi, [esp + 0x840]
call fcn.00401940
test eax, eax
jne 0x4023c7
push 0x407434
push str.QQPetAgent
mov edx, esi
push edx
lea ecx, [esp + 0x1b]
call fcn.00401a70
test eax, eax
mov eax, esi
je 0x4023b4
neg eax
sbb eax, eax
neg eax
je 0x4023eb
push eax
lea eax, [esp + 0xc64]
push eax
jmp 0x4023df
neg eax
sbb eax, eax
neg eax
je 0x4023eb
push eax
lea ecx, [esp + 0xc64]
push ecx
jmp 0x4023df
lea eax, [esp + 0x840]
neg eax
sbb eax, eax
neg eax
je 0x4023eb
push eax
lea edx, [esp + 0xc64]
push edx
lea ecx, [esp + 0x848]
call fcn.00401df0
lea eax, [esp + 0x220]
push eax
call fcn.004042c0
mov ecx, dword [esp + 0x1064]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00405456
mov esp, ebp
pop ebp
ret 0x10