Function at 0x40946c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb4
mov eax, dword [0x413004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
mov word [ebp - 0x78], 0x500
push esi
push edi
push 0x5c
lea eax, [ebp - 0x60]
mov dword [ebp - 0x94], ebx
push ebx
push eax
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x6c], ebx
mov word [ebp - 0x68], 0x100
mov dword [ebp - 0x74], ebx
mov word [ebp - 0x70], 0x300
mov dword [ebp - 0x64], ebx
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0xac], ebx
mov edi, ebx
mov dword [ebp - 0x9c], ebx
push 0x402c0c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x409846
push 0x402c28
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402c44
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402c58
push ebx
mov dword [ebp - 0xa4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402c70
push ebx
mov dword [ebp - 0xb0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402c78
push ebx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402c90
push ebx
mov dword [ebp - 0x88], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402ca4
push ebx
mov dword [ebp - 0x80], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [ebp - 0x80], 0
mov dword [ebp - 0xa0], eax
je 0x40983f
test eax, eax
je 0x40983f
test esi, esi
je 0x40983f
cmp dword [ebp - 0xa4], 0
je 0x40983f
cmp dword [ebp - 0xb0], 0
je 0x40983f
test edi, edi
je 0x40983f
cmp dword [ebp - 0x88], 0
je 0x40983f
lea eax, [ebp - 0x8c]
mov ecx, esi
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 1
lea eax, [ebp - 0x6c]
push eax
call dword [0x414220]
call esi
test eax, eax
je 0x409828
cmp dword [ebp - 0x8c], 0
je 0x409828
lea eax, [ebp - 0x90]
mov ecx, esi
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x220
push 0x20
push 2
lea eax, [ebp - 0x7c]
push eax
call dword [0x414220]
call esi
test eax, eax
je 0x409828
cmp dword [ebp - 0x90], 0
je 0x409828
lea eax, [ebp - 0x98]
mov ecx, esi
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 1
lea eax, [ebp - 0x74]
push eax
call dword [0x414220]
call esi
test eax, eax
je 0x409828
cmp dword [ebp - 0x98], 0
je 0x409828
lea eax, [ebp - 0x84]
push eax
push 0x20008
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, dword [ebp - 0x80]
mov ecx, esi
push eax
call dword [0x414220]
call esi
mov esi, eax
test esi, esi
je 0x409820
cmp dword [ebp - 0x84], 0
je 0x409735
mov esi, dword [ebp - 0xa0]
lea eax, [ebp - 0x9c]
push eax
push 0
push 0
push 1
push dword [ebp - 0x84]
mov ecx, esi
call dword [0x414220]
call esi
cmp dword [ebp - 0x9c], 0
mov esi, eax
mov dword [ebp - 0x80], esi
je 0x409722
push dword [ebp - 0x9c]
call dword [sym.imp.cmutil.dll_CmMalloc]
mov esi, eax
mov dword [ebp - 0xac], esi
test esi, esi
je 0x40971b
mov ecx, dword [ebp - 0xa0]
lea eax, [ebp - 0xb4]
and dword [ebp - 0xb4], 0
push eax
push dword [ebp - 0x9c]
push esi
push 1
push dword [ebp - 0x84]
call dword [0x414220]
call dword [ebp - 0xa0]
mov dword [ebp - 0x80], eax
test eax, eax
je 0x409720
mov eax, dword [esi]
mov dword [ebp - 0xa8], eax
mov esi, dword [ebp - 0x80]
jmp 0x409722
mov esi, eax
push dword [ebp - 0x84]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x84], 0
test esi, esi
je 0x409820
mov esi, dword [ebp - 0xa8]
test esi, esi
je 0x409820
push dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x58]
push eax
call dword [0x414220]
call dword [ebp - 0x88]
push dword [ebp - 0x90]
mov ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x38]
and dword [ebp - 0x5c], 0
push eax
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x64], 0x80000000
call dword [0x414220]
call dword [ebp - 0x88]
and dword [ebp - 0x3c], 0
lea eax, [ebp - 0x18]
push esi
mov esi, dword [ebp - 0x88]
mov ecx, esi
push eax
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x44], 0x1fffff
call dword [0x414220]
call esi
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0x94]
and dword [ebp - 0x1c], 0
mov ecx, esi
push eax
push 0
lea eax, [ebp - 0x64]
mov dword [ebp - 0x20], 1
push eax
push 3
mov dword [ebp - 0x24], 0x1fffff
call dword [0x414220]
call esi
mov esi, eax
test esi, esi
jne 0x40981c
mov esi, dword [ebp - 0xb0]
mov ecx, esi
push eax
push dword [ebp - 0x94]
push eax
push eax
push 0x80000004
push 4
push 0x402b80
call dword [0x414220]
call esi
mov esi, eax
test esi, esi
jle 0x40985b
jmp 0x409852
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x409818
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40986c
movzx esi, si
or esi, 0x80070000
jmp 0x40986c
mov esi, 0x8007007f
jmp 0x40986c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40986c
movzx esi, si
or esi, 0x80070000
mov eax, dword [ebp - 0xac]
test eax, eax
je 0x40986c
push eax
call dword [sym.imp.cmutil.dll_CmFree]
cmp dword [ebp - 0x8c], 0
je 0x409889
test edi, edi
je 0x409889
push dword [ebp - 0x8c]
mov ecx, edi
call dword [0x414220]
call edi
cmp dword [ebp - 0x90], 0
je 0x4098a6
test edi, edi
je 0x4098a6
push dword [ebp - 0x90]
mov ecx, edi
call dword [0x414220]
call edi
cmp dword [ebp - 0x98], 0
je 0x4098c3
test edi, edi
je 0x4098c3
push dword [ebp - 0x98]
mov ecx, edi
call dword [0x414220]
call edi
cmp dword [ebp - 0x94], 0
je 0x4098d8
push dword [ebp - 0x94]
call dword [sym.imp.KERNEL32.dll_LocalFree]
test ebx, ebx
je 0x4098e3
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00411980
mov esp, ebp
pop ebp
ret