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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x100bc080]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edx, 0x100bd9b0
mov ecx, str.Infinite_Health
call fcn.10035824
test al, al
je 0x10004e45
cmp byte [0x100bd9b0], 0
mov ecx, 0x100bd9a0
mov eax, dword [vtable.cheat::IFunc.0]
je 0x10004e42
call dword [eax + 0x10]
jmp 0x10004e45
call dword [eax + 0x14]
mov edx, 0x100bd690
mov ecx, str.Infinite_Fuel_Container
call fcn.10035824
mov edx, 0x100bdb48
mov ecx, str.Infinite_Sub_Weapons
call fcn.10035824
test al, al
je 0x10004e82
cmp byte [0x100bdb48], 0
mov ecx, 0x100bdb38
mov eax, dword [vtable.cheat::IFunc.0]
je 0x10004e7f
call dword [eax + 0x10]
jmp 0x10004e82
call dword [eax + 0x14]
mov edx, 0x100bd990
mov ecx, str.HP_Regeneration
call fcn.10035824
mov edx, 0x100bdae4
mov ecx, str.No_Slowmo
call fcn.10035824
test al, al
je 0x10004ebf
cmp byte [0x100bdae4], 0
mov ecx, 0x100bdad4
mov eax, dword [vtable.cheat::IFunc.0]
je 0x10004ebc
call dword [eax + 0x10]
jmp 0x10004ebf
call dword [eax + 0x14]
mov edx, 0x100bdf74
mov ecx, str.Disabled_Visor
call fcn.10035824
mov edx, 0x100bdb88
mov ecx, str.Cut_Effect
call fcn.10035824
test al, al
je 0x10004efc
cmp byte [0x100bdb88], 0
mov ecx, 0x100bdb78
mov eax, dword [vtable.cheat::IFunc.0]
je 0x10004ef9
call dword [eax + 0x10]
jmp 0x10004efc
call dword [eax + 0x14]
push ecx
mov ecx, str.Ability_to_cut_on_every_weapon_if_possible_
call fcn.1000b3e8
mov eax, dword [0x100bfd1c]
xor ebx, ebx
pop ecx
mov esi, dword [eax + 0x60]
test esi, esi
je 0x10004f4f
and dword [ebp - 0x10], ebx
lea edx, [ebp - 0x10]
and dword [ebp - 0xc], ebx
mov ecx, str.Toggle_Ripper_Mode
push ebx
call fcn.1003464e
pop ecx
test al, al
je 0x10004f4f
mov ecx, esi
mov eax, dword [0x100bfcdc]
cmp dword [esi + 0x3184], ebx
jne 0x10004f47
add eax, 0x785190
call eax
jmp 0x10004f4f
push ebx
add eax, 0x7d9590
call eax
mov eax, dword [0x100bfd1c]
mov esi, dword [eax + 0x60]
test esi, esi
je 0x10004fab
and dword [ebp - 0x10], ebx
lea edx, [ebp - 0x10]
and dword [ebp - 0xc], ebx
mov ecx, str.Toggle_Ripper_Effect
push ebx
call fcn.1003464e
pop ecx
test al, al
je 0x10004fab
xor byte [0x100bfa94], 1
mov eax, dword [0x100bfcdc]
je 0x10004f92
push 0x100bd6c0
push 0x64
add eax, 0x7c3470
mov ecx, esi
jmp 0x10004fa9
push ecx
push ecx
and dword [esp + 4], ebx
mov ecx, 0x100bd6c0
mov dword [esp], 0x3dcccccd
add eax, 0xaaa6e0
call eax
and dword [ebp - 0xc], ebx
lea eax, [ebp - 8]
push 0x10
push str._.6f
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 8], 0x3f800000
push eax
push 0x100bfc90
mov ecx, str.Jump_Height
call fcn.1003820d
add esp, 0x14
test al, al
je 0x10005018
mov edi, dword [0x100bfcdc]
lea eax, [ebp - 8]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add edi, 0x123d2cc
push eax
push 0x40
push 4
push edi
call esi
mov eax, dword [0x100bfcdc]
movss xmm0, dword [0x100bfc90]
movss dword [eax + 0x123d2cc], xmm0
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov eax, dword [0x100bfd1c]
mov edx, dword [eax + 0x60]
test edx, edx
je 0x1000503e
push ecx
push ecx
add edx, 0x53e0
xorps xmm3, xmm3
xorps xmm2, xmm2
mov ecx, str.Ninja_Run_Speed
call fcn.10038e8e
pop ecx
pop ecx
mov eax, dword [0x100bfd14]
mov edx, dword [eax]
test edx, edx
je 0x10005069
push ecx
push ebx
push ebx
add edx, 0xdc
mov ecx, str.Current_Battle_Points
call fcn.10038ee2
pop ecx
pop ecx
mov ecx, str.Battle_points_that_are_in_game
call fcn.1000b3e8
pop ecx
mov edx, dword [0x100bfcdc]
push ecx
push ebx
push ebx
lea edx, [edx + 0x177589c]
mov ecx, str.Saved_Battle_Points
call fcn.10038ee2
mov esi, dword [0x100bfd1c]
add esp, 0xc
cmp dword [esi + 0x60], ebx
je 0x100050af
push ecx
push ecx
xorps xmm3, xmm3
xorps xmm2, xmm2
mov edx, 0x100bcb3c
mov ecx, str.Player_Speed
call fcn.10038e8e
mov esi, dword [0x100bfd1c]
pop ecx
pop ecx
mov esi, dword [esi + 0x60]
test esi, esi
je 0x100050df
sub esp, 0x14
lea edi, [esi + 0x70]
mov ecx, str.Player_Size
push edi
call fcn.10038da4
add esp, 0x18
test al, al
je 0x100050df
mov eax, dword [esi + 0x4f0]
mov ecx, dword [eax + 0x40]
mov eax, dword [edi]
mov dword [ecx + 0xe0], eax
push str.Visor_Hotkey:
mov ecx, 0x100bdb14
call fcn.1000b4ad
push str.Killbind:
mov ecx, 0x100bdf40
call fcn.1000b4ad
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10048db4
leave
ret