Function at 0x10004b41
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push 0x30
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
cmp al, byte [0x10086a48]
je 0x10004b76
mov byte [0x10086a48], al
test al, al
je 0x10004b76
mov al, byte [0x10086989]
xor al, 1
mov byte [0x10086989], al
jmp 0x10004b7b
mov al, byte [0x10086989]
test al, al
mov eax, dword [0x10086c74]
je 0x1000581a
or dword [eax], 0x400
xor ebx, ebx
mov eax, dword [0x10086c74]
xor edx, edx
push ebx
mov ecx, dword [eax]
or ecx, 0x20000
mov dword [eax], ecx
or ecx, 0x80000
mov eax, dword [0x10086c74]
mov dword [eax], ecx
or ecx, 0x20000000
mov eax, dword [0x10086c74]
mov dword [eax], ecx
mov ecx, str.FutureGohans_ModMenu
mov eax, dword [0x10086c74]
or dword [eax + 4], 0x80000000
call fcn.1000d6f9
pop ecx
call fcn.10029637
test al, al
je 0x10005813
push ecx
mov ecx, str.Player_Enemy_Mission
call fcn.1002a5b5
pop ecx
test al, al
je 0x10004fab
mov edx, 0x10085934
mov ecx, str.Enable_Main_Sam
call fcn.10023e9e
mov edx, 0x10086988
mov ecx, str.EnableInstantCharge
call fcn.10023e9e
mov edx, 0x10085935
mov ecx, str.FixFace
call fcn.10023e9e
push ebx
push ebx
push ecx
push ecx
push 0x10086968
push 5
pop edx
mov ecx, str.Boss_HP
call fcn.100252e3
and dword [ebp - 0xc], ebx
lea edx, [ebp - 0xc]
and dword [ebp - 8], ebx
add esp, 0x14
mov ecx, str.Change_boss_HP
push ebx
call fcn.10022f92
pop ecx
test al, al
je 0x10004c58
call fcn.10001bdc
push ecx
push 0x1d
push 0x100859c0
push ecx
mov edx, 0x10085930
mov ecx, str.Player_Name
call fcn.10024d08
add esp, 0x10
push 0xa
pop edi
test al, al
je 0x10004d3c
mov eax, dword [0x10085930]
push ecx
mov ecx, esp
cmp eax, edi
jl 0x10004cd3
cdq
idiv edi
lea esi, [eax + 0x30]
mov eax, dword [0x10086cf4]
add eax, 0x12b6cef
push eax
call fcn.10001560
call fcn.10005a79
movzx eax, al
pop ecx
cmp eax, esi
je 0x10004ceb
mov eax, dword [0x10085930]
cdq
idiv edi
push ecx
mov ecx, dword [0x10086cf4]
mov edx, esp
add ecx, 0x12b6cef
push ecx
mov ecx, edx
lea ebx, [eax + 0x30]
call fcn.10001560
mov cl, bl
jmp 0x10004ce5
mov eax, dword [0x10086cf4]
add eax, 0x12b6cef
push eax
call fcn.10001560
mov cl, 0x30
call fcn.10005ab7
pop ecx
mov eax, dword [0x10085930]
cdq
idiv edi
mov eax, dword [0x10086cf4]
push ecx
add eax, 0x12b6cf0
mov ecx, esp
push eax
lea esi, [edx + 0x30]
call fcn.10001560
call fcn.10005a79
movzx eax, al
pop ecx
cmp eax, esi
je 0x10004d3c
mov eax, dword [0x10085930]
cdq
idiv edi
mov eax, dword [0x10086cf4]
push ecx
add eax, 0x12b6cf0
mov ecx, esp
push eax
lea ebx, [edx + 0x30]
call fcn.10001560
mov cl, bl
call fcn.10005ab7
pop ecx
push ecx
push edi
push 0x1008597c
push ecx
mov edx, 0x1008698c
mov ecx, str.Mission
call fcn.10024d08
add esp, 0x10
test al, al
je 0x10004d84
imul eax, dword [0x1008698c], 0x3c
mov edx, dword [eax + 0x10071ef8]
imul eax, dword [0x1008698c], 0xe10
mov dword [0x100869a0], edx
mov eax, dword [eax + 0x10057918]
mov dword [0x100869b4], eax
jmp 0x10004d8a
mov edx, dword [0x100869a0]
xor ebx, ebx
mov ecx, str.Phase
push ebx
call fcn.10024696
mov edi, 0x100552b0
pop ecx
test al, al
je 0x10004e30
mov ecx, dword [0x1008698c]
mov esi, ebx
imul eax, ecx, 0xf
add eax, esi
mov ecx, dword [eax*4 + 0x10071ef8]
cmp ecx, edi
je 0x10004e29
test ecx, ecx
je 0x10004e29
cmp dword [0x100869a0], ecx
lea eax, [ebp - 0xc]
push eax
sete bl
and dword [ebp - 0xc], 0
and dword [ebp - 8], 0
mov dl, bl
push ecx
call fcn.10029276
pop ecx
pop ecx
mov ecx, dword [0x1008698c]
test al, al
je 0x10004e14
imul eax, ecx, 0xf
mov dword [0x1008697c], esi
add eax, esi
mov eax, dword [eax*4 + 0x10071ef8]
mov dword [0x100869a0], eax
imul eax, ecx, 0x1e
add eax, esi
imul eax, eax, 0x78
mov eax, dword [eax + 0x10057918]
mov dword [0x100869b4], eax
test bl, bl
je 0x10004e23
call fcn.1000fa64
mov ecx, dword [0x1008698c]
inc esi
cmp esi, 0xf
jl 0x10004dad
call fcn.100111b6
xor ebx, ebx
mov edx, dword [0x100869b4]
mov ecx, str.Sub_Phase
push ebx
call fcn.10024696
pop ecx
test al, al
je 0x10004ec0
mov esi, ebx
imul eax, dword [0x1008698c], 0x1e
add eax, dword [0x1008697c]
imul eax, eax, 0x1e
add eax, esi
mov ecx, dword [eax*4 + 0x10057918]
cmp ecx, edi
je 0x10004eb9
test ecx, ecx
je 0x10004eb9
cmp dword [0x100869b4], ecx
lea eax, [ebp - 0xc]
push eax
sete bl
and dword [ebp - 0xc], 0
and dword [ebp - 8], 0
mov dl, bl
push ecx
call fcn.10029276
pop ecx
pop ecx
test al, al
je 0x10004eaa
imul eax, dword [0x1008698c], 0x1e
add eax, dword [0x1008697c]
imul eax, eax, 0x1e
add eax, esi
mov eax, dword [eax*4 + 0x10057918]
mov dword [0x100869b4], eax
test bl, bl
je 0x10004eb3
call fcn.1000fa64
inc esi
cmp esi, 0x1e
jl 0x10004e48
call fcn.100111b6
xor ebx, ebx
mov edx, 0x1008696d
mov ecx, str.Is_DLC_Phase__for_Sam_and_Wolf_only__
call fcn.10023e9e
and dword [ebp - 0xc], 0
lea edx, [ebp - 0xc]
and dword [ebp - 8], 0
mov ecx, str.Change_mission
push ebx
call fcn.10022f92
pop ecx
test al, al
je 0x10004fa6
push 0x10
push ebx
push dword [0x100869a0]
call fcn.1002fabf
mov ecx, dword [0x10086cf4]
mov ebx, eax
mov eax, dword [0x100869b4]
mov edx, ebx
and edx, 0xf00
mov dword [ebp - 4], eax
add esp, 0xc
lea esi, [ecx + 0x1764670]
lea edi, [ecx + 0x1764674]
cmp edx, 0xc00
je 0x10004f59
cmp edx, 0xd00
je 0x10004f59
and dword [ecx + 0x1766004], 0
mov eax, dword [0x10086cf4]
push 0x100552b0
add eax, 0x1766008
push 0x1e
push eax
call fcn.1002fb51
mov eax, dword [ebp - 4]
add esp, 0xc
jmp 0x10004f65
lea esi, [ecx + 0x1766004]
lea edi, [ecx + 0x1766008]
push eax
push 0x1e
push edi
mov dword [esi], ebx
call fcn.1002fb51
mov eax, dword [0x10086cf4]
add esp, 0xc
mov esi, dword [0x100869b4]
push 0x10
push 0
push dword [0x100869a0]
lea ebx, [eax + 0x17e8e40]
lea edi, [eax + 0x64ad50]
call fcn.1002fabf
add esp, 0xc
mov ecx, ebx
push 0xffffffffffffffff
push esi
push eax
call edi
xor ebx, ebx
call fcn.1002a64e
push ecx
mov ecx, str.CurrentAction
call fcn.1002a5b5
pop ecx
test al, al
je 0x10005641
mov eax, dword [0x10086d10]
mov esi, dword [eax + 0x60]
test esi, esi
je 0x10005631
movss xmm0, dword [0x1007bae8]
call fcn.10010282
mov eax, dword [0x10086cf4]
push str.Player_Boss_Action
mov eax, dword [eax + 0x19bff60]
mov edi, dword [eax + 0x48]
call fcn.100229a2
pop ecx
cmp dword [esi + 0x40c8], ebx
jne 0x100052f4
mov eax, dword [0x10086d1c]
test dword [eax], 0x2000000
jne 0x1000513e
mov eax, dword [esi + 0x774]
push ecx
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
push eax
push str.Player_Current_Animation_ID
mov ebx, str._s:__d
push ebx
call fcn.100229a2
mov eax, dword [esi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
mov ecx, dword [esi + 0x75c]
mov edx, dword [0x10086cf4]
push eax
add edx, 0x4d7d70
call edx
push eax
push str.Player_Animation_Name:__s
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cab0
mov ecx, esi
call eax
push eax
push str.Player_Current_Action__X
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cac0
mov ecx, esi
call eax
push eax
push str.Player_Current_Action_ID
push ebx
call fcn.100229a2
add esp, 0xc
call fcn.100244e5
mov eax, dword [edi + 0x774]
push ecx
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
push eax
push str.Boss_Current_Animation_ID
push ebx
call fcn.100229a2
mov eax, dword [edi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
mov edx, dword [0x10086cf4]
pop ecx
mov ecx, dword [edi + 0x75c]
add edx, 0x4d7d70
push eax
call edx
push eax
push str.Boss_Animation_Name:__s
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cab0
mov ecx, edi
call eax
push eax
push str.Boss_Current_Action__X
call fcn.100229a2
pop ecx
pop ecx
mov ecx, edi
jmp 0x100052cb
mov eax, dword [esi + 0x618]
cmp eax, 0x888
je 0x100051a4
cmp eax, 0x12df
je 0x100051a4
mov eax, dword [edi + 0x774]
push ecx
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
push eax
push str.Player_Current_Animation_ID
mov ebx, str._s:__d
push ebx
call fcn.100229a2
mov eax, dword [esi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
mov ecx, dword [edi + 0x75c]
jmp 0x1000505f
mov eax, dword [esi + 0x774]
push ecx
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
push eax
push str.Player_Current_Animation_ID
mov ebx, str._s:__d
push ebx
call fcn.100229a2
mov eax, dword [esi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
mov edx, dword [0x10086cf4]
pop ecx
mov ecx, dword [esi + 0x75c]
add edx, 0x4d7d70
push eax
call edx
push eax
push str.Player_Animation_Name:__s
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cab0
mov ecx, esi
call eax
push eax
push str.Player_Current_Action__X
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cac0
mov ecx, esi
call eax
push eax
push str.Player_Current_Action_ID
push ebx
call fcn.100229a2
add esp, 0xc
call fcn.100244e5
mov eax, dword [esi + 0x774]
push ecx
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
push eax
push str.Player_Current_Animation_ID
push ebx
call fcn.100229a2
mov eax, dword [esi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
mov edx, dword [0x10086cf4]
pop ecx
mov ecx, dword [esi + 0x75c]
add edx, 0x4d7d70
push eax
call edx
push eax
push str.Player_Animation_Name:__s
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cab0
mov ecx, esi
call eax
push eax
push str.Boss_Current_Action__X
call fcn.100229a2
pop ecx
pop ecx
mov ecx, esi
mov eax, dword [0x10086cf4]
add eax, 0x68cac0
call eax
push eax
push str.Boss_Current_Action_ID
push ebx
call fcn.100229a2
lea eax, [esi + 0x61c]
add esp, 0xc
mov dword [ebp - 4], eax
jmp 0x1000543d
lea eax, [esi + 0x61c]
mov ebx, str._s:__d
push dword [eax]
mov dword [ebp - 4], eax
push str.Player_Current_Action_ID
push ebx
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
add esp, 0xc
xorps xmm0, xmm0
call fcn.100101d3
push 0
push 0
push ecx
push ecx
lea eax, [esi + 0x61c]
mov ecx, str.Set_action_Id
push eax
push 4
pop edx
call fcn.100252e3
add esp, 0x14
call fcn.100244e5
mov eax, dword [esi + 0x774]
push ecx
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
pop ecx
push eax
push str.Player_Current_Animation_ID
push ebx
call fcn.100229a2
mov eax, dword [esi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
mov edx, dword [0x10086cf4]
pop ecx
mov ecx, dword [esi + 0x75c]
add edx, 0x4d7d70
push eax
call edx
push eax
push str.Player_Animation_Name:__s
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cab0
mov ecx, esi
call eax
push eax
push str.Player_Current_Action__X
call fcn.100229a2
mov eax, dword [0x10086cf4]
pop ecx
pop ecx
add eax, 0x68cac0
mov ecx, esi
call eax
push eax
push str.Player_Current_Action_ID
push ebx
call fcn.100229a2
add esp, 0xc
call fcn.100244e5
mov eax, dword [0x10086cf4]
mov ecx, esi
add eax, 0x68cac0
call eax
push eax
push str.Boss_Current_Animation_ID
push ebx
call fcn.100229a2
mov eax, dword [esi + 0x774]
add esp, 8
add eax, 0x14
mov ecx, esp
push eax
call fcn.10001560
mov cl, 1
call fcn.100059fa
mov edx, dword [0x10086cf4]
pop ecx
mov ecx, dword [esi + 0x75c]
add edx, 0x4d7d70
push eax
call edx
push eax
push str.Boss_Animation_Name:__s
call fcn.100229a2
pop ecx
pop ecx
call fcn.100244e5
push 0
push 0
push ecx
push ecx
push 0x10085954
push 4
pop edx
mov ecx, str.Set_PlayerAnimation_For_Test
call fcn.100252e3
and dword [ebp - 0xc], 0
lea edx, [ebp - 0xc]
and dword [ebp - 8], 0
add esp, 0x14
mov ecx, str.Call_PlayerAnimation_by_ID
push 0
call fcn.10022f92
pop ecx
test al, al
je 0x100054b6
mov eax, dword [0x10086cf4]
sub esp, 0x14
add eax, 0x6a4080
mov ecx, esi
mov dword [esp + 0x10], 0x3f800000
mov dword [esp + 0xc], 0xbf800000
mov dword [esp + 8], 0x4d010000
mov dword [esp + 4], 0x3f800000
and dword [esp], 0
push 0
push dword [0x10085954]
call eax
call fcn.100244e5
push 0
push 0
push ecx
push ecx
push 0x10085938
push 4
pop edx
mov ecx, str.Set_EnemyAnimation_For_Test
call fcn.100252e3
and dword [ebp - 0xc], 0
lea edx, [ebp - 0xc]
and dword [ebp - 8], 0
add esp, 0x14
mov ecx, str.Call_EnemyAnimation_by_ID
push 0
call fcn.10022f92
pop ecx
test al, al
je 0x10005532
mov eax, dword [0x10086cf4]
push ecx
push ecx
mov dword [esp + 4], 0x3f800000
add eax, 0x6a4520
mov dword [esp], 0xbf800000
push 0x8100000
push ecx
push ecx
mov dword [esp + 4], 0x3f800000
mov ecx, edi
and dword [esp], 0
push 0
push dword [edi + 0x4f0]
push dword [0x10085938]
call eax
call fcn.100244e5
add esi, 0x618
push dword [esi]
push str.Player_Current_Action__X
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
xorps xmm0, xmm0
pop ecx
pop ecx
call fcn.100101d3
push 2
push 0x100576d8
push ecx
push ecx
push esi
push 5
pop edx
mov ecx, str.Set_Player_Action
call fcn.100252e3
mov esi, dword [ebp - 4]
add esp, 0x14
push dword [esi]
push str.Player_Current_Action_ID
push ebx
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
add esp, 0xc
xorps xmm0, xmm0
call fcn.100101d3
push 0
push 0
push ecx
push ecx
push esi
push 4
pop edx
mov ecx, str.Set_action_Id
call fcn.100252e3
add esp, 0x14
call fcn.100244e5
lea esi, [edi + 0x618]
push dword [esi]
push str.Boss_Current_Action__X
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
xorps xmm0, xmm0
pop ecx
pop ecx
call fcn.100101d3
push 2
push 0x100576d8
push ecx
push ecx
push esi
push 5
pop edx
mov ecx, str.Set_Boss_Action
call fcn.100252e3
add esp, 0x14
lea esi, [edi + 0x61c]
push dword [esi]
push str.Boss_Current_Action_ID
push ebx
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
add esp, 0xc
xorps xmm0, xmm0
call fcn.100101d3
xor ebx, ebx
push ebx
push ebx
push ecx
push ecx
push esi
push 4
pop edx
mov ecx, str.Set_Boss_Action_Id
call fcn.100252e3
add esp, 0x14
jmp 0x1000563c
push str.Player_Boss_Action
call fcn.100229a2
pop ecx
call fcn.1002a64e
push ecx
mov ecx, str.Player_Model
call fcn.1002a5b5
pop ecx
test al, al
je 0x1000580e
mov eax, dword [0x10086d10]
cmp dword [eax + 0x60], ebx
je 0x10005809
movss xmm0, dword [0x1007bae8]
call fcn.10010282
mov ecx, dword [0x100869cc]
xor edx, edx
call fcn.10003b83
push eax
push str.Player_Model_ID:__X
call fcn.100229a2
mov ecx, dword [0x100869cc]
push 4
pop edx
call fcn.10003b83
push eax
push str.Player_Hair_ID:__X
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
add esp, 0x10
xorps xmm0, xmm0
call fcn.100101d3
push ebx
mov esi, str._08X
push esi
push ecx
push ecx
push 0x10086980
push 7
pop edi
mov edx, edi
mov ecx, str.Set_Hair_Id
call fcn.100252e3
add esp, 0x14
test al, al
je 0x100056e7
push dword [0x10086980]
push 4
pop edx
call fcn.10003bbb
pop ecx
mov ecx, dword [0x100869cc]
push 8
pop edx
call fcn.10003b83
push eax
push str.Player_Visor_ID:__X
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
xorps xmm0, xmm0
pop ecx
pop ecx
call fcn.100101d3
push ebx
push esi
push ecx
push ecx
push 0x10086990
mov edx, edi
mov ecx, str.Set_Visor_Id
call fcn.100252e3
add esp, 0x14
test al, al
je 0x1000573d
push dword [0x10086990]
push 8
pop edx
call fcn.10003bbb
pop ecx
mov ecx, dword [0x100869cc]
push 0xc
pop edx
call fcn.10003b83
push eax
push str.Player_Sheath_ID:__X
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
xorps xmm0, xmm0
pop ecx
pop ecx
call fcn.100101d3
push ebx
push esi
push ecx
push ecx
push 0x10086974
mov edx, edi
mov ecx, str.Set_Sheath_Id
call fcn.100252e3
add esp, 0x14
test al, al
je 0x10005793
push dword [0x10086974]
push 0xc
pop edx
call fcn.10003bbb
pop ecx
mov ecx, dword [0x100869cc]
push 0x10
pop edx
call fcn.10003b83
push eax
push str.Player_Head_ID:__X
call fcn.100229a2
movss xmm1, dword [0x1007bb20]
xorps xmm0, xmm0
pop ecx
pop ecx
call fcn.100101d3
push ebx
push esi
push ecx
push ecx
push 0x10086984
mov edx, edi
mov ecx, str.Set_Head_Id
call fcn.100252e3
add esp, 0x14
test al, al
je 0x100057e9
push dword [0x10086984]
push 0x10
pop edx
call fcn.10003bbb
pop ecx
mov ecx, dword [0x10086cf4]
xor edx, edx
lea ecx, [ecx + 0x17e9ff4]
call fcn.10003b83
push eax
push str.Player_Weapon_ID:__X
call fcn.100229a2
pop ecx
pop ecx
call fcn.1002a64e
call fcn.100298bc
call fcn.1000f1be
jmp 0x10005855
and dword [eax], 0xfffffbff
mov eax, dword [0x10086c74]
mov ecx, dword [eax]
and ecx, 0xfffdffff
mov dword [eax], ecx
and ecx, 0xfff7ffff
mov eax, dword [0x10086c74]
mov dword [eax], ecx
and ecx, 0xdfffffff
mov eax, dword [0x10086c74]
mov dword [eax], ecx
mov eax, dword [0x10086c74]
and dword [eax + 4], 0x7fffffff
pop edi
pop esi
pop ebx
leave
ret