Function at 0x30021182
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 [0x30096948], ebx
mov dword [0x3009b4f4], ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x3009b4fc], eax
xor eax, eax
mov ecx, 0xb36
mov edi, 0x30096bd0
push 0x30096c14
mov dword [0x3009b838], ebx
mov dword [0x3009695c], ebx
rep stosd dword es:[edi], eax
call esi
call fcn.30021113
test eax, eax
je 0x3002141b
xor eax, eax
push 0x18
mov ecx, 0x243
mov edi, 0x300998a8
rep stosd dword es:[edi], eax
pop ecx
mov edi, 0x300a1718
rep stosd dword es:[edi], eax
mov ecx, 0x89
mov edi, 0x300969a8
push 0x300a1720
rep stosd dword es:[edi], eax
call esi
push 0x30096918
call esi
push 0x30096900
call esi
push 0x300a1b90
call esi
mov edx, 0x200
xor eax, eax
mov ecx, edx
mov edi, 0x3009acc8
rep stosd dword es:[edi], eax
push 0x1c
mov ecx, edx
mov edi, 0x3009a4c8
rep stosd dword es:[edi], eax
pop ecx
push 0x1c
mov edi, 0x3009a458
rep stosd dword es:[edi], eax
pop ecx
mov edi, 0x3009a3e8
push 0x30099d6c
rep stosd dword es:[edi], eax
call fcn.30021fa0
push 0x30099d7c
call fcn.30021fa0
push 2
push 0x100
push 0x10
push 4
push 0x30096944
call fcn.30055216
push ebx
push 0x3009b4d0
push ebx
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
call fcn.300210da
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
je 0x30021327
push 0x30002c54
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [0x30065574], eax
je 0x30021327
cmp eax, 0xffffffff
je 0x30021327
push 0x30002c44
push eax
call esi
push 0x30002c38
push dword [0x30065574]
mov dword [0x300a1bac], eax
call esi
push 0x30002c2c
push dword [0x30065574]
mov dword [0x300a1bb0], eax
call esi
push 0x30002c20
push dword [0x30065574]
mov dword [0x300a1bb4], eax
call esi
cmp dword [0x300a1bac], ebx
mov dword [0x300a1bb8], eax
je 0x30021319
cmp dword [0x300a1bb0], ebx
je 0x30021319
cmp dword [0x300a1bb4], ebx
je 0x30021319
cmp eax, ebx
jne 0x30021327
push dword [0x30065574]
call edi
mov dword [0x30065574], ebx
push 0x30002c14
call fcn.30024687
cmp eax, ebx
mov dword [0x30065578], eax
je 0x3002135e
cmp eax, 0xffffffff
je 0x3002135e
push 0x30002c04
push eax
call esi
cmp eax, ebx
mov dword [0x30096940], eax
jne 0x3002135e
push dword [0x30065578]
call edi
mov dword [0x30065578], ebx
push 0x30002bf8
call fcn.30024687
cmp eax, ebx
mov dword [0x3006557c], eax
je 0x300213e3
cmp eax, 0xffffffff
je 0x300213e3
push 0x30002be0
push eax
call esi
push 0x30002bcc
push dword [0x3006557c]
mov dword [0x3009693c], eax
call esi
push 0x30002bbc
push dword [0x3006557c]
mov dword [0x30096938], eax
call esi
push 0x30002bac
push dword [0x3006557c]
mov dword [0x30096934], eax
call esi
cmp dword [0x3009693c], ebx
mov dword [0x30096930], eax
je 0x300213d5
cmp dword [0x30096938], ebx
je 0x300213d5
cmp dword [0x30096934], ebx
je 0x300213d5
cmp eax, ebx
jne 0x300213e3
push dword [0x3006557c]
call edi
mov dword [0x3006557c], ebx
xor eax, eax
mov esi, 0x30096950
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 0x3002141b
lea eax, [ebp - 0x210]
push eax
push 4
push esi
lea eax, [ebp - 0x20c]
push eax
call fcn.30025eae
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.30062195
leave
ret