Function at 0x47a700
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov ebx, 0x4d145c
mov dword [ebp - 4], 0xffffffff
cmp dword [0x4d135c], 0
jne 0x47a72f
push 0x308
call sub.kernel32.dll_SetLastError
xor eax, eax
jmp 0x47ac4a
call fcn.00479d3c
and eax, 2
xor edx, edx
cmp edx, 0
jne 0x47a754
cmp eax, 0
jne 0x47a754
push 0x78
call sub.kernel32.dll_SetLastError
xor eax, eax
jmp 0x47ac4a
push 1
push 3
call fcn.0047b570
add esp, 8
test eax, eax
jne 0x47a76b
xor eax, eax
jmp 0x47ac4a
cmp dword [0x4d13b8], 0
jne 0x47a7d5
lea edx, [ebx + 0x8d4]
push edx
lea ecx, [ebx + 0x8ca]
push ecx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13b8], eax
test eax, eax
jne 0x47a7d5
push 1
lea edx, [ebx + 0x8ea]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0x950]
lea eax, [ebx + 0x93a]
lea edx, [ebx + 0x922]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
cmp dword [0x4d13bc], 0
jne 0x47a83f
lea eax, [ebx + 0x965]
push eax
lea edx, [ebx + 0x95a]
push edx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13bc], eax
test eax, eax
jne 0x47a83f
push 2
lea edx, [ebx + 0x977]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0x9d9]
lea eax, [ebx + 0x9c7]
lea edx, [ebx + 0x9af]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
cmp dword [0x4d13c0], 0
jne 0x47a8a9
lea eax, [ebx + 0x9ef]
push eax
lea edx, [ebx + 0x9e4]
push edx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13c0], eax
test eax, eax
jne 0x47a8a9
push 3
lea edx, [ebx + 0x9fe]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0xa5d]
lea eax, [ebx + 0xa4e]
lea edx, [ebx + 0xa36]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
cmp dword [0x4d13c4], 0
jne 0x47a913
lea eax, [ebx + 0xa73]
push eax
lea edx, [ebx + 0xa68]
push edx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13c4], eax
test eax, eax
jne 0x47a913
push 4
lea edx, [ebx + 0xa82]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0xae1]
lea eax, [ebx + 0xad2]
lea edx, [ebx + 0xaba]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
cmp dword [0x4d13c8], 0
jne 0x47a97d
lea eax, [ebx + 0xaf7]
push eax
lea edx, [ebx + 0xaec]
push edx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13c8], eax
test eax, eax
jne 0x47a97d
push 5
lea edx, [ebx + 0xb08]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0xb69]
lea eax, [ebx + 0xb58]
lea edx, [ebx + 0xb40]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
cmp dword [0x4d13cc], 0
jne 0x47a9e4
lea eax, [ebx + 0xb7f]
push eax
lea edx, [ebx + 0xb74]
push edx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13cc], eax
test eax, eax
jne 0x47a9e4
push 6
lea edx, [ebx + 0xb8e]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0xbed]
lea eax, [ebx + 0xbde]
lea edx, [ebx + 0xbc6]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
cmp dword [0x4d13d0], 0
jne 0x47aa4b
lea eax, [ebx + 0xc03]
push eax
lea edx, [ebx + 0xbf8]
push edx
call sub.kernel32.dll_LoadLibraryA
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x4d13d0], eax
test eax, eax
jne 0x47aa4b
push 7
lea edx, [ebx + 0xc13]
push edx
call fcn.0047b788
add esp, 8
lea ecx, [ebx + 0xc73]
lea eax, [ebx + 0xc63]
lea edx, [ebx + 0xc4b]
push ecx
push eax
push edx
call fcn.0047b568
add esp, 0xc
push 0x47e
call sub.kernel32.dll_SetLastError
xor ecx, ecx
jmp 0x47aa50
mov ecx, 1
test ecx, ecx
jne 0x47aa5b
xor eax, eax
jmp 0x47ac4a
cmp dword [ebp + 8], 0xffffffff
je 0x47aa6f
push 0x57
call sub.kernel32.dll_SetLastError
xor eax, eax
jmp 0x47ac4a
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 4
xor eax, eax
cmp dword [ebp - 8], 0xffffffff
mov esi, eax
jne 0x47aa95
mov edx, 1
jmp 0x47ab42
cmp dword [0x4d13e0], 0
je 0x47aaa7
cmp dword [0x4d13e4], 0
jne 0x47aab6
cmp dword [ebp - 8], 0
sete dl
and edx, 1
jmp 0x47ab42
push 0
call sub.kernel32.dll_SetLastError
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0xc]
push ecx
push 8
mov eax, dword [ebp - 8]
push eax
push 0
call dword [0x4d13e0]
mov esi, eax
test esi, esi
jne 0x47aaf0
call sub.kernel32.dll_GetLastError_1
push eax
lea edx, [ebx + 0xcb7]
push edx
call fcn.0047b568
add esp, 8
jmp 0x47ab36
test esi, esi
je 0x47ab36
cmp dword [ebp - 0xc], 0
je 0x47ab36
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
push eax
lea edx, [ebx + 0xcde]
push edx
call fcn.0047b568
add esp, 8
mov edi, dword [ebp - 0xc]
mov edi, dword [edi]
cmp edi, 4
je 0x47ab2d
cmp edi, 6
je 0x47ab2d
cmp edi, 7
je 0x47ab2d
cmp edi, 8
je 0x47ab2d
cmp edi, 9
jne 0x47ab31
xor esi, esi
jmp 0x47ab36
mov esi, 1
mov eax, dword [ebp - 0xc]
push eax
call dword [0x4d13e4]
mov edx, esi
test edx, edx
jne 0x47ab67
mov ecx, dword [ebp + 8]
push ecx
lea eax, [ebx + 0xd18]
push eax
call fcn.0047b788
add esp, 8
push 2
call sub.kernel32.dll_SetLastError
xor eax, eax
jmp 0x47ac4a
mov dword [ebp - 0x14], 0xffffffff
lea edx, [ebp - 0x14]
push edx
push 0
push 0x2000000
call sub.kernel32.dll_GetCurrentThread
push eax
call sub.advapi32.dll_OpenThreadToken
test eax, eax
je 0x47abb0
mov ecx, dword [ebp - 0x14]
push ecx
call sub.kernel32.dll_CloseHandle_1
push 0x55f
call sub.kernel32.dll_SetLastError
jmp 0x47aba9
xor eax, eax
jmp 0x47ac4a
push 1
lea edx, [ebx + 0xd8a]
push edx
call fcn.0047b840
add esp, 8
test eax, eax
jne 0x47abd3
push 0x522
call sub.kernel32.dll_SetLastError
xor eax, eax
jmp 0x47ac4a
cmp dword [0x4d1360], 0
je 0x47abe3
mov eax, 1
jmp 0x47ac4a
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 4]
push ecx
call fcn.0047b994
add esp, 8
test eax, eax
je 0x47ac3e
push 0
push 0x47a0fc
mov eax, dword [ebp + 8]
push eax
call fcn.0047a540
add esp, 0xc
mov esi, eax
mov eax, dword [ebp + 8]
push eax
lea edx, [ebp - 4]
push edx
call fcn.0047b994
add esp, 8
push esi
call sub.kernel32.dll_SetLastError
push esi
lea ecx, [ebx + 0xdd0]
push ecx
call fcn.0047b568
add esp, 8
test esi, esi
sete al
and eax, 1
jmp 0x47ac4a
push 0x4ec
call sub.kernel32.dll_SetLastError
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4