Function at 0x407f30
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
push ebx
push ebp
mov ebx, ecx
push esi
push edi
test ebx, ebx
je case.default.0x407f4c
mov eax, dword [ebx + 0x30]
dec eax
cmp eax, 3
ja case.default.0x407f4c
jmp dword [eax*4 + 0x4081dc]
cmp dword [0xf5487c], 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x407f9f
push str.InitiateGFX
push dword [ebx + 0x38]
call ebp
sub esp, 0x7c
mov dword [method.std::codecvt_char__char__struct__Mbstatet_.virtual_16], eax
mov ecx, 0x1f
mov esi, 0x54fdb8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call eax
add esp, 0x7c
test eax, eax
jne 0x407f9f
push 0x10
push eax
push str.Failed_to_initiate_gfx_plugin.
push dword [0xf54870]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x532b24
push dword [ebx + 0x38]
call ebp
mov dword [0x550088], eax
test eax, eax
je 0x407fbd
push dword [0xf54878]
call eax
add esp, 4
cmp dword [0xf5487c], 0
jne case.default.0x407f4c
push 0x532b30
push dword [ebx + 0x38]
call ebp
mov dword [fcn.00401ae0], eax
test eax, eax
je case.default.0x407f4c
pop edi
pop esi
pop ebp
pop ebx
add esp, 4
jmp eax
cmp dword [0xf5487c], 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x408036
push str.InitiateAudio
push dword [ebx + 0x38]
call ebp
sub esp, 0x3c
mov dword [method.std::codecvt_char__char__struct__Mbstatet_.virtual_16], eax
mov ecx, 0xf
mov esi, 0x54ff14
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call eax
add esp, 0x3c
test eax, eax
jne 0x408036
push 0x10
push eax
push str.Failed_to_initiate_audio_plugin.
push dword [0xf54870]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x532b70
push dword [ebx + 0x38]
call ebp
mov dword [0x550088], eax
test eax, eax
je 0x408054
push dword [0xf54878]
call eax
add esp, 4
cmp dword [0xf5487c], 0
jne case.default.0x407f4c
push 0x532b7c
push dword [ebx + 0x38]
call ebp
mov dword [fcn.00401ae0], eax
test eax, eax
je case.default.0x407f4c
pop edi
pop esi
pop ebp
pop ebx
add esp, 4
jmp eax
cmp dword [0xf5487c], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x408101
mov eax, dword [ebx + 0x38]
mov ecx, 0x101
cmp word [ebx + 0x34], cx
jne 0x4080e4
push 0x532b88
push eax
call edi
mov ecx, dword [0x5500c8]
sub esp, 0x14
mov edx, esp
mov esi, eax
mov eax, dword [0x5500d4]
mov dword [fcn.00401ae0], esi
mov dword [edx], ecx
mov ecx, dword [0x5500cc]
mov dword [edx + 4], ecx
mov ecx, dword [0x5500d0]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov eax, dword [0x5500d8]
mov dword [edx + 0x10], eax
call esi
add esp, 0x14
jmp 0x408101
push str.InitiateControllers
push eax
call edi
push 0x550050
push dword [0xf54870]
mov dword [0x54ff5c], eax
call eax
add esp, 8
push 0x532bb0
push dword [ebx + 0x38]
call edi
mov dword [0x550088], eax
test eax, eax
je 0x40811f
push dword [0xf54878]
call eax
add esp, 4
cmp dword [0xf5487c], 0
jne case.default.0x407f4c
push 0x532bbc
push dword [ebx + 0x38]
call edi
mov dword [fcn.00401ae0], eax
test eax, eax
je case.default.0x407f4c
pop edi
pop esi
pop ebp
pop ebx
add esp, 4
jmp eax
cmp dword [0xf5487c], 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x408190
push str.InitiateRSP
push dword [ebx + 0x38]
call ebp
lea ecx, [esp + 0x10]
mov dword [fcn.00401ae0], eax
push ecx
sub esp, 0x70
mov dword [esp + 0x84], 0
mov ecx, 0x1c
mov esi, 0x54ffd8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call eax
add esp, 0x74
push str.DllConfig
push dword [ebx + 0x38]
call ebp
mov dword [0x550088], eax
test eax, eax
je 0x4081ae
push dword [0xf54878]
call eax
add esp, 4
cmp dword [0xf5487c], 0
jne case.default.0x407f4c
push str.CloseDLL
push dword [ebx + 0x38]
call ebp
mov dword [fcn.00401ae0], eax
test eax, eax
je case.default.0x407f4c
pop edi
pop esi
pop ebp
pop ebx
add esp, 4
jmp eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret