Function at 0x10022132
Capabilities:
Link many functions at runtime
Resume thread

Disassembly:
push ebp
sub esp, 0xc00
lea ebp, [esp - 4]
mov eax, dword [0x10074bac]
xor eax, ebp
mov dword [ebp + 0xc00], eax
push 4
mov eax, 0x1005a87e
call fcn.10042ae2
mov eax, dword [ebp + 0xc0c]
mov edi, dword [ebp + 0xc10]
mov dword [ebp - 0x10], eax
mov eax, dword [0x101434ac]
mov esi, 0x97
xor ebx, ebx
cmp eax, esi
je 0x10022181
cmp eax, 4
je 0x10022181
cmp eax, 0x99
jne 0x10022192
push dword [edi + 8]
push str.call_Engine_start_PID__d_
push ebx
call fcn.1003dfed
add esp, 0xc
cmp edi, ebx
je 0x100226d3
mov eax, dword [edi]
cmp eax, ebx
je 0x100226d3
push eax
call fcn.100291b0
pop ecx
test eax, eax
je 0x1002222c
push str.TC_IO32
push ebx
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x100226d3
mov eax, dword [0x101434ac]
cmp eax, esi
je 0x100221db
cmp eax, 4
je 0x100221db
cmp eax, 0x99
jne 0x100221ec
push dword [edi + 8]
push str.TC_IO32_start_PID__d_
push ebx
call fcn.1003dfed
add esp, 0xc
test byte [0x102bc54c], 8
push 0
pop eax
setne al
lea eax, [eax + eax + 2]
push eax
push dword [edi + 8]
push 0x1798
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_PostMessageA]
test byte [ebp + 0xc14], 4
jne 0x100226d3
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100226ca
cmp byte [0x1013eeb5], bl
je 0x10022265
mov eax, dword [0x101434ac]
cmp eax, esi
je 0x10022249
cmp eax, 4
je 0x10022249
cmp eax, 0x99
jne 0x1002225a
push dword [edi + 8]
push str.call_Engine_2_start_PID__d_
push ebx
call fcn.1003dfed
add esp, 0xc
push ebx
push dword [edi + 8]
push 0xd03
jmp 0x10022206
cmp dword [0x10072cd8], 0x501
je 0x100226f6
test byte [0x102bc54c], 8
jne 0x1002228a
cmp byte [ebp + 0xc18], bl
jne 0x100226f6
mov eax, dword [0x101434ac]
cmp eax, esi
je 0x1002229f
cmp eax, 4
je 0x1002229f
cmp eax, 0x99
jne 0x100222b0
push dword [edi + 8]
push str.InjectDll2_EZH_INJ_start_PID__d_
push ebx
call fcn.1003dfed
add esp, 0xc
cmp dword [0x1016e8d8], ebx
jne 0x100224b8
mov esi, 0x1ff
push esi
lea eax, [ebp + 0x801]
push ebx
push eax
mov byte [ebp + 0x800], bl
call fcn.10040850
push esi
lea eax, [ebp + 0xa01]
push ebx
push eax
mov byte [ebp + 0xa00], bl
call fcn.10040850
push esi
lea eax, [ebp + 0x601]
push ebx
push eax
mov byte [ebp + 0x600], bl
call fcn.10040850
push esi
lea eax, [ebp + 0x401]
push ebx
push eax
mov byte [ebp + 0x400], bl
call fcn.10040850
push esi
lea eax, [ebp + 0x201]
push ebx
push eax
mov byte [ebp + 0x200], bl
call fcn.10040850
push esi
lea eax, [ebp + 1]
push ebx
push eax
mov byte [ebp], bl
call fcn.10040850
add esp, 0x48
mov esi, 0x1005d458
mov eax, str.__s_12
cmp byte [0x10074b70], bl
jne 0x1002234a
mov eax, esi
push str.LhSetExclusiveACL
push eax
lea eax, [ebp + 0xa00]
push eax
call fcn.10040b98
add esp, 0xc
mov eax, str.__s_16
cmp byte [0x10074b70], bl
jne 0x1002236e
mov eax, esi
push str.LhInstallHook
push eax
lea eax, [ebp + 0x600]
push eax
call fcn.10040b98
add esp, 0xc
mov eax, str.__s_0
cmp byte [0x10074b70], bl
jne 0x10022392
mov eax, esi
push str.LhUninstallAllHooks
push eax
lea eax, [ebp + 0x400]
push eax
call fcn.10040b98
add esp, 0xc
mov eax, str.__s_0
cmp byte [0x10074b70], bl
jne 0x100223b6
mov eax, esi
push str.LhWaitForPendingRemovals
push eax
lea eax, [ebp + 0x200]
push eax
call fcn.10040b98
add esp, 0xc
cmp byte [0x10074b70], bl
je 0x100223d8
mov esi, str.__s_28
push str.RhInjectLibrary
lea eax, [ebp]
push esi
push eax
call fcn.10040b98
add esp, 0xc
cmp byte [0x10074b70], bl
je 0x1002240c
cmp dword [0x10072cd8], 0x501
jg 0x10022405
mov eax, str.tcxEZH32.dll
jmp 0x10022422
mov eax, str.tc_EZH32.dll
jmp 0x10022422
cmp dword [0x10072cd8], 0x501
mov eax, str.tcxEZH64.dll
jle 0x10022422
mov eax, str.tc_EZH64.dll
push eax
push 0x10142048
lea eax, [ebp + 0x800]
push str._s_s
push eax
call fcn.10040b98
add esp, 0x10
lea eax, [ebp + 0x800]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp + 0xa00]
push ecx
push eax
mov dword [0x1016e8e4], eax
call esi
mov dword [0x1016e8c8], eax
lea eax, [ebp + 0x600]
push eax
push dword [0x1016e8e4]
call esi
mov dword [0x1016e8cc], eax
lea eax, [ebp + 0x400]
push eax
push dword [0x1016e8e4]
call esi
mov dword [0x1016e8d0], eax
lea eax, [ebp + 0x200]
push eax
push dword [0x1016e8e4]
call esi
mov dword [0x1016e8d4], eax
lea eax, [ebp]
push eax
push dword [0x1016e8e4]
call esi
mov dword [0x1016e8d8], eax
cmp eax, ebx
je 0x10022651
push 3
lea eax, [ebp + 0xb00]
mov esi, 0x10141e48
push esi
lea ecx, [ebp + 0xafc]
mov dword [ebp + 0xafc], eax
call fcn.1000c23e
push ebx
push ebx
push ebx
push dword [ebp + 0xafc]
mov dword [ebp - 4], ebx
push ebx
push ebx
push dword [edi + 8]
call dword [0x1016e8d8]
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0xb00]
cmp dword [ebp + 0xafc], eax
je 0x1002250f
push dword [ebp + 0xafc]
call fcn.100425b3
pop ecx
mov eax, dword [ebp - 0x10]
cmp eax, 0xc0000225
je 0x10022604
cmp eax, ebx
je 0x1002258d
cmp eax, 0xc00000f3
je 0x1002258d
cmp eax, 0xc00000f2
je 0x1002258d
push 0x46
call dword [sym.imp.KERNEL32.dll_Sleep]
push 3
lea eax, [ebp + 0xb00]
push esi
lea ecx, [ebp + 0xafc]
mov dword [ebp + 0xafc], eax
call fcn.1000c23e
push ebx
push ebx
push ebx
push dword [ebp + 0xafc]
mov dword [ebp - 4], 1
push ebx
push ebx
push dword [edi + 8]
call dword [0x1016e8d8]
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0xb00]
cmp dword [ebp + 0xafc], eax
je 0x1002258d
push dword [ebp + 0xafc]
call fcn.100425b3
pop ecx
mov eax, dword [ebp - 0x10]
cmp eax, 0xc0000225
je 0x10022604
cmp eax, ebx
je 0x10022604
cmp eax, 0xc00000f3
je 0x10022604
cmp eax, 0xc00000f2
je 0x10022604
push 0x46
call dword [sym.imp.KERNEL32.dll_Sleep]
push 3
lea eax, [ebp + 0x900]
push esi
lea ecx, [ebp + 0x8fc]
mov dword [ebp + 0x8fc], eax
call fcn.1000c23e
push ebx
push ebx
push ebx
push dword [ebp + 0x8fc]
mov dword [ebp - 4], 2
push ebx
push ebx
push dword [edi + 8]
call dword [0x1016e8d8]
or dword [ebp - 4], 0xffffffff
lea eax, [ebp + 0x900]
cmp dword [ebp + 0x8fc], eax
je 0x10022604
push dword [ebp + 0x8fc]
call fcn.100425b3
pop ecx
test byte [ebp + 0xc14], 4
jne 0x1002261e
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, dword [0x101434ac]
cmp eax, 0x97
je 0x1002263a
cmp eax, 4
je 0x1002263a
cmp eax, 0x99
jne 0x100226d3
push esi
push dword [edi + 8]
push str.InjectDll2_EZH_tc_P:_d__s
push ebx
call fcn.1003dfed
add esp, 0x10
jmp 0x100226d3
mov eax, dword [0x101434ac]
cmp eax, 0x97
je 0x10022669
cmp eax, 4
je 0x10022669
cmp eax, 0x99
jne 0x1002267b
push str.InjectDll2_MS_INJ_start
push ebx
call fcn.1003dfed
mov eax, dword [0x101434ac]
pop ecx
pop ecx
mov esi, 0x97
cmp eax, esi
je 0x10022690
cmp eax, 4
je 0x10022690
cmp eax, 0x99
jne 0x100226a1
push dword [edi + 8]
push str.call_Engine_xxx_start_PID__d_
push ebx
call fcn.1003dfed
add esp, 0xc
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call esi
push ebx
push dword [edi + 8]
push 0xd03
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_PostMessageA]
test byte [ebp + 0xc14], 4
jne 0x100226d3
push 0x64
call esi
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xc00]
xor ecx, ebp
call fcn.1004083f
add ebp, 0xc04
leave
ret
mov eax, dword [0x101434ac]
cmp eax, esi
je 0x1002270f
cmp eax, 4
je 0x1002270f
cmp eax, 0x99
jne 0x10022680
push str.InjectDll3_MS_INJ_start
push ebx
call fcn.1003dfed
mov eax, dword [0x101434ac]
pop ecx
pop ecx
jmp 0x10022680