Function at 0x421c30
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.004051f4
mov ebx, 0x456fe4
xor eax, eax
push ebp
push 0x422062
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov byte [0x45ca78], 0
cmp dword [ebp - 4], 0
jne 0x421c73
lea eax, [ebp - 4]
mov edx, 0x42207c
call fcn.00404ddc
mov eax, dword [0x45ca74]
call fcn.0041d0f0
xor eax, eax
push ebp
push 0x422045
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x456fe0], 0
jne 0x42201d
mov byte [0x45ca78], 0
mov byte [0x45ca79], 0
mov eax, dword [ebp - 4]
call fcn.00405204
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x422021
push 0x422088
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fdc], eax
push 0x422094
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fd8], eax
push 0x4220a4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fb8], eax
push 0x4220b0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f98], eax
push 0x4220bc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f50], eax
push 0x4220cc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f48], eax
push 0x4220d8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f4c], eax
push 0x4220e4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fc0], eax
push 0x4220ec
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fbc], eax
push 0x4220f4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fb4], eax
push 0x4220fc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fb0], eax
push 0x422108
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fac], eax
push 0x422114
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f78], eax
push 0x422120
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fa8], eax
push 0x422128
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fa4], eax
push 0x422130
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fa0], eax
push 0x42213c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f9c], eax
push 0x422148
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f94], eax
push 0x422150
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f90], eax
push 0x422158
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f8c], eax
push 0x422160
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f84], eax
push 0x422168
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f88], eax
push 0x422174
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fc8], eax
push 0x42217c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f80], eax
push 0x422184
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f7c], eax
push 0x42218c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f74], eax
push 0x422198
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f70], eax
push 0x4221a4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fc4], eax
push 0x4221ac
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f68], eax
push 0x4221bc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f64], eax
push 0x4221cc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f5c], eax
push 0x4221dc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f60], eax
push 0x4221f0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f54], eax
push 0x422200
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f58], eax
push 0x422210
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456f6c], eax
push 0x42221c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fcc], eax
push 0x422228
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fd0], eax
push 0x422238
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fd4], eax
cmp dword [0x456fcc], 0
je 0x421f86
cmp dword [0x456fd0], 0
je 0x421f86
cmp dword [0x456fd4], 0
jne 0x421f8a
xor eax, eax
jmp 0x421f8c
mov al, 1
mov byte [0x45ca78], al
cmp byte [0x45ca78], 0
jne 0x422017
push 0x422244
call sub.kernel32.dll_LoadLibraryA
mov dword [0x456fe8], eax
cmp dword [0x456fe8], 0
je 0x422017
push 0x42221c
mov eax, dword [0x456fe8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fcc], eax
push 0x422228
mov eax, dword [0x456fe8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fd0], eax
push 0x422238
mov eax, dword [0x456fe8]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x456fd4], eax
cmp dword [0x456fcc], 0
je 0x42200c
cmp dword [0x456fd0], 0
je 0x42200c
cmp dword [0x456fd4], 0
jne 0x422010
xor eax, eax
jmp 0x422012
mov al, 1
mov byte [0x45ca79], al
mov byte [ebp - 5], 1
jmp 0x422021
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
je 0x42202d
inc dword [0x456fe0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42204c
mov eax, dword [0x45ca74]
call fcn.0041d0f8
ret