Function at 0x46b204
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 4], eax
mov ebx, 0x492b80
mov edi, 0x492b84
xor eax, eax
push ebp
push 0x46b797
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x498d8c]
call fcn.004337ac
xor edx, edx
push ebp
push 0x46b77a
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.0046bda8
test al, al
jne 0x46b75e
mov eax, dword [0x492b74]
call fcn.00405560
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebx], eax
mov eax, dword [0x492b7c]
call fcn.00405560
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [edi], eax
cmp dword [ebx], 0
jne 0x46b28a
mov eax, dword [0x492b78]
call fcn.00405560
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x46b736
cmp dword [edi], 0
je 0x46b736
push 0x46b7ac
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492b90], eax
push 0x46b7bc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492b94], eax
push 0x46b7d0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492b98], eax
push 0x46b7e8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492b9c], eax
push 0x46b800
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492ba0], eax
push 0x46b80c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492ba4], eax
push 0x46b81c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492ba8], eax
push 0x46b828
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bac], eax
push 0x46b838
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bb0], eax
push 0x46b848
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bb4], eax
push 0x46b858
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bb8], eax
push 0x46b868
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bbc], eax
push 0x46b884
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bc0], eax
push 0x46b8a8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bc4], eax
push 0x46b8c4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bc8], eax
push 0x46b8e4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bcc], eax
push 0x46b90c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bd0], eax
push 0x46b92c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bd4], eax
push 0x46b934
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bd8], eax
push 0x46b940
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bdc], eax
push 0x46b94c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492be0], eax
push 0x46b958
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492be4], eax
push 0x46b968
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492be8], eax
push 0x46b974
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bec], eax
push 0x46b980
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bf0], eax
push 0x46b98c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bf4], eax
push 0x46b998
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bfc], eax
push 0x46b9b4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492bf8], eax
push 0x46b9c4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c00], eax
push 0x46b9d8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c04], eax
push 0x46b9f0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c08], eax
push 0x46ba04
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c0c], eax
push 0x46ba18
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c10], eax
push 0x46ba30
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c14], eax
push 0x46ba3c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c18], eax
push 0x46ba50
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c1c], eax
push 0x46ba68
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c20], eax
push 0x46ba80
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c24], eax
push 0x46ba90
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c28], eax
push 0x46ba9c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c2c], eax
push 0x46baa4
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c30], eax
push 0x46bab8
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c34], eax
push 0x46bac8
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c38], eax
push 0x46bad8
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c3c], eax
push 0x46baec
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c40], eax
push 0x46bb00
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c44], eax
push 0x46bb0c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c48], eax
push 0x46bb28
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c4c], eax
push 0x46bb34
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c50], eax
push 0x46bb3c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c54], eax
push 0x46bb4c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c58], eax
push 0x46bb58
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c5c], eax
push 0x46bb6c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c60], eax
push 0x46bb78
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c64], eax
push 0x46bb84
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x492c68], eax
lea eax, [ebp - 4]
mov edx, 0x400
call fcn.004057f0
mov esi, dword [ebp - 4]
test esi, esi
je 0x46b693
sub esi, 4
mov esi, dword [esi]
push esi
mov eax, dword [ebp - 4]
call fcn.00405560
push eax
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetModuleFileNameA_1
lea edx, [ebp - 4]
xchg edx, eax
call fcn.004057f0
mov eax, 0x492b88
mov edx, dword [ebp - 4]
call fcn.00405124
lea eax, [ebp - 4]
mov edx, 0x400
call fcn.004057f0
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x46b6d4
sub ebx, 4
mov ebx, dword [ebx]
push ebx
mov eax, dword [ebp - 4]
call fcn.00405560
push eax
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetModuleFileNameA_1
lea edx, [ebp - 4]
xchg edx, eax
call fcn.004057f0
mov eax, 0x492b8c
mov edx, dword [ebp - 4]
call fcn.00405124
mov byte [ebp - 5], 1
cmp dword [0x492b94], 0
je 0x46b70f
call dword [0x492b94]
cmp dword [0x492b98], 0
je 0x46b71e
call dword [0x492b98]
cmp dword [0x492c4c], 0
je 0x46b72d
call dword [0x492c4c]
mov byte [0x492c6c], 1
jmp 0x46b762
cmp dword [ebx], 0
je 0x46b747
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
mov dword [ebx], eax
cmp dword [edi], 0
je 0x46b758
mov eax, dword [edi]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
mov dword [ebx], eax
mov byte [ebp - 5], 0
jmp 0x46b762
mov byte [ebp - 5], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46b781
mov eax, dword [0x498d8c]
call fcn.004337b4
ret