Function at 0x494db0
Capabilities:
Get system information on windows
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d91ec
mov eax, dword fs:[0]
push eax
mov eax, 0x2007c
call fcn.004a7970
mov eax, dword [0x517b80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x52e880], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2003c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20048], eax
jne 0x494e97
push 0x52e87c
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
push 0x4ee48c
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push 0x4e4c44
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push dword [ebp - 0x2003c]
mov edi, eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryW]
push 0x4f724c
push esi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x4f725c
push esi
mov dword [0x52e864], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x4f726c
push esi
mov dword [0x52e868], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x4f727c
push esi
mov dword [0x52e86c], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x4f728c
push edi
mov dword [0x52e870], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x4f729c
push edi
mov dword [0x52e874], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x52e878], eax
cmp dword [0x52edc4], 0
jne 0x494ebc
push 0x4f72d4
push 0x4e4c44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x52edc4], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [0x52ee74]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x52e8ac]
cmp eax, dword [ecx + 0xc]
jg 0x495379
mov edi, 0xfa00
push edi
call fcn.004b4722
mov esi, dword [0x52edc4]
lea ecx, [ebp - 0x20014]
add esp, 4
mov dword [ebp - 0x20030], eax
push ecx
push edi
push eax
push 5
mov ecx, esi
call dword [0x4dc8a4]
call esi
test eax, eax
je 0x494f4c
nop
push dword [ebp - 0x20030]
call fcn.004b4707
shl edi, 2
push edi
call fcn.004b4722
mov esi, dword [0x52edc4]
lea ecx, [ebp - 0x20014]
add esp, 8
mov dword [ebp - 0x20030], eax
push ecx
push edi
push eax
push 5
mov ecx, esi
call dword [0x4dc8a4]
call esi
test eax, eax
jne 0x494f10
mov edi, dword [ebp - 0x20030]
cmp dword [edi + 0x44], 4
mov dword [ebp - 0x2002c], edi
jbe 0x49533e
mov esi, dword [edi + 0x44]
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
cmp esi, eax
je 0x49533e
push esi
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov dword [ebp - 0x2003c], eax
test eax, eax
je 0x49533e
mov eax, dword [ebp - 0x2002c]
add edi, 0xb8
mov dword [ebp - 0x2001c], edi
mov dword [ebp - 0x20044], 0
cmp dword [eax + 4], 0
jbe 0x49532c
nop word [eax + eax]
push 0
push dword [0x52dfe8]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
je 0x49532c
mov edx, dword [edi + 0x30]
mov esi, dword [edi]
mov eax, dword [edi + 0x20]
mov edi, dword [edi + 4]
mov dword [ebp - 0x20018], edx
mov dword [ebp - 0x20064], edx
mov edx, dword [ebp - 0x2001c]
mov dword [ebp - 0x20028], esi
mov dword [ebp - 0x20060], esi
mov esi, dword [ebp - 0x2001c]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x20054], ecx
mov dword [ebp - 0x2006c], ecx
mov ecx, dword [0x52e8a4]
mov dword [ebp - 0x20068], eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0x24]
mov dword [ebp - 0x20024], edx
mov dword [ebp - 0x20088], edx
mov edx, dword [esi + 0x20]
mov esi, dword [ebp - 0x20028]
mov dword [ebp - 0x20058], eax
mov dword [ebp - 0x20070], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x20080], edx
mov edx, dword [ebp - 0x20018]
mov dword [ebp - 0x2005c], edi
mov dword [ebp - 0x20078], esi
xor esi, esi
cmp byte [eax + 0xd], 0
mov dword [ebp - 0x20074], edi
mov edi, ecx
mov dword [ebp - 0x2007c], edx
mov edx, dword [ebp - 0x20024]
mov dword [ebp - 0x20028], ecx
mov dword [ebp - 0x20018], eax
mov dword [ebp - 0x20020], edi
jne 0x4950b3
mov dword [ebp - 0x20018], eax
cmp dword [eax + 0x10], edx
jae 0x4950a0
mov eax, dword [eax + 8]
jmp 0x4950a4
mov edi, eax
mov eax, dword [eax]
sbb esi, esi
inc esi
cmp byte [eax + 0xd], 0
je 0x495090
mov dword [ebp - 0x20020], edi
cmp byte [edi + 0xd], 0
jne 0x495265
cmp edx, dword [edi + 0x10]
jb 0x495265
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x18]
mov edi, dword [ebp - 0x2001c]
mov ecx, edx
cmp eax, dword [edi + 0x20]
jne 0x4952f0
mov esi, dword [edi + 0xc]
mov eax, dword [edi + 8]
mov dword [ebp - 0x20024], eax
mov dword [ebp - 0x20040], esi
cmp dword [edx + 0x14], esi
jg 0x4952f0
jl 0x495103
cmp dword [edx + 0x10], eax
ja 0x4952f0
mov esi, dword [edi + 4]
mov ecx, edx
mov eax, dword [edi]
mov dword [ebp - 0x20018], eax
mov dword [ebp - 0x20034], esi
cmp dword [edx + 0xc], esi
jg 0x4952f0
jl 0x49512a
cmp dword [edx + 8], eax
ja 0x4952f0
mov esi, dword [edi + 0x30]
mov ecx, edx
cmp dword [edx + 4], esi
ja 0x4952f0
mov eax, dword [ebp - 0x20020]
mov ecx, dword [ebp - 0x20024]
mov edi, dword [ebp - 0x20040]
sub ecx, dword [eax + 0x28]
mov dword [ebp - 0x20024], ecx
sbb edi, dword [eax + 0x2c]
mov dword [ebp - 0x20028], ecx
mov dword [ebp - 0x20040], edi
mov edi, dword [ebp - 0x20018]
mov ecx, edi
sub ecx, dword [eax + 0x20]
mov dword [ebp - 0x20020], ecx
mov ecx, dword [ebp - 0x20034]
sbb ecx, dword [eax + 0x24]
sub esi, dword [eax + 0x1c]
mov eax, dword [ebp - 0x20034]
mov dword [edx + 8], edi
mov edi, dword [ebp - 0x2001c]
mov dword [edx + 0xc], eax
mov dword [ebp - 0x20018], ecx
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
mov eax, dword [edi + 0x30]
mov dword [edx + 4], eax
jne 0x495205
mov edx, dword [ebp - 0x20040]
mov edi, dword [ebp - 0x20018]
mov eax, dword [ebp - 0x20028]
mov ecx, dword [ebp - 0x20020]
mov dword [ebp - 0x20034], edx
mov dword [ebp - 0x20034], edi
mov edi, eax
or edi, edx
mov dword [ebp - 0x20020], ecx
mov edi, dword [ebp - 0x2001c]
jne 0x49520b
mov edi, dword [ebp - 0x20018]
mov dword [ebp - 0x20034], edx
mov edx, ecx
mov dword [ebp - 0x20034], edi
or ecx, edi
mov edi, dword [ebp - 0x2001c]
je 0x495307
jmp 0x495211
mov eax, dword [ebp - 0x20024]
mov edx, dword [ebp - 0x20020]
push dword [ebp - 0x20048]
lea ecx, [ebp - 0x20010]
push ecx
push esi
push edx
push eax
push dword [ebp - 0x2003c]
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.004948c0
add esp, 0x20
test al, al
je 0x495307
movzx ecx, word [ebp - 0x1ffe8]
lea eax, [ebp - 0x20010]
push eax
mov eax, dword [ebp - 0x1ffe4]
lea eax, [eax + ecx*4]
add eax, 0x34
push eax
call fcn.0046de80
add esp, 8
jmp 0x495307
cmp dword [0x52e8a8], 0x5555555
je 0x4953d7
mov dword [ebp - 0x20050], 0x52e8a4
push 0x30
mov dword [ebp - 4], 1
mov dword [ebp - 0x2004c], 0
call fcn.004a71b8
movups xmm0, xmmword [ebp - 0x20088]
mov ecx, dword [ebp - 0x20028]
add esp, 4
mov dword [ebp - 4], 0xffffffff
movups xmmword [eax + 0x10], xmm0
mov dword [ebp - 0x2004c], 0
movups xmm0, xmmword [ebp - 0x20078]
push eax
push esi
push dword [ebp - 0x20018]
movups xmmword [eax + 0x20], xmm0
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov ecx, 0x52e8a4
mov word [eax + 0xc], 0
call fcn.0041b620
mov edi, dword [ebp - 0x2001c]
lea ecx, [eax + 0x18]
movups xmm0, xmmword [ebp - 0x20068]
movups xmmword [ecx], xmm0
movq xmm0, qword [ebp - 0x20058]
movq qword [ecx + 0x10], xmm0
mov esi, dword [ebp - 0x20044]
add edi, 0x40
mov eax, dword [ebp - 0x2002c]
inc esi
mov dword [ebp - 0x20044], esi
mov dword [ebp - 0x2001c], edi
cmp esi, dword [eax + 4]
jb 0x494fc0
push dword [ebp - 0x2003c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov edi, dword [ebp - 0x2002c]
mov eax, dword [edi]
test eax, eax
je 0x49534b
add edi, eax
jmp 0x494f52
push dword [ebp - 0x20030]
call fcn.004b4707
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a71aa
mov esp, ebp
pop ebp
ret
push 0x52e8ac
call fcn.004a74f5
add esp, 4
cmp dword [0x52e8ac], 0xffffffff
jne 0x494edc
push 0x30
mov dword [ebp - 4], 0
call fcn.004a71b8
push 0x4db730
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [0x52e8a4], eax
call fcn.004a7464
push 0x52e8ac
mov dword [ebp - 4], 0xffffffff
call fcn.004a74a4
add esp, 0xc
jmp 0x494edc
call fcn.0041b810
int3