Function at 0x4f180c
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.00406eb4
mov ebx, 0x50c538
xor eax, eax
push ebp
push 0x4f1c3d
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov byte [0x512350], 0
cmp dword [ebp - 4], 0
jne 0x4f184f
lea eax, [ebp - 4]
mov edx, 0x4f1c5c
call fcn.00406f20
mov eax, dword [0x51234c]
mov edx, dword [eax]
call dword [edx]
xor edx, edx
push ebp
push 0x4f1c20
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x50c534], 0
jne 0x4f1bf8
mov byte [0x512350], 0
mov byte [0x512351], 0
mov eax, dword [ebp - 4]
call fcn.00406f58
push eax
call sub.kernel32.dll_LoadLibraryW
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x4f1bfc
push 0x4f1c74
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c530], eax
push 0x4f1c80
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c52c], eax
push 0x4f1c90
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c50c], eax
push 0x4f1c9c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4ec], eax
push 0x4f1ca8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4a4], eax
push 0x4f1cb8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c49c], eax
push 0x4f1cc4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4a0], eax
push 0x4f1cd0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c514], eax
push 0x4f1cd8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c510], eax
push 0x4f1ce0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c508], eax
push 0x4f1ce8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c504], eax
push 0x4f1cf4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c500], eax
push 0x4f1d00
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4cc], eax
push 0x4f1d0c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4fc], eax
push 0x4f1d14
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4f8], eax
push 0x4f1d1c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4f4], eax
push 0x4f1d28
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4f0], eax
push 0x4f1d34
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4e8], eax
push 0x4f1d3c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4e4], eax
push 0x4f1d44
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4e0], eax
push 0x4f1d4c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4d8], eax
push 0x4f1d54
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4dc], eax
push 0x4f1d60
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c51c], eax
push 0x4f1d68
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4d4], eax
push 0x4f1d70
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4d0], eax
push 0x4f1d78
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4c8], eax
push 0x4f1d84
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4c4], eax
push 0x4f1d90
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c518], eax
push 0x4f1d98
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4bc], eax
push 0x4f1da8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4b8], eax
push 0x4f1db8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4b0], eax
push 0x4f1dc8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4b4], eax
push 0x4f1ddc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4a8], eax
push 0x4f1dec
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4ac], eax
push 0x4f1dfc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c4c0], eax
push 0x4f1e08
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c520], eax
push 0x4f1e14
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c524], eax
push 0x4f1e24
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c528], eax
cmp dword [0x50c520], 0
je 0x4f1b61
cmp dword [0x50c524], 0
je 0x4f1b61
cmp dword [0x50c528], 0
jne 0x4f1b65
xor eax, eax
jmp 0x4f1b67
mov al, 1
mov byte [0x512350], al
cmp byte [0x512350], 0
jne 0x4f1bf2
push 0x4f1e30
call sub.kernel32.dll_LoadLibraryW
mov dword [0x50c53c], eax
cmp dword [0x50c53c], 0
je 0x4f1bf2
push 0x4f1e08
mov eax, dword [0x50c53c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c520], eax
push 0x4f1e14
mov eax, dword [0x50c53c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c524], eax
push 0x4f1e24
mov eax, dword [0x50c53c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x50c528], eax
cmp dword [0x50c520], 0
je 0x4f1be7
cmp dword [0x50c524], 0
je 0x4f1be7
cmp dword [0x50c528], 0
jne 0x4f1beb
xor eax, eax
jmp 0x4f1bed
mov al, 1
mov byte [0x512351], al
mov byte [ebp - 5], 1
jmp 0x4f1bfc
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
je 0x4f1c08
inc dword [0x50c534]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f1c27
mov eax, dword [0x51234c]
mov edx, dword [eax]
call dword [edx + 4]
ret