Function at 0x401000
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x1b8
push 0
push 0x42b530
call sub.CRTDLL.dll_memset
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleA
mov dword [0x42b534], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x42b530], eax
call fcn.004112f8
call fcn.00410b3b
call fcn.0040f496
call fcn.0040eba7
call fcn.0040eb44
call fcn.0040e437
call fcn.00405aa2
call fcn.00405990
call fcn.00405360
call fcn.00405200
call fcn.0040477f
call fcn.00411370
call fcn.004048e0
mov dword [0x42b684], eax
call fcn.004060c9
mov ebp, 0x41332c
push ebp
push 0
call fcn.0040e808
mov dword [0x42b5e0], eax
mov ebp, 0x420bdb
push ebp
push 1
call fcn.0040e808
mov dword [0x42b5e4], eax
mov ebp, 0x4219f2
push ebp
push 2
call fcn.0040e808
mov dword [0x42b5e8], eax
mov ebp, 0x422605
push ebp
push 3
call fcn.0040e808
mov dword [0x42b5ec], eax
mov ebp, str.RIFF
push ebp
push 0
call fcn.00404d70
mov ebp, str.RIFF__
push ebp
push 1
call fcn.00404d70
push dword [0x42bd74]
call fcn.00405380
sub esp, 4
lea ecx, [0x42b58c]
pop edx
call fcn.00404000
push dword [0x42bd74]
push dword [0x42b58c]
call fcn.00405920
sub esp, 4
lea ecx, [0x42b58c]
pop edx
call fcn.00404000
mov edx, 0x413073
lea ecx, [0x42b548]
call fcn.00404010
mov edx, 0x413073
lea ecx, [0x42b560]
call fcn.00404010
mov edx, 0x413073
lea ecx, [0x42b57c]
call fcn.00404010
mov dword [0x42b638], 0
push dword [0x42b58c]
push 0
call fcn.00410c8c
mov ebx, eax
and ebx, ebx
jle 0x401521
mov dword [0x42b5dc], 1
mov eax, 0x3b8
cmp eax, dword [0x42b5dc]
jl 0x4011ba
push 0
call fcn.00410cc0
mov dword [0x42b544], eax
inc dword [0x42b5dc]
jmp 0x401196
mov dword [0x42b5dc], 0x3b9
mov eax, 0x3c0
cmp eax, dword [0x42b5dc]
jl 0x401261
push 0
call fcn.00410cc0
mov dword [0x42b544], eax
push dword [0x42bd74]
push dword [0x42bd74]
push 0
mov eax, dword [0x42b544]
cdq
push edx
push eax
call fcn.004044d0
sub esp, 4
inc dword [0x42bd74]
mov edx, dword [0x428a98]
add dword [esp], edx
call fcn.004040c0
pop dword [0x42bd74]
mov dword [0x42b544], eax
mov edx, dword [0x42b548]
push dword [0x42bd74]
call fcn.004113c0
push dword [0x42bd74]
push dword [0x42b544]
call fcn.00404130
sub esp, 4
pop eax
lea ecx, [0x42b548]
pop edx
call fcn.00404000
inc dword [0x42b5dc]
jmp 0x4011c4
push dword [0x42b548]
call fcn.004036cf
mov dword [0x42b544], eax
mov ebx, dword [0x42b544]
xor ebx, 0x98989898
mov dword [0x42b544], ebx
push dword [0x42b544]
pop dword [0x42b69c]
push dword [0x42bd74]
push 0xa
push dword [0x42bd74]
mov edx, str.0000000000
call fcn.004113c0
push dword [0x42bd74]
push dword [0x42b544]
call fcn.00404150
sub esp, 4
pop eax
inc dword [0x42bd74]
mov edx, dword [0x428a98]
add dword [esp], edx
call fcn.00404240
sub esp, 4
lea ecx, [0x42b548]
pop edx
call fcn.00404000
mov dword [0x42b5dc], 0x3c1
mov eax, 0x3c8
cmp eax, dword [0x42b5dc]
jl 0x401389
push 0
call fcn.00410cc0
mov dword [0x42b544], eax
push dword [0x42bd74]
push dword [0x42bd74]
push 0
mov eax, dword [0x42b544]
cdq
push edx
push eax
call fcn.004044d0
sub esp, 4
inc dword [0x42bd74]
mov edx, dword [0x428a98]
add dword [esp], edx
call fcn.004040c0
pop dword [0x42bd74]
mov dword [0x42b544], eax
mov edx, dword [0x42b560]
push dword [0x42bd74]
call fcn.004113c0
push dword [0x42bd74]
push dword [0x42b544]
call fcn.00404130
sub esp, 4
pop eax
lea ecx, [0x42b560]
pop edx
call fcn.00404000
inc dword [0x42b5dc]
jmp 0x4012ec
push dword [0x42b560]
call fcn.004036cf
mov dword [0x42b640], eax
mov dword [0x42b5dc], 0x3c9
mov eax, 0x3d0
cmp eax, dword [0x42b5dc]
jl 0x401440
push 0
call fcn.00410cc0
mov dword [0x42b544], eax
push dword [0x42bd74]
push dword [0x42bd74]
push 0
mov eax, dword [0x42b544]
cdq
push edx
push eax
call fcn.004044d0
sub esp, 4
inc dword [0x42bd74]
mov edx, dword [0x428a98]
add dword [esp], edx
call fcn.004040c0
pop dword [0x42bd74]
mov dword [0x42b544], eax
mov edx, dword [0x42b57c]
push dword [0x42bd74]
call fcn.004113c0
push dword [0x42bd74]
push dword [0x42b544]
call fcn.00404130
sub esp, 4
pop eax
lea ecx, [0x42b57c]
pop edx
call fcn.00404000
inc dword [0x42b5dc]
jmp 0x4013a3
push dword [0x42b57c]
call fcn.004036cf
mov dword [0x42b544], eax
push dword [0x42b544]
pop dword [0x42b63c]
mov dword [0x42b5dc], 0x3d1
mov ebx, dword [0x42b63c]
dec ebx
cmp ebx, dword [0x42b5dc]
jl 0x40148c
push 0
call fcn.00410cc0
mov dword [0x42b544], eax
inc dword [0x42b5dc]
jmp 0x401466
push dword [0x42b63c]
pop dword [0x42b5dc]
mov ebx, dword [0x42b63c]
add ebx, 0x12
cmp ebx, dword [0x42b5dc]
jl 0x4014d2
push 0
call fcn.00410cc0
mov dword [0x42b544], eax
mov ebx, dword [0x42b638]
add ebx, dword [0x42b544]
mov dword [0x42b638], ebx
inc dword [0x42b5dc]
jmp 0x401498
mov ebx, dword [0x42b640]
xor ebx, dword [0x42b638]
mov dword [0x42b6a0], ebx
mov ebx, dword [0x42b6a0]
and ebx, ebx
jne 0x4014f8
mov dword [0x42b6a0], 0x63
mov ebx, dword [0x42b6a0]
xor ebx, 0x98989898
mov dword [0x42b6a0], ebx
mov ebx, dword [0x42b69c]
cmp ebx, dword [0x42b6a0]
jne 0x40151a
jmp 0x40151f
jmp 0x403336
jmp 0x401526
jmp 0x403336
push 5
push 0x42b6b0
push 0
mov edx, dword [0x42b6b0]
call fcn.00404018
mov eax, 0xd
push 4
call fcn.00432000
push 5
push 0x42b6b8
push 0
mov edx, dword [0x42b6b8]
call fcn.00404018
mov eax, 0xd
push 4
call fcn.00432000
push 5
push 0x42b6c0
push 0
mov edx, dword [0x42b6c0]
call fcn.00404018
mov eax, 0xd
push 4
call fcn.00432000
push 5
push 0x42b6c8
push 0
mov edx, dword [0x42b6c8]
call fcn.00404018
mov eax, 0xd
push 4
call fcn.00432000
push 5
push 0x42b6d0
push 0
mov edx, dword [0x42b6d0]
call fcn.00404018
mov eax, 0xd
push 4
call fcn.00432000
mov dword [0x42b5dc], 1
mov eax, 0xc
cmp eax, dword [0x42b5dc]
jl 0x401657
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6b8]
sal ebx, 2
mov dword [ebp + ebx], 1
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6c0]
sal ebx, 2
mov dword [ebp + ebx], 1
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6c8]
sal ebx, 2
mov dword [ebp + ebx], 1
inc dword [0x42b5dc]
jmp 0x4015fd
mov edx, str.notepad
lea ecx, [0x42b5c8]
call fcn.00404010
push dword [0x42bd74]
call fcn.004109f0
sub esp, 4
lea ecx, [0x42b5b0]
pop edx
call fcn.00404000
push dword [0x42bd74]
mov edx, dword [0x42b5b0]
push dword [0x42bd74]
call fcn.004113c0
mov edx, str.CH.dll
call fcn.004113c0
inc dword [0x42bd74]
push 0
mov edx, dword [0x428a98]
add dword [esp + 4], edx
call fcn.00410c5e
pop dword [0x42bd74]
and eax, eax
je 0x4016f1
mov ebp, 0x42851e
mov ebx, ebp
mov ebp, 0x42791e
sub ebx, ebp
push ebx
mov ebp, 0x42791e
push ebp
push 0
call fcn.00410d10
push 0
call fcn.00410ab7
jmp 0x401700
push str.Could_not_install_the_file___Installtion_failed
push str.Error
call fcn.00405241
push dword [0x42bd74]
mov edx, dword [0x42b5b0]
push dword [0x42bd74]
call fcn.004113c0
mov edx, str.help.txt
call fcn.004113c0
inc dword [0x42bd74]
push 0
mov edx, dword [0x428a98]
add dword [esp + 4], edx
call fcn.00410c5e
pop dword [0x42bd74]
and eax, eax
je 0x401770
mov ebp, 0x428a96
mov ebx, ebp
mov ebp, 0x42851e
sub ebx, ebp
push ebx
mov ebp, 0x42851e
push ebp
push 0
call fcn.00410d10
push 0
call fcn.00410ab7
jmp 0x40177f
push str.Could_not_create_HELP.TXT_file.
push str.Error
call fcn.00405241
push str.CH_Trainer_Keys.dat
push 0
call fcn.00410c8c
mov dword [0x42b684], eax
mov ebx, dword [0x42b684]
and ebx, ebx
jle 0x4017b1
mov dword [0x42b5ac], 1
push 2
call fcn.00410ab7
call fcn.004035d9
call fcn.0040f4f0
mov dword [0x42b5bc], eax
mov ebx, dword [0x42b5bc]
cmp ebx, 0x10
jne 0x4017d0
jmp 0x403336
call fcn.0040f500
push eax
mov ebx, 1
cmp ebx, dword [esp]
jne 0x401804
call fcn.0040f520
mov ebx, eax
and ebx, ebx
jne 0x4017ff
push 0x413073
push str.http:__www.cheathappens.com
push str.iexplore
call fcn.004058e7
jmp 0x4018b6
mov ebx, 2
cmp ebx, dword [esp]
jne 0x401832
call fcn.0040f520
mov ebx, eax
and ebx, ebx
jne 0x40182d
push 0x413073
push str.www.cheathappens.com_trainer_troubleshooting.asp
push str.iexplore
call fcn.004058e7
jmp 0x4018b6
mov ebx, 3
cmp ebx, dword [esp]
jne 0x4018b6
call fcn.0040f520
mov ebx, eax
and ebx, ebx
jne 0x4018b6
push dword [0x42bd74]
push 0
push 0x413073
mov edx, dword [0x42b5b0]
push dword [0x42bd74]
call fcn.004113c0
mov edx, str.help.txt
call fcn.004113c0
inc dword [0x42bd74]
push str.notepad.exe
mov edx, dword [0x428a98]
add dword [esp + 4], edx
call fcn.004058cd
pop dword [0x42bd74]
mov ebx, dword [0x42b5ac]
cmp ebx, 1
jne 0x4018b6
push 0
push 0x413073
push str.Custom_Key_List.txt
push str.notepad.exe
call fcn.004058cd
pop eax
push dword [0x42b5e4]
push 1
call fcn.0040ec10
mov eax, 0xa
call fcn.00432050
push str.Run_Game_and_then_press_F1_at_Main_Menu.
push 0
push 0
call fcn.004048c3
push 0x70
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
and ebx, ebx
je 0x4017b6
mov edx, str.generals.exe
lea ecx, [0x42b670]
call fcn.00404010
call fcn.00402757
mov edx, str.CH.dll
lea ecx, [0x42b588]
call fcn.00404010
mov edx, dword [0x42b5b0]
push dword [0x42bd74]
call fcn.004113c0
mov edx, dword [0x42b588]
call fcn.004113c0
lea ecx, [0x42b5c4]
pop edx
call fcn.00404000
call fcn.0040295b
call fcn.00402757
call fcn.0040f4f0
mov dword [0x42b5bc], eax
call fcn.004032ab
mov ebx, dword [0x42b5bc]
cmp ebx, 0x10
jne 0x40196f
jmp 0x403336
mov eax, 0x3e8
call fcn.00432050
mov ebx, dword [0x42b66c]
and ebx, ebx
je 0x40190e
mov ebx, dword [0x42b584]
and ebx, ebx
je 0x40190e
push dword [0x42bd74]
mov edx, dword [0x42b670]
push dword [0x42bd74]
call fcn.004113c0
mov edx, str._trainer_ready_
call fcn.004113c0
inc dword [0x42bd74]
push 0
push 0
mov edx, dword [0x428a98]
add dword [esp + 8], edx
call fcn.004048c3
pop dword [0x42bd74]
push 0
push 0
call fcn.00404d90
mov eax, 0x12c
call fcn.00432050
mov ebp, dword [0x42b6b0]
mov dword [ebp + 4], 0x61
mov dword [ebp + 8], 0x62
mov dword [ebp + 0xc], 0x63
mov dword [ebp + 0x10], 0x64
mov dword [ebp + 0x14], 0x65
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x2c], 0
mov dword [ebp + 0x30], 0
push str.CH_Trainer_Keys.dat
push 0
call fcn.00410c8c
mov dword [0x42b684], eax
mov ebx, dword [0x42b684]
and ebx, ebx
jle 0x401bd1
mov dword [0x42b5ac], 1
push 0
call fcn.00410cc0
mov dword [0x42b648], eax
mov dword [0x42b5dc], 1
mov eax, dword [0x42b648]
cmp eax, dword [0x42b5dc]
jl 0x401bb3
push dword [0x42bd74]
push 0
call fcn.00410d70
sub esp, 4
lea ecx, [0x42b690]
pop edx
call fcn.00404000
push dword [0x42b690]
mov edx, str.SHIFT
pop ecx
call fcn.00432080
je 0x401ae5
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6b8]
sal ebx, 2
mov dword [ebp + ebx], 0
push dword [0x42b690]
mov edx, str.CTRL
pop ecx
call fcn.00432080
je 0x401b0f
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6c0]
sal ebx, 2
mov dword [ebp + ebx], 0
push dword [0x42b690]
mov edx, 0x4131c8
pop ecx
call fcn.00432080
je 0x401b39
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6c8]
sal ebx, 2
mov dword [ebp + ebx], 0
push 0
call fcn.00410cc0
push eax
mov ebx, dword [0x42b5dc]
mov ebp, dword [0x42b6b0]
sal ebx, 2
pop dword [ebp + ebx]
push dword [0x42bd74]
push dword [0x42bd74]
push 0
mov ebx, dword [0x42b5dc]
sal ebx, 2
mov eax, dword [ebp + ebx]
cdq
push edx
push eax
call fcn.004044d0
sub esp, 4
inc dword [0x42bd74]
mov edx, dword [0x428a98]
add dword [esp], edx
call fcn.004040c0
pop dword [0x42bd74]
push eax
mov ebx, dword [0x42b5dc]
sal ebx, 2
pop dword [ebp + ebx]
inc dword [0x42b5dc]
jmp 0x401a8b
push 0
call fcn.00410ab7
push str.Custom_Keys_Loaded
push 0
push 0
call fcn.004048c3
mov dword [0x42b674], 0
mov eax, 0xff
cmp eax, dword [0x42b674]
jl 0x401bfb
push dword [0x42b674]
call sub.USER32.dll_GetAsyncKeyState
inc dword [0x42b674]
jmp 0x401bdb
call fcn.0040f4f0
mov dword [0x42b5bc], eax
mov ebp, dword [0x42b6b0]
push dword [ebp + 4]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 4]
mov ebp, dword [0x42b6b0]
push dword [ebp + 8]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 8]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0xc]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0xc]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x10]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x10]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x14]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x14]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x18]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x18]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x1c]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x1c]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x20]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x20]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x24]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x24]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x28]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x28]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x2c]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x2c]
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x30]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x42b6d0]
pop dword [ebp + 0x30]
push 0x10
call sub.USER32.dll_GetAsyncKeyState
mov dword [0x42b628], eax
push 0x11
call sub.USER32.dll_GetAsyncKeyState
mov dword [0x42b5f4], eax
push 0x12
call sub.USER32.dll_GetAsyncKeyState
mov dword [0x42b5f0], eax
push dword [0x42b644]
push 4
push dword [0x42b56c]
mov ebx, dword [0x42b66c]
add ebx, 0x10ac32
push ebx
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov dword [0x42b54c], eax
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b54c]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov ebx, eax
add ebx, 0xc
mov dword [0x42b550], ebx
mov ebx, dword [0x42b550]
cmp ebx, 0x12000
jle 0x401e6a
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b550]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov dword [0x42b554], eax
mov ebx, dword [0x42b554]
add ebx, 0x38
mov dword [0x42b634], ebx
mov ebx, dword [0x42b554]
add ebx, 0x84
mov dword [0x42b5a8], ebx
mov ebx, dword [0x42b554]
add ebx, 0x88
mov dword [0x42b65c], ebx
mov ebx, dword [0x42b554]
add ebx, 0x190
mov dword [0x42b5cc], ebx
mov ebx, dword [0x42b554]
add ebx, 0x18c
mov dword [0x42b5c0], ebx
mov ebp, dword [0x42b6b0]
push dword [ebp + 4]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 4]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 4]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 4]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b5f8], ebx
mov ebx, dword [0x42b5f8]
and ebx, ebx
je 0x401f53
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b634]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov ebx, eax
add ebx, 0x186a0
mov dword [0x42b6a4], ebx
push dword [0x42b6a4]
mov eax, dword [0x42b56c]
call fcn.00432070
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b634]
push dword [0x42b558]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x42b684], eax
push 0
push 1
call fcn.00404d90
mov eax, 0x12c
call fcn.00432050
mov ebp, dword [0x42b6b0]
push dword [ebp + 8]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 8]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 8]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 8]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b608], ebx
mov ebx, dword [0x42b608]
and ebx, ebx
je 0x402039
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b5a8]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov ebx, eax
add ebx, 0x64
mov dword [0x42b6a4], ebx
push dword [0x42b6a4]
mov eax, dword [0x42b56c]
call fcn.00432070
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b5a8]
push dword [0x42b558]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x42b684], eax
push 0
push 1
call fcn.00404d90
mov eax, 0x12c
call fcn.00432050
mov ebp, dword [0x42b6b0]
push dword [ebp + 0xc]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0xc]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0xc]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0xc]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b60c], ebx
mov ebx, dword [0x42b60c]
and ebx, ebx
je 0x402114
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b65c]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov dword [0x42b6a4], 0
push dword [0x42b6a4]
mov eax, dword [0x42b56c]
call fcn.00432070
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b65c]
push dword [0x42b558]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x42b684], eax
push 0
push 1
call fcn.00404d90
mov eax, 0x12c
call fcn.00432050
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x10]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x10]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x10]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x10]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b610], ebx
mov ebx, dword [0x42b610]
and ebx, ebx
je 0x4021fa
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b5cc]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov ebx, eax
add ebx, 0x64
mov dword [0x42b6a4], ebx
push dword [0x42b6a4]
mov eax, dword [0x42b56c]
call fcn.00432070
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b5cc]
push dword [0x42b558]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x42b684], eax
push 0
push 1
call fcn.00404d90
mov eax, 0x12c
call fcn.00432050
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x14]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x14]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x14]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x14]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b614], ebx
mov ebx, dword [0x42b614]
and ebx, ebx
je 0x4022e3
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b5c0]
push dword [0x42b558]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x42b684], eax
mov eax, dword [0x42b56c]
call fcn.00432060
mov ebx, eax
add ebx, 0x2710
mov dword [0x42b6a4], ebx
push dword [0x42b6a4]
mov eax, dword [0x42b56c]
call fcn.00432070
push dword [0x42b644]
push 4
push dword [0x42b56c]
push dword [0x42b5c0]
push dword [0x42b558]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x42b684], eax
push 0
push 1
call fcn.00404d90
mov eax, 0x12c
call fcn.00432050
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x18]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x18]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x18]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x18]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b618], ebx
mov ebx, dword [0x42b618]
and ebx, ebx
je 0x40234d
push str.Key_6_Pressed
push 0
push 0
call fcn.004048c3
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x1c]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x1c]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x1c]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x1c]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b61c], ebx
mov ebx, dword [0x42b61c]
and ebx, ebx
je 0x4023b7
push str.Key_7_Pressed
push 0
push 0
call fcn.004048c3
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x20]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x20]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x20]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x20]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b620], ebx
mov ebx, dword [0x42b620]
and ebx, ebx
je 0x402421
push str.Key_8_Pressed
push 0
push 0
call fcn.004048c3
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x24]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x24]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x24]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x24]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b624], ebx
mov ebx, dword [0x42b624]
and ebx, ebx
je 0x40248b
push str.Key_9_Pressed
push 0
push 0
call fcn.004048c3
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x28]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x28]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x28]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x28]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b5fc], ebx
mov ebx, dword [0x42b5fc]
and ebx, ebx
je 0x4024f5
push str.Key_10_Pressed
push 0
push 0
call fcn.004048c3
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x2c]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x2c]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x2c]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x2c]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b600], ebx
mov ebx, dword [0x42b600]
and ebx, ebx
je 0x40255f
push str.Key_11_Pressed
push 0
push 0
call fcn.004048c3
mov ebp, dword [0x42b6b0]
push dword [ebp + 0x30]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x42b6b8]
mov edi, dword [ebp + 0x30]
add edi, dword [0x42b628]
imul ebx, edi
mov ebp, dword [0x42b6c0]
mov edi, dword [ebp + 0x30]
add edi, dword [0x42b5f4]
imul ebx, edi
mov ebp, dword [0x42b6c8]
mov edi, dword [ebp + 0x30]
add edi, dword [0x42b5f0]
imul ebx, edi
mov dword [0x42b604], ebx
mov ebx, dword [0x42b604]
and ebx, ebx
je 0x4025c9
push str.Key_12_Pressed
push 0
push 0
call fcn.004048c3
mov dword [0x42b5f8], 0
mov dword [0x42b608], 0
mov dword [0x42b60c], 0
mov dword [0x42b610], 0
mov dword [0x42b614], 0
mov dword [0x42b618], 0
mov dword [0x42b61c], 0
mov dword [0x42b620], 0
mov dword [0x42b624], 0
mov dword [0x42b5fc], 0
mov dword [0x42b600], 0
mov dword [0x42b604], 0
mov ebx, dword [0x42b5bc]
cmp ebx, 0x10
jne 0x402651
jmp 0x403336
call fcn.0040f500
push eax
mov ebx, 1
cmp ebx, dword [esp]
jne 0x402685
call fcn.0040f520
mov ebx, eax
and ebx, ebx
jne 0x402680
push 0x413073
push str.http:__www.cheathappens.com
push str.iexplore
call fcn.004058e7
jmp 0x402737
mov ebx, 2
cmp ebx, dword [esp]
jne 0x4026b3
call fcn.0040f520
mov ebx, eax
and ebx, ebx
jne 0x4026ae
push 0x413073
push str.www.cheathappens.com_trainer_troubleshooting.asp
push str.iexplore
call fcn.004058e7
jmp 0x402737
mov ebx, 3
cmp ebx, dword [esp]
jne 0x402737
call fcn.0040f520
mov ebx, eax
and ebx, ebx
jne 0x402737
push dword [0x42bd74]
push 0
push 0x413073
mov edx, dword [0x42b5b0]
push dword [0x42bd74]
call fcn.004113c0
mov edx, str.help.txt
call fcn.004113c0
inc dword [0x42bd74]
push str.notepad.exe
mov edx, dword [0x428a98]
add dword [esp + 4], edx
call fcn.004058cd
pop dword [0x42bd74]
mov ebx, dword [0x42b5ac]
cmp ebx, 1
jne 0x402737
push 0
push 0x413073
push str.Custom_Key_List.txt
push str.notepad.exe
call fcn.004058cd
pop eax
push dword [0x42b5e4]
push 1
call fcn.0040ec10
mov eax, 1
call fcn.00432050
jmp 0x401bd1
push 0
call 0x403350
push dword [0x42b530]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.00404af9
call fcn.004059a4
call fcn.00405a74
call fcn.0040e36f
call fcn.0040f3eb
call fcn.00410b0d
call fcn.0041130c
ret