Function at 0x4ca61c
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.004046dc
mov ebx, 0x4f94b4
xor eax, eax
push ebp
push 0x4caa47
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
cmp dword [ebp - 4], 0
jne 0x4ca658
lea eax, [ebp - 4]
mov edx, 0x4caa60
call fcn.004042c4
mov eax, dword [0x4fe004]
call fcn.0042a2ec
xor eax, eax
push ebp
push 0x4caa2a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4f94b0], 0
jne 0x4caa02
mov byte [0x4fe008], 0
mov byte [0x4fe009], 0
mov eax, dword [ebp - 4]
call fcn.004046ec
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x4caa06
push 0x4caa6c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f94ac], eax
push 0x4caa78
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f94a8], eax
push 0x4caa88
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9488], eax
push 0x4caa94
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9468], eax
push 0x4caaa0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9420], eax
push 0x4caab0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9418], eax
push 0x4caabc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f941c], eax
push 0x4caac8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9490], eax
push 0x4caad0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f948c], eax
push 0x4caad8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9484], eax
push 0x4caae0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9480], eax
push 0x4caaec
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f947c], eax
push 0x4caaf8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9448], eax
push 0x4cab04
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9478], eax
push 0x4cab0c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9474], eax
push 0x4cab14
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9470], eax
push 0x4cab20
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f946c], eax
push 0x4cab2c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9464], eax
push 0x4cab34
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9460], eax
push 0x4cab3c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f945c], eax
push 0x4cab44
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9454], eax
push 0x4cab4c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9458], eax
push 0x4cab58
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9498], eax
push 0x4cab60
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9450], eax
push 0x4cab68
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f944c], eax
push 0x4cab70
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9444], eax
push 0x4cab7c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9440], eax
push 0x4cab88
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9494], eax
push 0x4cab90
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9438], eax
push 0x4caba0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9434], eax
push 0x4cabb0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f942c], eax
push 0x4cabc0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9430], eax
push 0x4cabd4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9424], eax
push 0x4cabe4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f9428], eax
push 0x4cabf4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f943c], eax
push 0x4cac00
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f949c], eax
push 0x4cac0c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f94a0], eax
push 0x4cac1c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f94a4], eax
cmp dword [0x4f949c], 0
je 0x4ca96b
cmp dword [0x4f94a0], 0
je 0x4ca96b
cmp dword [0x4f94a4], 0
jne 0x4ca96f
xor eax, eax
jmp 0x4ca971
mov al, 1
mov byte [0x4fe008], al
cmp byte [0x4fe008], 0
jne 0x4ca9fc
push 0x4cac28
call sub.kernel32.dll_LoadLibraryA
mov dword [0x4f94b8], eax
cmp dword [0x4f94b8], 0
je 0x4ca9fc
push 0x4cac00
mov eax, dword [0x4f94b8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f949c], eax
push 0x4cac0c
mov eax, dword [0x4f94b8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f94a0], eax
push 0x4cac1c
mov eax, dword [0x4f94b8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4f94a4], eax
cmp dword [0x4f949c], 0
je 0x4ca9f1
cmp dword [0x4f94a0], 0
je 0x4ca9f1
cmp dword [0x4f94a4], 0
jne 0x4ca9f5
xor eax, eax
jmp 0x4ca9f7
mov al, 1
mov byte [0x4fe009], al
mov byte [ebp - 5], 1
jmp 0x4caa06
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
je 0x4caa12
inc dword [0x4f94b0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4caa31
mov eax, dword [0x4fe004]
call fcn.0042a2f4
ret