Function at 0x46ef54
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
push edi
test dl, dl
je 0x46ef63
add esp, 0xfffffff0
call fcn.004041f0
mov ebx, edx
mov edi, eax
push 0x46f40c
call sub.kernel32.dll_LoadLibraryA
mov esi, eax
mov dword [edi + 0x1c], esi
test esi, esi
jne 0x46ef90
mov ecx, 0x46f420
mov dl, 1
mov eax, dword [0x4082a8]
call fcn.0040d560
call fcn.00404658
push 0x46f438
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x24], eax
push 0x46f44c
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x28], eax
push 0x46f460
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x2c], eax
push 0x46f470
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x30], eax
push 0x46f480
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x34], eax
push 0x46f490
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x38], eax
push 0x46f4b0
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x3c], eax
push 0x46f4c0
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x40], eax
push 0x46f4cc
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x44], eax
push 0x46f4e0
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x48], eax
push 0x46f4ec
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x4c], eax
push 0x46f4f8
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x50], eax
push 0x46f504
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x54], eax
push 0x46f51c
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x58], eax
push 0x46f528
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x5c], eax
push 0x46f538
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x60], eax
push 0x46f540
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x64], eax
push 0x46f550
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x68], eax
push 0x46f558
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x6c], eax
push 0x46f564
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x70], eax
push 0x46f57c
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x74], eax
push 0x46f588
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x78], eax
push 0x46f594
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x7c], eax
push 0x46f5a0
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x80], eax
push 0x46f5ac
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x84], eax
push 0x46f5bc
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x88], eax
push 0x46f5c8
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x8c], eax
push 0x46f5d8
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x90], eax
push 0x46f5e8
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x94], eax
push 0x46f604
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x98], eax
push 0x46f624
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x9c], eax
push 0x46f638
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xa4], eax
push 0x46f648
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xa0], eax
push 0x46f658
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xa8], eax
push 0x46f66c
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xac], eax
push 0x46f688
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xb0], eax
push 0x46f690
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xb4], eax
push 0x46f69c
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xbc], eax
push 0x46f6a8
mov eax, dword [edi + 0x1c]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov esi, eax
mov dword [edi + 0xb8], esi
cmp dword [edi + 0xb8], 0
je 0x46f269
push 0x46ee48
call esi
cmp dword [edi + 0x24], 0
je 0x46f3d2
cmp dword [edi + 0x28], 0
je 0x46f3d2
cmp dword [edi + 0x2c], 0
je 0x46f3d2
cmp dword [edi + 0x30], 0
je 0x46f3d2
cmp dword [edi + 0x34], 0
je 0x46f3d2
cmp dword [edi + 0x38], 0
je 0x46f3d2
cmp dword [edi + 0x40], 0
je 0x46f3d2
cmp dword [edi + 0x44], 0
je 0x46f3d2
cmp dword [edi + 0x48], 0
je 0x46f3d2
cmp dword [edi + 0x58], 0
je 0x46f3d2
cmp dword [edi + 0x5c], 0
je 0x46f3d2
cmp dword [edi + 0x60], 0
je 0x46f3d2
cmp dword [edi + 0x64], 0
je 0x46f3d2
cmp dword [edi + 0x4c], 0
je 0x46f3d2
cmp dword [edi + 0x50], 0
je 0x46f3d2
cmp dword [edi + 0x54], 0
je 0x46f3d2
cmp dword [edi + 0x3c], 0
je 0x46f3d2
cmp dword [edi + 0x74], 0
je 0x46f3d2
cmp dword [edi + 0x78], 0
je 0x46f3d2
cmp dword [edi + 0x7c], 0
je 0x46f3d2
cmp dword [edi + 0x80], 0
je 0x46f3d2
cmp dword [edi + 0x84], 0
je 0x46f3d2
cmp dword [edi + 0x88], 0
je 0x46f3d2
cmp dword [edi + 0xb0], 0
je 0x46f3d2
cmp dword [edi + 0xb4], 0
je 0x46f3d2
cmp dword [edi + 0x68], 0
je 0x46f3d2
cmp dword [edi + 0x6c], 0
je 0x46f3d2
cmp dword [edi + 0x8c], 0
je 0x46f3d2
cmp dword [edi + 0x90], 0
je 0x46f3d2
cmp dword [edi + 0x94], 0
je 0x46f3d2
cmp dword [edi + 0x98], 0
je 0x46f3d2
cmp dword [edi + 0x9c], 0
je 0x46f3d2
cmp dword [edi + 0xa4], 0
je 0x46f3d2
cmp dword [edi + 0xa0], 0
je 0x46f3d2
cmp dword [edi + 0xa8], 0
je 0x46f3d2
cmp dword [edi + 0xac], 0
je 0x46f3d2
cmp dword [edi + 0x70], 0
je 0x46f3d2
cmp dword [edi + 0xbc], 0
jne 0x46f3e8
mov ecx, 0x46f6cc
mov dl, 1
mov eax, dword [0x4082a8]
call fcn.0040d560
call fcn.00404658
call dword [edi + 0x24]
mov dword [edi + 0x20], eax
mov eax, edi
test bl, bl
je 0x46f403
call fcn.00404248
pop dword fs:[0]
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebx
ret