Function at 0x4ef9a8
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
call fcn.0040569c
mov eax, dword [ebp + 0x20]
call fcn.0040569c
mov eax, dword [ebp + 0x10]
call fcn.0040569c
xor eax, eax
push ebp
push 0x4efffd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov dword [0x52df58], eax
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 0xc]
mov byte [eax + 0x2c4], dl
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 4]
add eax, 0x2d4
mov edx, dword [ebp - 0xc]
call fcn.0040523c
mov eax, dword [ebp - 0xc]
call fcn.004056ac
push eax
call sub.kernel32.dll_LoadLibraryA
mov edx, dword [ebp - 4]
mov dword [edx + 0x2d8], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2d8], 0
je 0x4effcf
push 0x4f0010
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x290], eax
push 0x4f0028
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c8], eax
push 0x4f0040
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2cc], eax
push 0x4f005c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2d0], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2cc], 0
je 0x4efadf
xor eax, eax
push ebp
push 0x4efad5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call dword [eax + 0x2cc]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4efadf
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2d0], 0
je 0x4efb16
xor eax, eax
push ebp
push 0x4efb0c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call dword [eax + 0x2d0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4efb16
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2c8], 0
je 0x4efb5e
mov eax, dword [ebp - 4]
cmp dword [eax + 0x270], 0
jne 0x4efb5e
xor eax, eax
push ebp
push 0x4efb54
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4ef194
mov eax, dword [ebp - 4]
call dword [eax + 0x2c8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4efb5e
cmp byte [ebp + 8], 0
je 0x4efb98
mov eax, dword [ebp - 4]
cmp dword [eax + 0x290], 0
jne 0x4efb98
mov eax, dword [ebp - 4]
cmp dword [eax + 0x270], 0
jne 0x4efb98
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x290], edx
mov eax, dword [ebp - 4]
call fcn.004ef2a4
mov byte [ebp - 0xd], 0
jmp 0x4effcf
push 0x4f0078
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x274], eax
push 0x4f0078
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x278], eax
push 0x4f0088
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x27c], eax
push 0x4f0098
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x280], eax
push 0x4f00a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x284], eax
push 0x4f00b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x288], eax
push 0x4f00c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x28c], eax
push 0x4f00d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2a8], eax
push 0x4f00e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2ac], eax
push 0x4f00f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2b0], eax
push 0x4f0108
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2b4], eax
push 0x4f011c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x294], eax
push 0x4f0130
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x298], eax
push 0x4f0148
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x29c], eax
push 0x4f0160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2a0], eax
push 0x4f0174
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2a4], eax
push 0x4f0184
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2b8], eax
push 0x4f0198
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2bc], eax
push 0x4f01b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c0], eax
lea edx, [ebp - 0x20]
mov eax, dword [ebp + 0x20]
call fcn.004f03ec
mov edx, dword [ebp - 0x20]
lea eax, [ebp + 0x20]
call fcn.00405280
mov eax, dword [ebp - 4]
cmp dword [eax + 0x274], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x27c], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28c], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2a8], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x294], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x298], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x29c], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2b8], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2bc], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2c0], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2a0], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2a4], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2b0], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x280], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x284], 0
je 0x4efea9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x288], 0
jne 0x4efeb6
mov eax, dword [ebp - 4]
call fcn.004ef2a4
jmp 0x4effcf
mov eax, dword [ebp - 4]
call fcn.0044fa68
test al, al
je 0x4efecf
mov eax, dword [ebp - 4]
call fcn.0044f6c8
mov dword [ebp - 0x14], eax
jmp 0x4efedc
mov eax, dword [0x527b70]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2cc], 0
je 0x4eff39
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4efeff
mov eax, dword [ebp - 0x18]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x10]
call fcn.004056ac
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp + 0x20]
call fcn.004056ac
push eax
mov al, byte [ebp - 5]
push eax
mov eax, dword [ebp - 4]
call dword [eax + 0x278]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2dc], eax
jmp 0x4eff88
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x4eff50
mov eax, dword [ebp - 0x1c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
call fcn.004056ac
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x20]
call fcn.004056ac
push eax
mov al, byte [ebp - 5]
push eax
mov eax, dword [ebp - 4]
call dword [eax + 0x274]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2dc], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2dc], 0
je 0x4effcb
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2c4], 0
je 0x4effc5
mov eax, dword [ebp - 4]
call fcn.00447564
push eax
mov eax, dword [ebp - 4]
call fcn.00447520
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
push eax
mov eax, dword [ebp - 4]
call dword [eax + 0x288]
mov byte [ebp - 0xd], 1
jmp 0x4effcf
mov byte [ebp - 0xd], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f0004
lea eax, [ebp - 0x20]
call fcn.004051e8
lea eax, [ebp - 0xc]
call fcn.004051e8
lea eax, [ebp + 0x10]
call fcn.004051e8
lea eax, [ebp + 0x20]
call fcn.004051e8
ret