Function at 0x478360
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405f60
mov ebx, 0x4d740c
xor eax, eax
push ebp
push 0x478793
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov byte [0x4ff2b0], 0
cmp dword [ebp - 4], 0
jne 0x4783a4
lea eax, [ebp - 4]
mov edx, dword [0x4ff288]
call fcn.00405b44
mov eax, dword [0x4ff2ac]
call fcn.00478134
xor eax, eax
push ebp
push 0x478776
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4d7408], 0
jne 0x47874e
mov byte [0x4ff2b0], 0
mov byte [0x4ff2b1], 0
mov eax, dword [ebp - 4]
call fcn.00405f70
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x478752
push 0x4787a4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7404], eax
push 0x4787b0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7400], eax
push 0x4787c0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73e0], eax
push 0x4787cc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73c0], eax
push 0x4787d8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7378], eax
push 0x4787e8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7370], eax
push 0x4787f4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7374], eax
push 0x478800
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73e8], eax
push 0x478808
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73e4], eax
push 0x478810
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73dc], eax
push 0x478818
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73d8], eax
push 0x478824
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73d4], eax
push 0x478830
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73a0], eax
push 0x47883c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73d0], eax
push 0x478844
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73cc], eax
push 0x47884c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73c8], eax
push 0x478858
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73c4], eax
push 0x478864
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73bc], eax
push 0x47886c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73b8], eax
push 0x478874
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73b4], eax
push 0x47887c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73ac], eax
push 0x478884
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73b0], eax
push 0x478890
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73f0], eax
push 0x478898
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73a8], eax
push 0x4788a0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73a4], eax
push 0x4788a8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d739c], eax
push 0x4788b4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7398], eax
push 0x4788c0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73ec], eax
push 0x4788c8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7390], eax
push 0x4788d8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d738c], eax
push 0x4788e8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7384], eax
push 0x4788f8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7388], eax
push 0x47890c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d737c], eax
push 0x47891c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7380], eax
push 0x47892c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d7394], eax
push 0x478938
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73f4], eax
push 0x478944
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73f8], eax
push 0x478954
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73fc], eax
cmp dword [0x4d73f4], 0
je 0x4786b7
cmp dword [0x4d73f8], 0
je 0x4786b7
cmp dword [0x4d73fc], 0
jne 0x4786bb
xor eax, eax
jmp 0x4786bd
mov al, 1
mov byte [0x4ff2b0], al
cmp byte [0x4ff2b0], 0
jne 0x478748
push 0x478960
call sub.kernel32.dll_LoadLibraryA
mov dword [0x4d7410], eax
cmp dword [0x4d7410], 0
je 0x478748
push 0x478938
mov eax, dword [0x4d7410]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73f4], eax
push 0x478944
mov eax, dword [0x4d7410]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73f8], eax
push 0x478954
mov eax, dword [0x4d7410]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d73fc], eax
cmp dword [0x4d73f4], 0
je 0x47873d
cmp dword [0x4d73f8], 0
je 0x47873d
cmp dword [0x4d73fc], 0
jne 0x478741
xor eax, eax
jmp 0x478743
mov al, 1
mov byte [0x4ff2b1], al
mov byte [ebp - 5], 1
jmp 0x478752
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
je 0x47875e
inc dword [0x4d7408]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47877d
mov eax, dword [0x4ff2ac]
call fcn.0047813c
ret