Function at 0x46eb04
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
push edi
test dl, dl
je 0x46eb13
add esp, 0xfffffff0
call fcn.00403d60
mov ebx, edx
mov edi, eax
push 0x46f028
call sub.kernel32.dll_LoadLibraryA
mov esi, eax
mov dword [edi + 0x20], esi
test esi, esi
jne 0x46eb40
mov ecx, 0x46f03c
mov dl, 1
mov eax, dword [0x407d58]
call fcn.0040ced0
call fcn.004041c8
push 0x46f054
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x28], eax
push 0x46f068
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x2c], eax
push 0x46f07c
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x30], eax
push 0x46f08c
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x34], eax
push 0x46f09c
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x38], eax
push 0x46f0ac
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x3c], eax
push 0x46f0cc
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x40], eax
push 0x46f0dc
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x44], eax
push 0x46f0e8
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x48], eax
push 0x46f0fc
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x4c], eax
push 0x46f108
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x50], eax
push 0x46f114
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x54], eax
push 0x46f120
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x58], eax
push 0x46f138
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x5c], eax
push 0x46f144
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x60], eax
push 0x46f154
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x64], eax
push 0x46f15c
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x68], eax
push 0x46f16c
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x6c], eax
push 0x46f174
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x70], eax
push 0x46f180
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x74], eax
push 0x46f198
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x78], eax
push 0x46f1a4
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x7c], eax
push 0x46f1b0
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x80], eax
push 0x46f1bc
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x84], eax
push 0x46f1c8
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x88], eax
push 0x46f1d8
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x8c], eax
push 0x46f1e4
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x90], eax
push 0x46f1f8
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x94], eax
push 0x46f208
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x98], eax
push 0x46f218
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0x9c], eax
push 0x46f234
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xa0], eax
push 0x46f254
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xa4], eax
push 0x46f268
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xac], eax
push 0x46f278
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xa8], eax
push 0x46f288
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xb0], eax
push 0x46f29c
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xb4], eax
push 0x46f2b8
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xb8], eax
push 0x46f2c0
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xbc], eax
push 0x46f2cc
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xc4], eax
push 0x46f2d8
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xc8], eax
push 0x46f2e0
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [edi + 0xcc], eax
push 0x46f2ec
mov eax, dword [edi + 0x20]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov esi, eax
mov dword [edi + 0xc0], esi
cmp dword [edi + 0xc0], 0
je 0x46ee58
push 0x46e9f8
call esi
cmp dword [edi + 0x28], 0
je 0x46efef
cmp dword [edi + 0x2c], 0
je 0x46efef
cmp dword [edi + 0x30], 0
je 0x46efef
cmp dword [edi + 0x34], 0
je 0x46efef
cmp dword [edi + 0x38], 0
je 0x46efef
cmp dword [edi + 0x3c], 0
je 0x46efef
cmp dword [edi + 0x44], 0
je 0x46efef
cmp dword [edi + 0x48], 0
je 0x46efef
cmp dword [edi + 0x4c], 0
je 0x46efef
cmp dword [edi + 0x5c], 0
je 0x46efef
cmp dword [edi + 0x60], 0
je 0x46efef
cmp dword [edi + 0x64], 0
je 0x46efef
cmp dword [edi + 0x68], 0
je 0x46efef
cmp dword [edi + 0x50], 0
je 0x46efef
cmp dword [edi + 0x54], 0
je 0x46efef
cmp dword [edi + 0x58], 0
je 0x46efef
cmp dword [edi + 0x40], 0
je 0x46efef
cmp dword [edi + 0x78], 0
je 0x46efef
cmp dword [edi + 0x7c], 0
je 0x46efef
cmp dword [edi + 0x80], 0
je 0x46efef
cmp dword [edi + 0x84], 0
je 0x46efef
cmp dword [edi + 0x88], 0
je 0x46efef
cmp dword [edi + 0x8c], 0
je 0x46efef
cmp dword [edi + 0xb8], 0
je 0x46efef
cmp dword [edi + 0xbc], 0
je 0x46efef
cmp dword [edi + 0x6c], 0
je 0x46efef
cmp dword [edi + 0x70], 0
je 0x46efef
cmp dword [edi + 0x94], 0
je 0x46efef
cmp dword [edi + 0x98], 0
je 0x46efef
cmp dword [edi + 0x9c], 0
je 0x46efef
cmp dword [edi + 0xa0], 0
je 0x46efef
cmp dword [edi + 0xa4], 0
je 0x46efef
cmp dword [edi + 0xac], 0
je 0x46efef
cmp dword [edi + 0xa8], 0
je 0x46efef
cmp dword [edi + 0xb0], 0
je 0x46efef
cmp dword [edi + 0xb4], 0
je 0x46efef
cmp dword [edi + 0x74], 0
je 0x46efef
cmp dword [edi + 0xc4], 0
je 0x46efef
cmp dword [edi + 0xc8], 0
je 0x46efef
cmp dword [edi + 0xcc], 0
je 0x46efef
cmp dword [edi + 0x90], 0
jne 0x46f005
mov ecx, 0x46f310
mov dl, 1
mov eax, dword [0x407d58]
call fcn.0040ced0
call fcn.004041c8
call dword [edi + 0x28]
mov dword [edi + 0x24], eax
mov eax, edi
test bl, bl
je 0x46f020
call fcn.00403db8
pop dword fs:[0]
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebx
ret