Function at 0x48e900
Capabilities:
Create process on windows
Read .ini file

Disassembly:
mov eax, 0x104c
call fcn.004d6340
push ebx
push ebp
mov ebp, dword [esp + 0x105c]
mov ebx, dword [esp + 0x1058]
push esi
mov esi, ebp
and esi, 0xffff
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp esi, 0x3e
mov dword [esp + 0x14], 0
jg 0x48e993
je 0x48e96b
mov eax, esi
dec eax
je 0x48e9b5
sub eax, 0x3c
jne 0x48e99b
push 0x5b9260
lea eax, [esp + 0x430]
push 0x104
push eax
push 0x5aae60
push str.ExternalViewer2
push str.Others
call edi
jmp 0x48ea37
push 0x5b9260
lea ecx, [esp + 0x430]
push 0x104
push ecx
push 0x5aae60
push str.ExternalViewer3
push str.Others
call edi
jmp 0x48ea37
cmp esi, 0x459
je 0x48e9b5
lea edx, [esp + 0x42c]
push 0x104
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
jmp 0x48ea37
push 0x5b9260
lea eax, [esp + 0x430]
push 0x104
push eax
push 0x5aae60
push str.ExternalViewer
push str.Others
call edi
lea ecx, [esp + 0x83c]
push 0x208
push ecx
push ebx
call fcn.004c7980
add esp, 0xc
lea edx, [esp + 0x1c]
lea eax, [esp + 0x83c]
push 0x5b9260
push 0x104
push edx
push 0x5aae60
push eax
push str.CustomEditors
call edi
lea ecx, [esp + 0x1c]
push ecx
call fcn.004d6713
add esp, 4
test eax, eax
jbe 0x48ea37
lea edx, [esp + 0x1c]
lea eax, [esp + 0x42c]
push edx
push eax
call fcn.004d631b
add esp, 8
cmp bp, 4
jb 0x48ea7f
cmp bp, 0xa
ja 0x48ea7f
push esi
lea ecx, [esp + 0x840]
push str.ExternalViewer_d
push ecx
call fcn.004d5ee1
add esp, 0xc
lea edx, [esp + 0x42c]
lea eax, [esp + 0x83c]
push 0x5b9260
push 0x104
push edx
push 0x5aae60
push eax
push str.Others
call edi
xor ebp, ebp
cmp word [esp + 0x42c], bp
jne 0x48eaae
mov ecx, dword [0x5b5574]
push ebp
push ebp
push ebp
push ebp
push 0x50e
push ecx
call fcn.004cc7f0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104c
ret
lea edx, [esp + 0x42c]
push 0x22
push edx
mov word [esp + 0x24], bp
call fcn.004d75ed
add esp, 8
cmp eax, ebp
je 0x48eb16
lea ecx, [esp + 0x42c]
xor edx, edx
sub eax, ecx
lea ecx, [esp + 0x1c]
sar eax, 1
mov esi, eax
cmp esi, ebp
setle dl
dec edx
and edx, esi
lea eax, [esp + edx*2 + 0x42c]
push eax
push ecx
call fcn.004d631b
lea edx, [esp + 0x24]
push 1
push edx
call fcn.00454070
lea eax, [esi - 1]
add esp, 0x10
xor ecx, ecx
cmp eax, ebp
setle cl
dec ecx
and eax, ecx
mov word [esp + eax*2 + 0x42c], bp
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push 0x5b9260
push ebp
push str.ShortExtViewer
push str.Others
call esi
mov edi, eax
push ebx
mov dword [esp + 0x1c], edi
mov word [esp + 0x840], bp
call fcn.004381b0
add esp, 4
cmp eax, 1
jne 0x48eb73
lea edx, [esp + 0x83c]
push ebx
push edx
call fcn.004d631b
add esp, 8
cmp edi, ebp
je 0x48eb73
lea eax, [esp + 0x83c]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea ecx, [esp + 0x1c]
push 0x5a0a2c
push ecx
call fcn.004d6acd
add esp, 8
test eax, eax
mov eax, dword [esp + 0x1068]
je 0x48ebc0
cmp eax, ebp
mov dword [esp + 0x14], 1
jne 0x48ebc8
lea edx, [esp + 0x83c]
lea eax, [esp + 0x1c]
push edx
push 0x5a0a2c
push 0x208
push eax
call fcn.004c8d90
add esp, 0x10
jmp 0x48ee11
cmp eax, ebp
je 0x48edf7
push 0x5b9260
push 1
push str.ExtViewerFullLine
push str.Others
xor edi, edi
call esi
mov ecx, dword [0x5b54fc]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push ebp
push ebp
mov esi, eax
push 0x1032
push ecx
mov dword [esp + 0x20], esi
call ebx
test eax, eax
jbe 0x48ee37
cmp esi, ebp
je 0x48ec49
mov edx, dword [0x5b54fc]
push ebp
push ebp
push 0x1032
push edx
call ebx
inc eax
mov ecx, eax
shl ecx, 5
add ecx, eax
shl ecx, 4
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
cmp edi, ebp
jne 0x48ec49
push 0x30
call dword [sym.imp.USER32.dll_MessageBeep]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104c
ret
lea edx, [esp + 0x1c]
lea eax, [esp + 0xc4c]
push edx
push eax
call fcn.004d631b
mov ecx, dword [0x5b54fc]
add esp, 8
xor esi, esi
push ebp
push ebp
push 0x1004
push ecx
call ebx
test eax, eax
jle 0x48eda6
mov edx, dword [0x5b54fc]
push 2
push esi
push 0x102c
push edx
call ebx
cmp eax, 2
jne 0x48ed8d
mov ecx, dword [0x5b54fc]
lea eax, [esp + 0x83c]
push 1
push eax
push esi
push ecx
call fcn.00474d50
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x48ecf3
lea edx, [esp + 0x1c]
push 0x104
lea eax, [esp + 0x840]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x83c]
push ecx
push edx
call fcn.004d631b
lea eax, [esp + 0xc54]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.004d631b
add esp, 0x10
cmp dword [esp + 0x14], ebp
jne 0x48ed15
lea edx, [esp + 0x83c]
lea eax, [esp + 0x1c]
push edx
push 0x59a4b0
push eax
call fcn.004d5ee1
add esp, 0xc
jmp 0x48ed46
lea ecx, [esp + 0xc4c]
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.004d631b
lea eax, [esp + 0x844]
lea ecx, [esp + 0x24]
push eax
push 0x5a0a2c
push 0x208
push ecx
call fcn.004c8d90
add esp, 0x18
cmp dword [esp + 0x10], ebp
je 0x48ed67
lea edx, [esp + 0x1c]
push edx
push edi
call fcn.004d62f1
push 0x59aa8c
push edi
call fcn.004d62f1
add esp, 0x10
jmp 0x48ed8d
push 5
lea eax, [esp + 0x20]
push ebp
lea ecx, [esp + 0x434]
push eax
push ecx
push str.open
push 1
call fcn.0047da80
add esp, 4
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov edx, dword [0x5b54fc]
push ebp
push ebp
push 0x1004
push edx
inc esi
call ebx
cmp esi, eax
jl 0x48ec78
cmp dword [esp + 0x10], ebp
je 0x48ee37
push 5
push ebp
lea eax, [esp + 0x434]
push edi
push eax
push str.open
push 1
call fcn.0047da80
add esp, 4
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push edi
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104c
ret
lea ecx, [esp + 0x83c]
lea edx, [esp + 0x1c]
push ecx
push 0x59a4b0
push edx
call fcn.004d5ee1
add esp, 0xc
push 5
lea eax, [esp + 0x20]
push ebp
lea ecx, [esp + 0x434]
push eax
push ecx
push str.open
push 1
call fcn.0047da80
add esp, 4
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104c
ret