Function at 0x458ec4
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
push edi
mov esi, 0x462f1c
mov edi, 0x462f20
cmp byte [0x462f28], 0
je 0x458ee9
cmp dword [0x464d60], 0
setne bl
jmp 0x4592b9
xor ebx, ebx
xor eax, eax
mov dword [0x464d60], eax
mov byte [0x462f28], 1
mov byte [0x462f2c], 0
push 0x4592c0
call sub.kernel32.dll_LoadLibraryA
mov dword [esi], eax
cmp dword [esi], 0
je 0x4592b9
push 0x4592d0
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d60], eax
push 0x4592dc
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d64], eax
push 0x4592f0
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d68], eax
push 0x459300
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d6c], eax
push 0x459318
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d70], eax
push 0x45932c
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d74], eax
push 0x459338
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d78], eax
push 0x459350
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d7c], eax
push 0x459368
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d80], eax
push 0x459378
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d84], eax
push 0x459390
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d88], eax
push 0x4593ac
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d8c], eax
mov eax, dword [0x462fc8]
cmp byte [eax], 1
jae 0x45900b
mov eax, dword [0x462fc8]
cmp byte [eax], 0
jne 0x45901d
mov eax, dword [0x4632bc]
cmp dword [eax], 0xa
jl 0x45901d
push 0x4593c4
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464db8], eax
mov eax, dword [0x462fc8]
cmp byte [eax], 1
jb 0x459171
push 0x4593e0
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dac], eax
push 0x4593f8
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dbc], eax
push 0x459414
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dc0], eax
push 0x459430
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dc4], eax
push 0x459448
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dc8], eax
push 0x459460
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dcc], eax
push 0x45947c
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dd0], eax
push 0x459494
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dd4], eax
push 0x4594ac
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dd8], eax
push 0x4594c4
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464ddc], eax
push 0x4594dc
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464db0], eax
push 0x4594f0
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464db4], eax
mov eax, dword [0x462fc8]
cmp byte [eax], 2
jb 0x459155
push 0x459504
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dec], eax
push 0x459520
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464df4], eax
push 0x459540
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464df0], eax
push 0x459558
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464df8], eax
mov eax, dword [0x462fc8]
cmp byte [eax], 3
jb 0x459171
push 0x459570
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464dfc], eax
mov eax, dword [esi]
mov dword [edi], eax
push 0x459584
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d90], eax
cmp dword [0x464d90], 0
je 0x459199
mov byte [0x462f2c], 1
jmp 0x4591b1
push 0x459598
call sub.kernel32.dll_LoadLibraryA
mov dword [edi], eax
cmp dword [edi], 0
je 0x4591b1
mov byte [0x462f2c], 1
cmp byte [0x462f2c], 0
je 0x459238
push 0x459584
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d90], eax
push 0x4595a4
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d94], eax
push 0x4595bc
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d98], eax
push 0x4595d4
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464d9c], eax
push 0x4595e4
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464da0], eax
push 0x4595f4
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464da4], eax
push 0x45960c
mov eax, dword [edi]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464da8], eax
cmp dword [0x464d60], 0
setne bl
mov eax, dword [0x462fc8]
cmp byte [eax], 1
jb 0x4592a3
push 0x45961c
call sub.kernel32.dll_LoadLibraryA
mov dword [0x462f24], eax
cmp dword [0x462f24], 0
je 0x4592a3
push 0x459628
mov eax, dword [0x462f24]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464de4], eax
push 0x459638
mov eax, dword [0x462f24]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464de0], eax
push 0x45964c
mov eax, dword [0x462f24]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x464de8], eax
call fcn.00459658
mov dl, 1
mov eax, dword [0x4156e0]
call fcn.004034cc
mov dword [0x464e10], eax
mov eax, ebx
pop edi
pop esi
pop ebx
ret