Function at 0x4bc689
Capabilities:
Check os version
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, 0x55616c
xor eax, eax
mov dword [0x55b564], eax
call fcn.004e31a4
push 0
call fcn.00548d28
pop ecx
push eax
call fcn.00543098
pop ecx
call fcn.0041c46f
push 0x420f1c
push 8
call fcn.00546e84
add esp, 8
call sub.KERNEL32.dll_GetVersion
cmp al, 4
jb 0x4bc6d7
mov dword [0x556164], 1
jmp 0x4bc6fe
call sub.KERNEL32.dll_GetVersion
movzx edx, ax
sar edx, 8
and dl, 0xff
cmp dl, 0x5f
jb 0x4bc6f6
mov dword [0x556164], 1
jmp 0x4bc6fe
xor ecx, ecx
mov dword [0x556164], ecx
call sub.KERNEL32.dll_GetVersion
cmp al, 5
jb 0x4bc713
mov dword [0x556168], 1
jmp 0x4bc71a
xor eax, eax
mov dword [0x556168], eax
call sub.KERNEL32.dll_GetTickCount
mov dword [0x5561a8], eax
xor edx, edx
mov dword [0x5561ac], edx
mov byte [0x5573c8], 0
mov byte [0x55742c], 0
mov byte [0x587f13], 0
mov byte [0x588093], 0
mov byte [0x5514d8], 0
mov byte [0x57a8e6], 0
xor ecx, ecx
mov dword [0x56fb54], ecx
mov byte [0x571463], 0
mov byte [0x56fa50], 0
mov byte [0x577c5c], 0
mov byte [0x578043], 0
xor eax, eax
mov dword [0x54c534], eax
call fcn.0049871e
push dword [ebp + 8]
call fcn.0042ba7d
xor edx, edx
mov dword [0x555120], edx
xor ecx, ecx
mov dword [0x555124], ecx
xor eax, eax
mov dword [0x555128], eax
mov dword [0x54c384], 3
xor edx, edx
mov dword [0x54c388], edx
xor ecx, ecx
mov dword [0x55511c], ecx
xor eax, eax
mov dword [0x5588f8], eax
xor edx, edx
mov dword [0x5588fc], edx
xor ecx, ecx
mov dword [0x558900], ecx
call fcn.004deea4
cmp dword [0x556164], 0
jne 0x4bc887
push 0x8001
call sub.KERNEL32.dll_SetErrorMode
push str.ctl3d32.dll
call sub.KERNEL32.dll_LoadLibraryA
mov ebx, eax
mov dword [esi], ebx
test ebx, ebx
jne 0x4bc808
xor eax, eax
mov dword [esi], eax
push 0
call sub.KERNEL32.dll_SetErrorMode
mov ebx, dword [esi]
test ebx, ebx
je 0x4bc887
push str.Ctl3dRegister
push ebx
call sub.KERNEL32.dll_GetProcAddress
mov dword [0x556170], eax
push str.Ctl3dUnregister
push dword [esi]
call sub.KERNEL32.dll_GetProcAddress
mov dword [0x556178], eax
push str.Ctl3dAutoSubclass
push dword [esi]
call sub.KERNEL32.dll_GetProcAddress
mov dword [0x556174], eax
cmp dword [0x556170], 0
je 0x4bc87c
cmp dword [0x556178], 0
je 0x4bc87c
cmp dword [0x556174], 0
je 0x4bc87c
push dword [0x55b3c4]
call dword [0x556170]
push dword [0x55b3c4]
call dword [0x556174]
jmp 0x4bc887
push dword [esi]
call sub.KERNEL32.dll_FreeLibrary
xor eax, eax
mov dword [esi], eax
call fcn.00498796
push 0
call fcn.004f1c38
push 0
call fcn.0041617a
push 0
call fcn.00511489
push 0
call fcn.0040b05c
call fcn.00481171
push 0
call fcn.00548d28
pop ecx
mov dword [0x54fbc0], eax
xor edx, edx
mov dword [0x550150], edx
push 0x8001
call sub.KERNEL32.dll_SetErrorMode
cmp dword [0x556164], 0
je 0x4bc8e4
push str.shell32.dll
call sub.KERNEL32.dll_LoadLibraryA
mov dword [0x556184], eax
call fcn.004bc586
cmp dword [0x556164], 0
je 0x4bc945
push 0x4a
call sub.USER32.dll_GetSystemMetrics
test eax, eax
jne 0x4bc945
push str.mirc.ini
push 0x3e7
push 0x569f83
push 0x55629e
push 0x556299
push str.editor
call sub.KERNEL32.dll_GetPrivateProfileStringA
push 0x5562a2
push 0x569f83
call fcn.0053977c
add esp, 8
test eax, eax
jne 0x4bc945
push str.riched32.dll
call sub.KERNEL32.dll_LoadLibraryA
mov dword [0x556188], eax
push 0
call sub.KERNEL32.dll_SetErrorMode
pop esi
pop ebx
pop ebp
ret 4