Function at 0x30021298
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [section..cdata]
push ebx
push esi
xor ebx, ebx
push edi
mov dword [ebp - 4], eax
mov dword [0x30097830], ebx
mov dword [0x3009c3dc], ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x3009c3e4], eax
xor eax, eax
mov ecx, 0xb36
mov edi, 0x30097ab8
push 0x30097afc
mov dword [0x3009c720], ebx
mov dword [0x30097844], ebx
rep stosd dword es:[edi], eax
call esi
call fcn.30021229
test eax, eax
je 0x30021531
xor eax, eax
push 0x18
mov ecx, 0x243
mov edi, 0x3009a790
rep stosd dword es:[edi], eax
pop ecx
mov edi, 0x300a2600
rep stosd dword es:[edi], eax
mov ecx, 0x89
mov edi, 0x30097890
push 0x300a2608
rep stosd dword es:[edi], eax
call esi
push 0x30097800
call esi
push 0x300977e8
call esi
push 0x300a2a78
call esi
mov edx, 0x200
xor eax, eax
mov ecx, edx
mov edi, 0x3009bbb0
rep stosd dword es:[edi], eax
push 0x1c
mov ecx, edx
mov edi, 0x3009b3b0
rep stosd dword es:[edi], eax
pop ecx
push 0x1c
mov edi, 0x3009b340
rep stosd dword es:[edi], eax
pop ecx
mov edi, 0x3009b2d0
push 0x3009ac54
rep stosd dword es:[edi], eax
call fcn.300220c8
push 0x3009ac64
call fcn.300220c8
push 2
push 0x100
push 0x10
push 4
push 0x3009782c
call fcn.30056028
push ebx
push 0x3009c3b8
push ebx
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
call fcn.300211f0
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
je 0x3002143d
push 0x30002c54
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [0x30066574], eax
je 0x3002143d
cmp eax, 0xffffffff
je 0x3002143d
push 0x30002c44
push eax
call esi
push 0x30002c38
push dword [0x30066574]
mov dword [0x300a2a94], eax
call esi
push 0x30002c2c
push dword [0x30066574]
mov dword [0x300a2a98], eax
call esi
push 0x30002c20
push dword [0x30066574]
mov dword [0x300a2a9c], eax
call esi
cmp dword [0x300a2a94], ebx
mov dword [0x300a2aa0], eax
je 0x3002142f
cmp dword [0x300a2a98], ebx
je 0x3002142f
cmp dword [0x300a2a9c], ebx
je 0x3002142f
cmp eax, ebx
jne 0x3002143d
push dword [0x30066574]
call edi
mov dword [0x30066574], ebx
push 0x30002c14
call fcn.300247dd
cmp eax, ebx
mov dword [0x30066578], eax
je 0x30021474
cmp eax, 0xffffffff
je 0x30021474
push 0x30002c04
push eax
call esi
cmp eax, ebx
mov dword [0x30097828], eax
jne 0x30021474
push dword [0x30066578]
call edi
mov dword [0x30066578], ebx
push 0x30002bf8
call fcn.300247dd
cmp eax, ebx
mov dword [0x3006657c], eax
je 0x300214f9
cmp eax, 0xffffffff
je 0x300214f9
push 0x30002be0
push eax
call esi
push 0x30002bcc
push dword [0x3006657c]
mov dword [0x30097824], eax
call esi
push 0x30002bbc
push dword [0x3006657c]
mov dword [0x30097820], eax
call esi
push 0x30002bac
push dword [0x3006657c]
mov dword [0x3009781c], eax
call esi
cmp dword [0x30097824], ebx
mov dword [0x30097818], eax
je 0x300214eb
cmp dword [0x30097820], ebx
je 0x300214eb
cmp dword [0x3009781c], ebx
je 0x300214eb
cmp eax, ebx
jne 0x300214f9
push dword [0x3006657c]
call edi
mov dword [0x3006657c], ebx
xor eax, eax
mov esi, 0x30097838
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x30021531
lea eax, [ebp - 0x210]
push eax
push 4
push esi
lea eax, [ebp - 0x20c]
push eax
call fcn.30026060
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.30063125
leave
ret