Function at 0x520f58
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.00404c04
mov ebx, 0x534db0
xor eax, eax
push ebp
push 0x521383
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
cmp dword [ebp - 4], 0
jne 0x520f94
lea eax, [ebp - 4]
mov edx, 0x52139c
call fcn.004047dc
mov eax, dword [0x53a944]
call fcn.004331e4
xor eax, eax
push ebp
push 0x521366
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x534dac], 0
jne 0x52133e
mov byte [0x53a948], 0
mov byte [0x53a949], 0
mov eax, dword [ebp - 4]
call fcn.00404c14
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x521342
push 0x5213a8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534da8], eax
push 0x5213b4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534da4], eax
push 0x5213c4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d84], eax
push 0x5213d0
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d64], eax
push 0x5213dc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d1c], eax
push 0x5213ec
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d14], eax
push 0x5213f8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d18], eax
push 0x521404
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d8c], eax
push 0x52140c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d88], eax
push 0x521414
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d80], eax
push 0x52141c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d7c], eax
push 0x521428
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d78], eax
push 0x521434
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d44], eax
push 0x521440
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d74], eax
push 0x521448
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d70], eax
push 0x521450
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d6c], eax
push 0x52145c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d68], eax
push 0x521468
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d60], eax
push 0x521470
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d5c], eax
push 0x521478
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d58], eax
push 0x521480
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d50], eax
push 0x521488
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d54], eax
push 0x521494
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d94], eax
push 0x52149c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d4c], eax
push 0x5214a4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d48], eax
push 0x5214ac
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d40], eax
push 0x5214b8
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d3c], eax
push 0x5214c4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d90], eax
push 0x5214cc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d34], eax
push 0x5214dc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d30], eax
push 0x5214ec
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d28], eax
push 0x5214fc
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d2c], eax
push 0x521510
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d20], eax
push 0x521520
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d24], eax
push 0x521530
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d38], eax
push 0x52153c
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d98], eax
push 0x521548
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d9c], eax
push 0x521558
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534da0], eax
cmp dword [0x534d98], 0
je 0x5212a7
cmp dword [0x534d9c], 0
je 0x5212a7
cmp dword [0x534da0], 0
jne 0x5212ab
xor eax, eax
jmp 0x5212ad
mov al, 1
mov byte [0x53a948], al
cmp byte [0x53a948], 0
jne 0x521338
push 0x521564
call sub.kernel32.dll_LoadLibraryA
mov dword [0x534db4], eax
cmp dword [0x534db4], 0
je 0x521338
push 0x52153c
mov eax, dword [0x534db4]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d98], eax
push 0x521548
mov eax, dword [0x534db4]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534d9c], eax
push 0x521558
mov eax, dword [0x534db4]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x534da0], eax
cmp dword [0x534d98], 0
je 0x52132d
cmp dword [0x534d9c], 0
je 0x52132d
cmp dword [0x534da0], 0
jne 0x521331
xor eax, eax
jmp 0x521333
mov al, 1
mov byte [0x53a949], al
mov byte [ebp - 5], 1
jmp 0x521342
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
je 0x52134e
inc dword [0x534dac]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52136d
mov eax, dword [0x53a944]
call fcn.004331ec
ret