Function at 0x1000c020
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
mov eax, dword [0x100d1400]
xor eax, esp
mov dword [esp + 0xc], eax
mov eax, dword [0x100d3d94]
push esi
push edi
push str._exz666__installing_hooks..._n
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
add esp, 8
mov edx, 0x1000ce70
mov ecx, str.snapshot
call fcn.1000d050
test al, al
je 0x1000c63c
mov edx, 0x1000ce70
mov ecx, str.screenshot
call fcn.1000d050
test al, al
je 0x1000c63c
mov edx, 0x1000ce80
mov ecx, str.jump
call fcn.1000d050
test al, al
je 0x1000c63c
mov edx, 0x1000cf40
mov ecx, str._jump
call fcn.1000d050
test al, al
je 0x1000c63c
cmp dword [0x100d3fb8], 0
je 0x1000c63c
mov edx, 0x10064a00
mov ecx, str.ResetHUD
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x100647b0
mov ecx, str.BombDrop
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x10064b50
mov ecx, str.Battery
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x10064c70
mov ecx, str.Health
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x10064d90
mov ecx, str.DeathMsg
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x100644d0
mov ecx, str.SetFOV
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x100645f0
mov ecx, str.TeamInfo
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x10064350
mov ecx, str.MOTD
call fcn.10065020
test al, al
je 0x1000c63c
mov edx, 0x100641f0
mov ecx, str.ScoreAttrib
call fcn.10065020
test al, al
je 0x1000c63c
mov edi, dword [0x100d3fb4]
test edi, edi
je 0x1000c28d
mov dword [esp + 0xc], 0x39
cmp dword [edi], 0x39
je 0x1000c1a5
add edi, 0xc
jne 0x1000c197
push 0x39
jmp 0x1000c1dc
mov esi, dword [edi + 8]
lea eax, [esp + 0xc]
push eax
call fcn.10063280
mov dword [esp + 0x10], 0x3a
mov dword [eax], esi
mov dword [edi + 8], 0x100625e0
mov edi, dword [0x100d3fb4]
test edi, edi
je 0x1000c1da
nop dword [eax]
cmp dword [edi], 0x3a
je 0x1000c201
add edi, 0xc
jne 0x1000c1d0
push 0x3a
push str.HookEngineMsg
push str.___s:_failed_to_hook_svc_index__i._n
call fcn.10065d50
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.1007a635
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
lea eax, [esp + 0x10]
push eax
call fcn.10063280
mov dword [eax], esi
mov dword [edi + 8], 0x100626a0
mov edi, dword [0x100d3fb4]
mov dword [esp + 0xc], 0x29
test edi, edi
je 0x1000c23a
nop dword [eax]
cmp dword [edi], 0x29
je 0x1000c23e
add edi, 0xc
jne 0x1000c230
push 0x29
jmp 0x1000c1dc
mov esi, dword [edi + 8]
lea eax, [esp + 0xc]
push eax
call fcn.10063280
mov dword [eax], esi
mov dword [edi + 8], 0x10062770
mov edi, dword [0x100d3fb4]
mov dword [esp + 0x10], 2
test edi, edi
je 0x1000c270
cmp dword [edi], 2
je 0x1000c277
add edi, 0xc
jne 0x1000c266
push 2
jmp 0x1000c1dc
mov esi, dword [edi + 8]
lea eax, [esp + 0x10]
push eax
call fcn.10063280
mov dword [eax], esi
mov dword [edi + 8], 0x10063150
push 0x1000b910
push 0xfffffffffffffffc
push dword [0x100d21ac]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [0x100d3eb8], eax
test eax, eax
jne 0x1000c2b8
push str.InstallHooks
push str._s:_windowproc_not_hooked._n
jmp 0x1000c634
mov eax, dword [0x100d3de0]
test eax, eax
je 0x1000c306
push fcn.1000b990
push eax
mov ecx, 0x100d4000
call fcn.10008ef0
cmp byte [0x100d4008], 0
jne 0x1000c306
mov eax, dword [0x100d4000]
test eax, eax
je 0x1000c306
push 0x100d4018
push dword [0x100d4004]
push eax
call fcn.10077850
push dword [0x100d4000]
call fcn.10077c70
mov byte [0x100d4008], 1
mov eax, dword [0x100d3eb4]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 0x100d8a94
push 0x40
mov dword [eax + 0x84], 0x10009240
mov dword [eax + 0x80], 0x1000b3e0
mov dword [eax + 0x1c], 0x1000b320
mov dword [eax + 0x64], 0x10009800
mov dword [eax + 0x38], 0x10009510
mov dword [eax + 0x3c], 0x1000b340
mov dword [eax + 0x4c], 0x1000a620
mov dword [eax + 0x88], 0x1000b400
mov dword [eax + 0x68], 0x1000b6d0
mov eax, dword [0x100d3dfc]
push 0x64
push dword [0x100d3e04]
mov dword [eax + 0x1d8], 0x1000b3a0
call edi
test eax, eax
je 0x1000c3b1
mov esi, dword [0x100d3e04]
push 0x100d8a94
mov dword [esi + 0x48], 0x1000afb0
mov dword [esi + 0x18], 0x1000b310
push dword [0x100d8a94]
push 0x64
push esi
call edi
push 0x64
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov eax, dword [0x100d3a9c]
mov dword [eax + 0x54], 0x10009900
mov eax, dword [0x100d3de8]
test eax, eax
je 0x1000c40b
push 0x10009e00
push eax
mov ecx, 0x100d4034
call fcn.10008ef0
cmp byte [0x100d403c], 0
jne 0x1000c40b
mov eax, dword [0x100d4034]
test eax, eax
je 0x1000c40b
push 0x100d404c
push dword [0x100d4038]
push eax
call fcn.10077850
push dword [0x100d4034]
call fcn.10077c70
mov byte [0x100d403c], 1
mov eax, dword [0x100d3df8]
test eax, eax
je 0x1000c459
push 0x1000b6f0
push eax
mov ecx, 0x100d4050
call fcn.10008ef0
cmp byte [0x100d4058], 0
jne 0x1000c459
mov eax, dword [0x100d4050]
test eax, eax
je 0x1000c459
push 0x100d4068
push dword [0x100d4054]
push eax
call fcn.10077850
push dword [0x100d4050]
call fcn.10077c70
mov byte [0x100d4058], 1
mov eax, dword [0x100d3d80]
test eax, eax
je 0x1000c4a7
push 0x1000be60
push eax
mov ecx, 0x100d3fbc
call fcn.10008ef0
cmp byte [0x100d3fc4], 0
jne 0x1000c4a7
mov eax, dword [0x100d3fbc]
test eax, eax
je 0x1000c4a7
push 0x100d3fd4
push dword [0x100d3fc0]
push eax
call fcn.10077850
push dword [0x100d3fbc]
call fcn.10077c70
mov byte [0x100d3fc4], 1
push str.opengl32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000c629
test esi, esi
je 0x1000c629
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.glColor4f
push esi
call edi
mov dword [0x100d8a80], eax
test eax, eax
jne 0x1000c4e6
mov eax, str.___s:_color4f_not_found._n
jmp 0x1000c62e
mov ecx, dword [0x100d3d88]
test ecx, ecx
je 0x1000c53f
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
test al, al
je 0x1000c53f
cmp dword [0x100d3f60], 0
je 0x1000c53f
mov eax, dword [0x100d3f64]
test eax, eax
je 0x1000c538
mov ecx, dword [0x100d3f6c]
test ecx, ecx
je 0x1000c538
push 2
push ecx
push eax
push str.xx____xx_____xxxxx____x____xxxxxxxxx
push 0x100bfab8
call fcn.100544a0
test eax, eax
je 0x1000c538
mov eax, dword [eax]
test eax, eax
je 0x1000c538
mov eax, dword [eax]
jmp 0x1000c53a
xor eax, eax
mov dword [0x100d8a7c], eax
cmp dword [0x100d8a7c], 0
jne 0x1000c563
push str.wglSwapBuffers
push esi
call edi
mov dword [0x100d8a7c], eax
test eax, eax
jne 0x1000c563
mov eax, str.___s:_swapbuffers_not_found._n
jmp 0x1000c62e
push 0x10054bb0
push dword [0x100d8a80]
mov ecx, 0x100d890c
call fcn.10008ef0
cmp byte [0x100d8914], 0
jne 0x1000c5ad
mov eax, dword [0x100d890c]
test eax, eax
je 0x1000c5ad
push 0x100d8924
push dword [0x100d8910]
push eax
call fcn.10077850
push dword [0x100d890c]
call fcn.10077c70
mov byte [0x100d8914], 1
push 0x10054b30
push dword [0x100d8a7c]
mov ecx, 0x100d8928
call fcn.10008ef0
cmp byte [0x100d8930], 0
jne 0x1000c5f7
mov eax, dword [0x100d8928]
test eax, eax
je 0x1000c5f7
push 0x100d8940
push dword [0x100d892c]
push eax
call fcn.10077850
push dword [0x100d8928]
call fcn.10077c70
mov byte [0x100d8930], 1
push str._attack
call dword [0x100d3868]
add esp, 4
push str._attack2
call dword [0x100d3868]
add esp, 4
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.1007a635
mov esp, ebp
pop ebp
ret
mov eax, str.___s:_handle_opengl32.dll_not_found._n
push str.HookOpenGL
push eax
call fcn.10065d50
add esp, 8
mov ecx, dword [esp + 0x14]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.1007a635
mov esp, ebp
pop ebp
ret