Function at 0x40b6d0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x424814
push eax
mov eax, 0x16b4
mov dword fs:[0], esp
call fcn.004187f0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x16d0]
push edi
lea eax, [esp + 0x20]
push 0
push eax
push 0
push 0x30
mov dword [0x439254], esi
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
lea ecx, [esp + 0xa94]
push 0x64
push ecx
push 0x67
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push 0
push esi
push 0
sub edx, eax
push 0
push edx
mov edx, dword [esp + 0x3c]
sub edx, ecx
push edx
push eax
push ecx
lea eax, [esp + 0xab4]
push 0x820a0000
push eax
push 0x43925c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ebp, eax
push ebp
push 1
mov dword [esp + 0x18], ebp
call fcn.0040e190
add esp, 8
test ebp, ebp
jne 0x40b779
xor eax, eax
jmp 0x40bf8f
push 0x70
call fcn.00417ebc
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
mov dword [esp + 0x16cc], 0
je 0x40b7a8
push esi
push ebp
mov ecx, edi
call dword [sym.imp.uDirector.dll_public:_void___thiscall_IDirector::constructor_struct_HWND_____struct_HINSTANCE____]
mov dword [edi], 0x425664
mov ecx, dword [sym.imp.uDirector.dll_class_IDirector__g_IDirector]
mov dword [esp + 0x16cc], 0xffffffff
cmp dword [ecx], 0
jne 0x40b7cc
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
jmp 0x40bf8f
mov ecx, 0x438908
call fcn.00408860
call fcn.00412700
test eax, eax
jne 0x40b834
lea edx, [esp + 0x684]
push 0x104
push edx
push 0x64
mov ecx, 0x438908
call fcn.00408910
lea eax, [esp + 0x47c]
push 0x104
push eax
push 0x158
mov ecx, 0x438908
call fcn.00408910
lea ecx, [esp + 0x684]
push 0x10
lea edx, [esp + 0x480]
push ecx
push edx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40bf8f
call fcn.00411a40
test eax, eax
jne 0x40b892
lea eax, [esp + 0x47c]
push 0x104
push eax
push 0x64
mov ecx, 0x438908
call fcn.00408910
lea ecx, [esp + 0x684]
push 0x104
push ecx
push 0x156
mov ecx, 0x438908
call fcn.00408910
lea edx, [esp + 0x47c]
push 0x10
lea eax, [esp + 0x688]
push edx
push eax
push ebp
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40bf8f
call fcn.00411950
test eax, eax
jne 0x40b8f0
lea ecx, [esp + 0x47c]
push 0x104
push ecx
push 0x64
mov ecx, 0x438908
call fcn.00408910
lea edx, [esp + 0x684]
push 0x104
push edx
push 0x157
mov ecx, 0x438908
call fcn.00408910
lea eax, [esp + 0x47c]
push 0x10
lea ecx, [esp + 0x688]
push eax
push ecx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40bf8f
call fcn.00407bd0
push eax
push 1
push str.CheckSize
push str.USER
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push 0
mov ebx, eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
test esi, esi
je 0x40b9bc
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xc
push esi
call edi
push 0xa
push esi
mov ebp, eax
call edi
push 8
push esi
mov dword [esp + 0x24], eax
call edi
mov edi, eax
push esi
mov dword [esp + 0x1c], edi
call dword [sym.imp.GDI32.dll_DeleteDC]
test ebx, ebx
je 0x40b9b8
cmp ebp, 8
jle 0x40b95f
cmp edi, 0x320
jl 0x40b95f
cmp dword [esp + 0x1c], 0x258
jge 0x40b9b8
lea edx, [esp + 0xea4]
push 0x104
push edx
push 0x64
mov ecx, 0x438908
call fcn.00408910
lea eax, [esp + 0x12b4]
push 0x104
push eax
push 0x3ea
mov ecx, 0x438908
call fcn.00408910
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0xea4]
push 0x10
lea edx, [esp + 0x12b8]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x40bf8f
mov ebp, dword [esp + 0x10]
mov ecx, dword [sym.imp.uDirector.dll_class_IDirector__g_IDirector]
push fcn.0040c050
push 0xfffffffffffffffc
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
call fcn.004102c0
push eax
call fcn.00410360
mov ecx, dword [0x439254]
lea eax, [esp + 0x10ac]
push 0x104
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x40ba0c
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
jmp 0x40bf8f
xor esi, esi
lea edx, [esp + 0x14bc]
push esi
push esi
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x10b8]
push eax
push ecx
call fcn.004183a3
push esi
lea edx, [esp + 0x14d4]
push esi
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0xcbc]
push eax
push ecx
call fcn.004182ed
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatW]
add esp, 0x28
lea edx, [esp + 0xc9c]
push str.UI_Framework_framework
push edx
call ebx
mov eax, dword [sym.imp.uDirector.dll_class_IDirector__g_IDirector]
push 0x25c
mov eax, dword [eax]
mov dword [eax + 0x28], esi
call fcn.00417ebc
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, esi
mov dword [esp + 0x16cc], 1
je 0x40baa5
mov ecx, dword [sym.imp.uDirector.dll_class_IDirector__g_IDirector]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0xc9c]
push edx
push ecx
mov ecx, eax
call fcn.00401c30
jmp 0x40baa7
xor eax, eax
mov dword [0x439328], eax
mov edx, dword [eax]
or edi, 0xffffffff
push 1
mov ecx, eax
mov dword [esp + 0x16d0], edi
call dword [edx + 4]
mov eax, dword [0x439328]
push str.workarea
push esi
push 1
mov eax, dword [eax + 8]
push 0x14
push eax
call dword [sym.imp.uDTUILib.dll_DTInterface]
mov ecx, dword [0x439328]
mov edx, dword [sym.imp.uDirector.dll_class_IDirector__g_IDirector]
push 0x94
mov eax, dword [ecx + 8]
mov ecx, dword [edx]
mov dword [ecx + 0x14], eax
call fcn.00417ebc
add esp, 0x18
mov dword [esp + 0x14], eax
cmp eax, esi
mov dword [esp + 0x16cc], 2
je 0x40bb15
mov ecx, eax
call fcn.0040e790
mov esi, eax
mov dword [esp + 0x16cc], edi
mov edi, dword [sym.imp.uDirector.dll_public:_int___thiscall_SharedObj::Register_void_]
test esi, esi
je 0x40bb36
mov ecx, esi
call edi
test eax, eax
jne 0x40bb36
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
push 0xc
call fcn.00417ebc
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
mov dword [esp + 0x16cc], 3
je 0x40bb6c
mov ecx, esi
call dword [sym.imp.uDirector.dll_public:_void___thiscall_Module::constructor_void_]
mov dword [esi + 8], 0
mov dword [esi], 0x425640
jmp 0x40bb6e
xor esi, esi
test esi, esi
mov dword [esp + 0x16cc], 0xffffffff
je 0x40bb91
mov ecx, esi
call dword [sym.imp.uDirector.dll_public:_int___thiscall_Module::Register_void_]
test eax, eax
jne 0x40bb91
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
push 8
call fcn.00417ebc
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
mov dword [esp + 0x16cc], 4
je 0x40bbc0
mov ecx, esi
call dword [sym.imp.uDirector.dll_public:_void___thiscall_SharedObj::constructor_void_]
mov dword [esi], 0x42562c
jmp 0x40bbc2
xor esi, esi
test esi, esi
mov dword [esp + 0x16cc], 0xffffffff
je 0x40bbe1
mov ecx, esi
call edi
test eax, eax
jne 0x40bbe1
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
push 0x48
call fcn.00417ebc
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x16cc], 5
je 0x40bc05
mov ecx, eax
call fcn.0040f260
mov ecx, dword [0x43918c]
mov dword [esp + 0x16cc], 0xffffffff
test ecx, ecx
je 0x40bc1c
call edi
call fcn.00407bd0
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
push 0
push str.ForEPoX
push str.EPoX
call esi
test eax, eax
je 0x40be33
call fcn.00407c00
push eax
push 1
push str.FirstRun
push str.User
call esi
test eax, eax
je 0x40be33
mov dx, word [0x437430]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x6e]
mov word [esp + 0x6c], dx
mov word [esp + 0x88c], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x88e]
mov word [esp + 0x274], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x276]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x6c]
push ecx
stosw word es:[edi], ax
call fcn.00407cb0
lea edx, [esp + 0x70]
push 0xffffffffffffffff
push edx
call fcn.00407d40
add esp, 0xc
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x88c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
call fcn.00407bd0
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
lea edx, [esp + 0x278]
push 0x104
push edx
push str.EPoXDemoPictures_
push str.DemoPicPath
push str.EPoX
call esi
lea eax, [esp + 0x274]
lea ecx, [esp + 0x6c]
push eax
push ecx
call ebx
call fcn.00407bd0
push eax
lea edx, [esp + 0x278]
push 0x104
push edx
push str.EPoXDemoMusicEPoXDemo.mp3
push str.DemoPath
push str.EPoX
call esi
lea eax, [esp + 0x274]
lea ecx, [esp + 0x88c]
push eax
push ecx
call ebx
call fcn.00407c00
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea edx, [esp + 0x6c]
push eax
push edx
push 0x42cbf8
push str.User
call esi
call fcn.00407c00
push eax
push 0x42cbf4
push str.second
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbcc
push 0x42cbb8
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbb4
push str.bgmusic
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbb4
push str.FitMusic
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbcc
push str.LoopEffect
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbb4
push str.FILECOUNT
push 0x42cbd0
call esi
call fcn.00407c00
push eax
lea eax, [esp + 0x890]
push eax
push str.File0
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbb4
push str.File0status
push 0x42cbd0
call esi
call fcn.00407c00
push eax
push 0x42cbcc
push str.FirstRun
push str.User
call esi
call fcn.0040e1f0
push 0
push ebp
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov esi, eax
test esi, esi
je 0x40bea2
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
push 0
push 0xf030
push esi
call edi
push 0
push 0xf000
push esi
call edi
lea ecx, [esp + 0xa94]
push 0x104
push ecx
push 0x3e9
mov ecx, 0x438908
mov word [esp + 0xaa0], 0
call fcn.00408910
lea edx, [esp + 0xa94]
push edx
push 0x3e8
push 0x400
push 0xffffffffffffffff
push esi
call dword [sym.imp.USER32.dll_InsertMenuW]
lea eax, [esp + 0x20]
push 0
push eax
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, ecx
shl eax, 5
add eax, ecx
lea eax, [eax + eax*8]
shl eax, 1
cdq
idiv dword [esp + 0x1c]
mov edx, eax
add edx, 6
test edx, edx
jle 0x40bed5
mov esi, edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edi, ecx
sub edi, eax
cmp edi, esi
jle 0x40bf22
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov ebp, edi
sub ebp, ebx
cmp ebp, 0x258
jle 0x40bf1e
sub eax, esi
mov ebp, dword [esp + 0x10]
add eax, ecx
cdq
sub eax, edx
mov ecx, eax
lea eax, [ebx + edi - 0x258]
cdq
sar ecx, 1
sub eax, edx
add esi, ecx
sar eax, 1
lea edx, [eax + 0x258]
jmp 0x40bf2d
mov ebp, dword [esp + 0x10]
xor ecx, ecx
mov esi, edx
xor eax, eax
mov edx, 0x258
sub edx, eax
push 0
sub esi, ecx
push edx
push esi
push eax
push ecx
push ebp
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [0x439328]
call fcn.00402640
mov ecx, dword [0x439328]
mov edx, dword [ecx]
call dword [edx + 8]
mov ecx, dword [sym.imp.uDirector.dll_class_IDirector__g_IDirector]
lea eax, [esp + 0x44]
push eax
push str.32770
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetClassInfoW]
lea ecx, [esp + 0x44]
mov dword [esp + 0x68], str.TotalMedia_Dialog
push ecx
call dword [sym.imp.USER32.dll_RegisterClassW]
call dword [sym.imp.uDiscClub.dll_Ordinal_27]
neg eax
sbb eax, eax
neg eax
mov ecx, dword [esp + 0x16c4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x16c0
ret