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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
mov edx, 0x1001b0b0
mov ecx, str.snapshot
call fcn.1001b2a0
test al, al
je 0x1001280a
mov edx, 0x1001b0b0
mov ecx, str.screenshot
call fcn.1001b2a0
test al, al
je 0x1001280a
mov edx, 0x1001b0c0
mov ecx, str.jump
call fcn.1001b2a0
test al, al
je 0x1001280a
mov edx, 0x1001b180
mov ecx, str._jump
call fcn.1001b2a0
test al, al
je 0x1001280a
cmp dword [0x10189e8c], 0
je 0x1001280a
mov edx, 0x100a2660
mov ecx, str.ResetHUD
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a2260
mov ecx, str.BombDrop
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a29c0
mov ecx, str.Battery
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a2ae0
mov ecx, str.Health
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a2c00
mov ecx, str.DeathMsg
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a1f80
mov ecx, str.SetFOV
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a20a0
mov ecx, str.TeamInfo
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a1e00
mov ecx, str.MOTD
call fcn.100a30a0
test al, al
je 0x1001280a
mov edx, 0x100a1ca0
mov ecx, str.ScoreAttrib
call fcn.100a30a0
test al, al
je 0x1001280a
cmp dword [0x10189cbc], 0
je 0x10012447
mov edx, 0x10099780
mov ecx, 0x39
call fcn.1009a840
test al, al
je 0x1001280a
mov edx, 0x100998a0
mov ecx, 0x3a
call fcn.1009a840
test al, al
je 0x1001280a
mov edx, 0x10099c80
mov ecx, 9
call fcn.1009a840
test al, al
je 0x1001280a
mov edx, 0x10099d20
mov ecx, 0x33
call fcn.1009a840
test al, al
je 0x1001280a
mov edx, 0x10099dc0
mov ecx, 0x29
call fcn.1009a840
test al, al
je 0x1001280a
mov edx, 0x1009a7a0
mov ecx, 2
call fcn.1009a840
test al, al
je 0x1001280a
push 0x10011cc0
push 0xfffffffffffffffc
push dword [0x10186a0c]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [0x10188918], eax
test eax, eax
jne 0x1001247d
push str.InstallHooks
push str._s:_windowproc_not_hooked._n
call fcn.100a3ed0
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x101887e8]
test eax, eax
je 0x100124cb
push fcn.10011d40
push eax
mov ecx, 0x10189f04
call fcn.1000c470
cmp byte [0x10189f0c], 0
jne 0x100124cb
mov eax, dword [0x10189f04]
test eax, eax
je 0x100124cb
push 0x10189f1c
push dword [0x10189f08]
push eax
call fcn.100bee30
push dword [0x10189f04]
call fcn.100bf250
mov byte [0x10189f0c], 1
mov ecx, dword [0x1018890c]
mov eax, dword [0x1018848c]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 0x1018db28
mov dword [ecx + 0x84], 0x1000c910
mov dword [ecx + 0x80], 0x10010ec0
mov dword [ecx + 0x1c], 0x10010b30
mov dword [ecx + 0x64], 0x1000d3e0
mov dword [ecx + 0x38], 0x1000cf30
mov dword [ecx + 0x3c], 0x10010b50
mov dword [eax + 0x64], 0x10011a90
mov eax, dword [0x10188834]
push 0x40
push 0x64
push dword [0x1018884c]
mov dword [ecx + 0x4c], 0x1000e1b0
mov dword [ecx + 0x88], 0x10010ef0
mov dword [ecx + 0x68], 0x10011a70
mov dword [eax + 0x10], 0x10010bb0
mov dword [eax + 0x1d8], 0x10010e80
call edi
test eax, eax
je 0x1001258a
mov esi, dword [0x1018884c]
push 0x1018db28
mov dword [esi + 0x48], 0x10010720
mov dword [esi + 0x18], 0x10010b20
push dword [0x1018db28]
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 [0x1018848c]
mov dword [eax + 0x54], 0x1000d4e0
mov eax, dword [0x101887f0]
test eax, eax
je 0x100125e4
push 0x1000d9d0
push eax
mov ecx, 0x10189f38
call fcn.1000c470
cmp byte [0x10189f40], 0
jne 0x100125e4
mov eax, dword [0x10189f38]
test eax, eax
je 0x100125e4
push 0x10189f50
push dword [0x10189f3c]
push eax
call fcn.100bee30
push dword [0x10189f38]
call fcn.100bf250
mov byte [0x10189f40], 1
mov eax, dword [0x10188830]
test eax, eax
je 0x10012632
push 0x10011aa0
push eax
mov ecx, 0x10189f60
call fcn.1000c470
cmp byte [0x10189f68], 0
jne 0x10012632
mov eax, dword [0x10189f60]
test eax, eax
je 0x10012632
push 0x10189f78
push dword [0x10189f64]
push eax
call fcn.100bee30
push dword [0x10189f60]
call fcn.100bf250
mov byte [0x10189f68], 1
mov eax, dword [0x101886d4]
test eax, eax
je 0x10012680
push 0x100120a0
push eax
mov ecx, 0x10189ec0
call fcn.1000c470
cmp byte [0x10189ec8], 0
jne 0x10012680
mov eax, dword [0x10189ec0]
test eax, eax
je 0x10012680
push 0x10189ed8
push dword [0x10189ec4]
push eax
call fcn.100bee30
push dword [0x10189ec0]
call fcn.100bf250
mov byte [0x10189ec8], 1
push str.opengl32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
cmp esi, 0xffffffff
je 0x100127f7
test esi, esi
je 0x100127f7
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.glColor4f
push esi
call edi
mov dword [0x1018db14], eax
test eax, eax
jne 0x100126bf
mov eax, str.___s:_color4f_not_found._n
jmp 0x100127fc
mov ecx, dword [0x10188794]
test ecx, ecx
je 0x10012718
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
test al, al
je 0x10012718
cmp dword [0x10189730], 0
je 0x10012718
mov eax, dword [0x10189734]
test eax, eax
je 0x10012711
mov ecx, dword [0x1018973c]
test ecx, ecx
je 0x10012711
push 2
push ecx
push eax
push str.xx____xx_____xxxxx____x____xxxxxxxxx
push 0x10122880
call fcn.10084130
test eax, eax
je 0x10012711
mov eax, dword [eax]
test eax, eax
je 0x10012711
mov eax, dword [eax]
jmp 0x10012713
xor eax, eax
mov dword [0x1018db10], eax
cmp dword [0x1018db10], 0
jne 0x1001273c
push str.wglSwapBuffers
push esi
call edi
mov dword [0x1018db10], eax
test eax, eax
jne 0x1001273c
mov eax, str.___s:_swapbuffers_not_found._n
jmp 0x100127fc
push 0x100855b0
push dword [0x1018db14]
mov ecx, 0x1018d698
call fcn.1000c470
cmp byte [0x1018d6a0], 0
jne 0x10012786
mov eax, dword [0x1018d698]
test eax, eax
je 0x10012786
push 0x1018d6b0
push dword [0x1018d69c]
push eax
call fcn.100bee30
push dword [0x1018d698]
call fcn.100bf250
mov byte [0x1018d6a0], 1
push 0x10085530
push dword [0x1018db10]
mov ecx, 0x1018d6b4
call fcn.1000c470
cmp byte [0x1018d6bc], 0
jne 0x100127d0
mov eax, dword [0x1018d6b4]
test eax, eax
je 0x100127d0
push 0x1018d6cc
push dword [0x1018d6b8]
push eax
call fcn.100bee30
push dword [0x1018d6b4]
call fcn.100bf250
mov byte [0x1018d6bc], 1
push 0x10102164
call dword [0x10188258]
add esp, 4
push 0x1010216c
call dword [0x10188258]
add esp, 4
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, str.___s:_handle_opengl32.dll_not_found._n
push str.HookOpenGL
push eax
call fcn.100a3ed0
add esp, 8
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret