Function at 0x100045c0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Read .ini file

Disassembly:
call fcn.100025f0
cmp dword [0x10026b78], 0
je 0x100045f0
push 0x10026438
push 0x40
push 1
push dword [0x100268d0]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [0x100268d0]
mov al, byte [0x10026b38]
mov byte [ecx], al
push esi
call fcn.10007bc0
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call fcn.100080b0
push 0x14
call fcn.1000e565
add esp, 4
mov esi, eax
push 0x100266c0
push 0x14
push esi
push 0
push str.Plus_Engine
push str.Drama233_Plus
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 9
push str.RioShiina
push esi
call fcn.1000e52b
add esp, 0xc
test eax, eax
jne 0x10004675
push 0x10005e20
push 0x1002645c
call fcn.10007460
push 0x10005e70
push 0x10026460
call fcn.10007460
push 0x10005e40
push 0x10026464
call fcn.10007460
push 0x10005e90
push 0x10026468
jmp 0x100046c0
push 4
push str.CMVS
push esi
call fcn.1000e52b
add esp, 0xc
test eax, eax
jne 0x100046c5
push 0x10005550
push 0x10026b24
call fcn.10007460
push 0x10005570
push 0x10026b28
call fcn.10007460
push 0x100055a0
push 0x10026b2c
call fcn.10007460
push 0x100055c0
push 0x10026b30
call fcn.10007460
push esi
call fcn.1000e229
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
add esp, 4
cmp dword [0x10026b44], 0
je 0x100047b4
push 0x100266c0
push 0
push str.Mode
push str.CreateFontIndirect
call esi
test eax, eax
jne 0x1000471b
push 0x10023660
push 0x10023674
call fcn.10008600
push 0x10001050
push 0x100263f0
mov dword [0x100263f0], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.CreateFontIndirect
call esi
cmp eax, 1
jne 0x10004756
push 0x10023680
push 0x10023674
call fcn.10008600
push 0x100010d0
push 0x1002640c
mov dword [0x1002640c], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.CreateFontIndirect
call esi
cmp eax, 2
jne 0x100047b4
push 0x10023660
push 0x10023674
call fcn.10008600
push 0x10001050
push 0x100263f0
mov dword [0x100263f0], eax
call fcn.10007460
push 0x10023680
push 0x10023674
call fcn.10008600
push 0x100010d0
push 0x1002640c
mov dword [0x1002640c], eax
call fcn.10007460
cmp dword [0x10026b48], 0
je 0x10004894
push 0x100266c0
push 0
push str.Mode
push str.CreateFont
call esi
test eax, eax
jne 0x100047fb
push str.CreateFontA
push 0x10023674
call fcn.10008600
push 0x10001120
push 0x100263d4
mov dword [0x100263d4], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.CreateFont
call esi
cmp eax, 1
jne 0x10004836
push str.CreateFontW
push 0x10023674
call fcn.10008600
push 0x100011c0
push 0x10026400
mov dword [0x10026400], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.CreateFont
call esi
cmp eax, 2
jne 0x10004894
push str.CreateFontA
push 0x10023674
call fcn.10008600
push 0x10001120
push 0x100263d4
mov dword [0x100263d4], eax
call fcn.10007460
push str.CreateFontW
push 0x10023674
call fcn.10008600
push 0x100011c0
push 0x10026400
mov dword [0x10026400], eax
call fcn.10007460
cmp dword [0x10026b7c], 0
je 0x10004974
push 0x100266c0
push 0
push str.Mode
push str.EnumFontFamiliesEx
call esi
test eax, eax
jne 0x100048db
push str.EnumFontFamiliesExA
push 0x10023674
call fcn.10008600
push 0x10001250
push 0x100263c4
mov dword [0x100263c4], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.EnumFontFamiliesEx
call esi
cmp eax, 1
jne 0x10004916
push str.EnumFontFamiliesExW
push 0x10023674
call fcn.10008600
push 0x100012e0
push 0x100263e4
mov dword [0x100263e4], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.EnumFontFamiliesEx
call esi
cmp eax, 2
jne 0x10004974
push str.EnumFontFamiliesExA
push 0x10023674
call fcn.10008600
push 0x10001250
push 0x100263c4
mov dword [0x100263c4], eax
call fcn.10007460
push str.EnumFontFamiliesExW
push 0x10023674
call fcn.10008600
push 0x100012e0
push 0x100263e4
mov dword [0x100263e4], eax
call fcn.10007460
cmp dword [0x10026b58], 0
je 0x100049a0
push str.CreateFileA
push str.kernel32.dll
call fcn.10008600
push 0x10001760
push 0x100263ec
mov dword [0x100263ec], eax
call fcn.10007460
cmp dword [0x10026b5c], 0
je 0x100049cc
push 0x100236f0
push str.kernel32.dll
call fcn.10008600
push 0x10001820
push 0x100263e0
mov dword [0x100263e0], eax
call fcn.10007460
cmp dword [0x10026b98], 0
je 0x100049f8
push str.lstrcpyA
push str.kernel32.dll
call fcn.10008600
push 0x10001930
push 0x100263dc
mov dword [0x100263dc], eax
call fcn.10007460
cmp dword [0x10026b94], 0
je 0x10004a24
push str.lstrcpyW
push str.kernel32.dll
call fcn.10008600
push 0x10001960
push 0x100263bc
mov dword [0x100263bc], eax
call fcn.10007460
cmp dword [0x10026b9c], 0
je 0x10004a50
push str.TextOutA
push 0x10023674
call fcn.10008600
push 0x10001ac0
push 0x100263a4
mov dword [0x100263a4], eax
call fcn.10007460
cmp dword [0x10026ba0], 0
je 0x10004a7c
push 0x10023720
push 0x10023674
call fcn.10008600
push 0x10001de0
push 0x10026390
mov dword [0x10026390], eax
call fcn.10007460
cmp dword [0x10026b80], 0
je 0x10004b5c
push 0x100266c0
push 0
push str.Mode
push str.GetDriveType
call esi
test eax, eax
jne 0x10004ac3
push str.GetDriveTypeA
push str.kernel32.dll
call fcn.10008600
push 0x100022a0
push 0x10026394
mov dword [0x10026394], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.GetDriveType
call esi
cmp eax, 1
jne 0x10004afe
push str.GetDriveTypeW
push str.kernel32.dll
call fcn.10008600
push 0x100022a0
push 0x100263b0
mov dword [0x100263b0], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.GetDriveType
call esi
cmp eax, 2
jne 0x10004b5c
push str.GetDriveTypeA
push str.kernel32.dll
call fcn.10008600
push 0x100022a0
push 0x10026394
mov dword [0x10026394], eax
call fcn.10007460
push str.GetDriveTypeW
push str.kernel32.dll
call fcn.10008600
push 0x100022a0
push 0x100263b0
mov dword [0x100263b0], eax
call fcn.10007460
cmp dword [0x10026b88], 0
je 0x10004c3c
push 0x100266c0
push 0
push str.Mode
push str.FindFirstFile
call esi
test eax, eax
jne 0x10004ba3
push str.FindFirstFileA
push str.kernel32.dll
call fcn.10008600
push 0x100022b0
push 0x100263b8
mov dword [0x100263b8], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.FindFirstFile
call esi
cmp eax, 1
jne 0x10004bde
push str.FindFirstFileW
push str.kernel32.dll
call fcn.10008600
push 0x100022d0
push 0x100263ac
mov dword [0x100263ac], eax
call fcn.10007460
push 0x100266c0
push 0
push str.Mode
push str.FindFirstFile
call esi
cmp eax, 2
jne 0x10004c3c
push str.FindFirstFileA
push str.kernel32.dll
call fcn.10008600
push 0x100022b0
push 0x100263b8
mov dword [0x100263b8], eax
call fcn.10007460
push str.FindFirstFileW
push str.kernel32.dll
call fcn.10008600
push 0x100022d0
push 0x100263ac
mov dword [0x100263ac], eax
call fcn.10007460
cmp dword [0x10026b84], 0
je 0x10004c68
push str.GetVolumeInformationW
push str.kernel32.dll
call fcn.10008600
push 0x100022f0
push 0x100263b4
mov dword [0x100263b4], eax
call fcn.10007460
cmp dword [0x10026b54], 0
je 0x10004d1f
push 0x100266c0
push 0
push str.Type
push 0x10022bec
call esi
test eax, eax
jne 0x10004cac
push str.GetGlyphOutline
push 0x10023674
call fcn.10008600
push 0x10001570
mov dword [0x100263a0], eax
push 0x100263a0
jmp 0x10004d1a
push 0x100266c0
push 0
push str.Type
push 0x10022bec
call esi
cmp eax, 1
jne 0x10004ce4
push str.GetGlyphOutlineA
push 0x10023674
call fcn.10008600
push 0x10001570
mov dword [0x100263a0], eax
push 0x100263a0
jmp 0x10004d1a
push 0x100266c0
push 0
push str.Type
push 0x10022bec
call esi
cmp eax, 2
jne 0x10004d1f
push 0x100237b4
push 0x10023674
call fcn.10008600
push 0x100013a0
mov dword [0x100263d8], eax
push 0x100263d8
call fcn.10007460
cmp dword [0x10026b4c], 0
je 0x10004d4b
push 0x100237c8
push str.kernel32.dll
call fcn.10008600
push 0x10001330
push 0x100263c0
mov dword [0x100263c0], eax
call fcn.10007460
cmp dword [0x10026b50], 0
je 0x10004d77
push 0x100237dc
push str.kernel32.dll
call fcn.10008600
push 0x10001350
push 0x100263a8
mov dword [0x100263a8], eax
call fcn.10007460
cmp dword [0x10026b60], 0
je 0x10004da3
push str.SetWindowTextA
push 0x10023800
call fcn.10008600
push 0x10001ed0
push 0x100263f8
mov dword [0x100263f8], eax
call fcn.10007460
cmp dword [0x10026b64], 0
je 0x10004dcf
push str.SetWindowTextW
push 0x10023800
call fcn.10008600
push 0x10001f60
push 0x100263fc
mov dword [0x100263fc], eax
call fcn.10007460
cmp dword [0x10026b68], 0
je 0x10004dfb
push str.MessageBoxA
push 0x10023800
call fcn.10008600
push 0x10001ff0
push 0x10026404
mov dword [0x10026404], eax
call fcn.10007460
cmp dword [0x10026b6c], 0
je 0x10004e27
push 0x10023828
push 0x10023800
call fcn.10008600
push 0x10002110
push 0x100263d0
mov dword [0x100263d0], eax
call fcn.10007460
cmp dword [0x10026b74], 0
je 0x10004e53
push 0x10023834
push str.kernel32.dll
call fcn.10008600
push 0x10002320
push 0x10026398
mov dword [0x10026398], eax
call fcn.10007460
cmp dword [0x10026b70], 0
je 0x10004ee1
push 0x100266c0
push 0
push str.Mode
push str.CreateWindowEx
call esi
test eax, eax
jne 0x10004ea6
push str.CreateWindowExA
push 0x10023800
call fcn.10008600
push 0x10001e90
push 0x100263c8
mov dword [0x100263c8], eax
call fcn.10007460
call fcn.10007c20
neg eax
pop esi
sbb eax, eax
inc eax
ret
push 0x100266c0
push 0
push str.Mode
push str.CreateWindowEx
call esi
cmp eax, 1
jne 0x10004ee1
push str.CreateWindowExW
push 0x10023800
call fcn.10008600
push 0x10001eb0
push 0x1002639c
mov dword [0x1002639c], eax
call fcn.10007460
call fcn.10007c20
neg eax
pop esi
sbb eax, eax
inc eax
ret