Function at 0x4062c0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb80
push ebx
push esi
push edi
xor edi, edi
mov ebx, dword [ebp + 8]
mov esi, str.SOFTWARE
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
jne 0x406306
lea edx, [esi + 0x201]
push edx
push ebx
call fcn.00404a3c
add esp, 8
test eax, eax
jne 0x4062fa
xor eax, eax
jmp 0x4066ff
push ebx
call fcn.0040627c
pop ecx
jmp 0x4065b1
movsx edx, byte [ebx + 0x30]
add edx, 0x41
push edx
lea ecx, [esi + 0x21e]
push ecx
lea ecx, [ebp - 0x400]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea eax, [ebp - 0x400]
lea edx, [ebp - 0x480]
lea ecx, [esi + 0x23f]
push eax
push 0x80
push edx
push ecx
lea eax, [esi + 0x237]
lea edx, [esi + 0x22b]
push eax
push edx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea ecx, [ebp - 0x480]
push ecx
call fcn.004e0ef8
pop ecx
lea edx, [ebp + eax - 0x480]
test eax, eax
jl 0x40639d
movsx ecx, byte [edx]
cmp ecx, 0x5c
jne 0x406397
lea edx, [ebp - 0x47f]
add eax, edx
push eax
movsx eax, byte [ebx + 0x30]
add eax, 0x61
push eax
lea ecx, [esi + 0x246]
push ecx
lea eax, [ebx + 0x31]
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0x10
jmp 0x40639d
dec eax
dec edx
test eax, eax
jge 0x406369
lea edx, [ebx + 0x31]
push edx
lea ecx, [esi + 0x24d]
push ecx
lea eax, [ebp - 0x400]
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0xc
mov ecx, 3
lea edx, [ebp - 0x400]
push esi
push edi
lea edi, [ebp - 0x480]
mov eax, edi
add esi, 0x267
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
push edx
lea ecx, [ebp - 0x480]
push ecx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegLoadKeyA
test eax, eax
jne 0x40669d
lea ecx, [ebx + 0x31]
push ecx
lea eax, [esi + 0x274]
push eax
lea edx, [ebp - 0x400]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea edx, [ebp - 0x400]
lea ecx, [ebp - 0x480]
push esi
push edi
lea edi, [ebp - 0x480]
add esi, 0x28b
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
push edx
push ecx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegLoadKeyA
test eax, eax
jne 0x40669d
push esi
push edi
add esi, 0x295
lea edi, [ebp - 0x480]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
lea edx, [ebx + 0x31]
push edx
lea ecx, [esi + 0x2a4]
push ecx
lea ecx, [ebp - 0x400]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea eax, [ebp - 0x400]
push eax
lea edx, [ebp - 0x480]
push edx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegLoadKeyA
test eax, eax
jne 0x40669d
push esi
push edi
add esi, 0x2c0
lea edi, [ebp - 0x480]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
lea edx, [ebx + 0x31]
push edx
lea ecx, [esi + 0x2cf]
push ecx
lea ecx, [ebp - 0x400]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea eax, [ebp - 0x400]
push eax
lea edx, [ebp - 0x480]
push edx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegLoadKeyA
test eax, eax
jne 0x40669d
push esi
push edi
add esi, 0x2eb
lea edi, [ebp - 0x480]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea edx, [ebx + 0x31]
push edx
lea ecx, [esi + 0x2f7]
push ecx
lea ecx, [ebp - 0x400]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea eax, [ebp - 0x400]
push eax
lea edx, [ebp - 0x480]
push edx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegLoadKeyA
test eax, eax
jne 0x40669d
lea ecx, [esi + 0x312]
push ecx
push ebx
call fcn.00404a3c
add esp, 8
test eax, eax
jne 0x406555
jmp 0x40669d
mov eax, dword [ebx + 0x18]
mov dword [ebx], eax
mov edx, dword [ebx + 0x1c]
mov dword [ebx + 4], edx
mov ecx, dword [ebx + 0x20]
mov dword [ebx + 8], ecx
cmp dword [ebx + 0xc], 0
jne 0x4065b1
call fcn.004e8220
mov edi, eax
call fcn.004e8220
add edi, eax
add edi, 0x3b9aca00
mov dword [ebx + 0xc], edi
call fcn.004e8220
mov edi, eax
call fcn.004e8220
add edi, eax
add edi, 0x3b9aca00
mov dword [ebx + 0x10], edi
call fcn.004e8220
mov edi, eax
call fcn.004e8220
add edi, eax
add edi, 0x3b9aca00
mov dword [ebx + 0x14], edi
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
jne 0x4065c2
lea edx, [esi + 0x330]
jmp 0x4065c8
lea edx, [esi + 0x339]
push edx
push reloc.WS2_32.DLL_bind
push ebx
call fcn.00404e80
add esp, 0xc
mov edi, eax
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
je 0x4065f9
lea edx, [esi + 0x348]
push edx
push reloc.WS2_32.DLL_bind
push ebx
call fcn.00404e80
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x406602
jmp 0x40669d
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
jne 0x406613
lea edx, [esi + 0x352]
jmp 0x406619
lea edx, [esi + 0x374]
push edx
push reloc.WS2_32.DLL_bind
push ebx
call fcn.00404e80
add esp, 0xc
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
jne 0x40663a
push ebx
call fcn.004061c0
pop ecx
jmp 0x406641
push ebx
call fcn.00406130
pop ecx
push ebx
call fcn.00405bac
pop ecx
movsx ecx, byte [ebx + 0x30]
cmp ecx, 0xffffffff
jne 0x406659
lea ecx, [esi + 0x39c]
jmp 0x40665f
lea ecx, [esi + 0x3d5]
push ecx
push reloc.WS2_32.DLL_bind
push ebx
call fcn.00404e80
add esp, 0xc
test eax, eax
je 0x406672
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
jne 0x406683
lea edx, [esi + 0x414]
jmp 0x406689
lea edx, [esi + 0x44b]
push edx
push reloc.WS2_32.DLL_bind
push ebx
call fcn.00404e80
add esp, 0xc
mov edi, 1
movsx eax, byte [ebx + 0x30]
cmp eax, 0xffffffff
jne 0x4066a8
jmp 0x4066fd
lea edx, [esi + 0x488]
push edx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegUnLoadKeyA
lea ecx, [esi + 0x495]
push ecx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegUnLoadKeyA
lea eax, [esi + 0x49f]
push eax
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegUnLoadKeyA
lea edx, [esi + 0x4ae]
push edx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegUnLoadKeyA
lea ecx, [esi + 0x4bd]
push ecx
push reloc.WS2_32.DLL_bind
call sub.ADVAPI32.DLL_RegUnLoadKeyA
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret