Function at 0x477946
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov edi, 0x5518f8
mov esi, str.mirc.ini
cmp byte [ebx + 0x64c], 0
jne 0x477980
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x10]
push eax
lea edx, [edi + 7]
push edx
push edi
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 1
jne 0x4779e9
lea ecx, [ebx + 4]
push ecx
lea eax, [edi + 0x1d]
push eax
push 0x574b0c
call sub.USER32.dll_wsprintfA
add esp, 0xc
push esi
push 0x64
push 0x574aa8
lea edx, [edi + 0x29]
push edx
push 0x574b0c
lea ecx, [edi + 0x22]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
push 0x574aa8
call fcn.005395b8
pop ecx
test eax, eax
ja 0x477c11
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x3e]
push eax
lea edx, [edi + 0x34]
push edx
lea ecx, [edi + 0x2d]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 2
jne 0x477a37
cmp byte [ebx + 0x64d], 2
jne 0x477a19
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x5c]
push eax
lea edx, [edi + 0x52]
push edx
lea ecx, [edi + 0x4b]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x78]
push eax
lea edx, [edi + 0x70]
push edx
lea ecx, [edi + 0x69]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 3
jne 0x477a97
cmp byte [ebx + 0x64d], 1
jne 0x477a70
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x93]
push eax
lea edx, [edi + 0x8c]
push edx
lea ecx, [edi + 0x85]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0xb2]
push eax
lea edx, [edi + 0xab]
push edx
lea ecx, [edi + 0xa4]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 4
jne 0x477ac7
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0xd1]
push eax
lea edx, [edi + 0xca]
push edx
lea ecx, [edi + 0xc3]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 5
jne 0x477af7
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0xee]
push eax
lea edx, [edi + 0xe5]
push edx
lea ecx, [edi + 0xde]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 6
jne 0x477b27
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x10c]
push eax
lea edx, [edi + 0x102]
push edx
lea ecx, [edi + 0xfb]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 7
jne 0x477b57
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x129]
push eax
lea edx, [edi + 0x120]
push edx
lea ecx, [edi + 0x119]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 8
jne 0x477b87
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x145]
push eax
lea edx, [edi + 0x13d]
push edx
lea ecx, [edi + 0x136]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
cmp byte [ebx + 0x64c], 9
jne 0x477bef
cmp byte [0x58cb84], 0
je 0x477bcb
push edi
mov esi, 0x574aa8
mov edi, 0x58cb84
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
mov byte [0x58cb84], 0
jmp 0x477c11
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x162]
push eax
lea edx, [edi + 0x159]
push edx
lea ecx, [edi + 0x152]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
jmp 0x477c11
push esi
push 0x64
push 0x574aa8
lea eax, [edi + 0x17f]
push eax
lea edx, [edi + 0x176]
push edx
lea ecx, [edi + 0x16f]
push ecx
call sub.KERNEL32.dll_GetPrivateProfileStringA
xor esi, esi
mov dword [ebp - 8], 1
push 0x2c
push 0x574aa8
call fcn.00539518
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x477c7d
mov eax, dword [ebp - 4]
mov byte [eax], 0
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
cmp byte [edx], 0
je 0x477c72
push 0x2c
push dword [ebp - 4]
call fcn.00539518
add esp, 8
test eax, eax
je 0x477c67
mov byte [eax], 0
inc eax
cmp byte [eax], 0
je 0x477c67
push eax
call fcn.00542dbc
pop ecx
mov dword [ebp - 8], eax
push dword [ebp - 4]
call fcn.00542dbc
pop ecx
mov esi, eax
test esi, esi
jg 0x477c9b
mov esi, 0x19c
jmp 0x477c9b
push edi
lea esi, [edi + 0x18c]
mov edi, 0x574aa8
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
mov esi, 0x19c
mov dword [ebp - 8], 1
lea eax, [ebx + 0x7a4]
push esi
mov esi, eax
mov edi, 0x574aa8
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
xor eax, eax
mov dword [ebx + 0x80c], eax
cmp esi, 0x64
jle 0x477ce3
add dword [ebx + 0x80c], 0x64
sub esi, 0x64
cmp esi, 0x64
jg 0x477cd4
mov dword [ebx + 0x808], esi
mov edx, dword [ebp - 8]
mov dword [ebx + 0x810], edx
mov eax, 1
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret 4