Function at 0x401000
Capabilities:
Authenticate hmac
Log keystrokes via polling
Parse pe header

Disassembly:
push 0x1b8
push 0
push 0x51a6a8
call sub.CRTDLL.dll_memset
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleA
mov dword [0x51a6ac], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x51a6a8], eax
call fcn.00412318
call fcn.00411b5b
call fcn.00410496
call fcn.0040fbb7
call fcn.0040fb54
call fcn.0040f447
call fcn.00406ab2
call fcn.004069a0
call fcn.00406370
call fcn.00406210
call fcn.0040578f
call fcn.00412390
call fcn.004070d9
call fcn.004058f0
mov dword [0x51a7f0], eax
mov ebp, str.RIFFp
push ebp
push 0
call fcn.00405d80
mov ebp, 0x467c96
push ebp
push 1
call fcn.00405d80
mov ebp, str.RIFF
push ebp
push 3
call fcn.00405d80
mov ebp, str.RIFF__f
push ebp
push 4
call fcn.00405d80
mov ebp, str.RIFF__
push ebp
push 5
call fcn.00405d80
mov ebp, str.RIFF_f_
push ebp
push 6
call fcn.00405d80
push dword [0x51aee4]
call fcn.00406390
sub esp, 4
lea ecx, [0x51a700]
pop edx
call fcn.00405000
push dword [0x51aee4]
push dword [0x51a700]
call fcn.00406930
sub esp, 4
lea ecx, [0x51a700]
pop edx
call fcn.00405000
mov edx, 0x414073
lea ecx, [0x51a6c0]
call fcn.00405010
mov edx, 0x414073
lea ecx, [0x51a6d0]
call fcn.00405010
mov edx, 0x414073
lea ecx, [0x51a6ec]
call fcn.00405010
mov dword [0x51a7a4], 0
push dword [0x51a700]
push 0
call fcn.00411cac
mov ebx, eax
and ebx, ebx
jle 0x40150d
mov dword [0x51a758], 1
mov eax, 0x3b8
cmp eax, dword [0x51a758]
jl 0x4011a6
push 0
call fcn.00411ce0
mov dword [0x51a6bc], eax
inc dword [0x51a758]
jmp 0x401182
mov dword [0x51a758], 0x3b9
mov eax, 0x3c0
cmp eax, dword [0x51a758]
jl 0x40124d
push 0
call fcn.00411ce0
mov dword [0x51a6bc], eax
push dword [0x51aee4]
push dword [0x51aee4]
push 0
mov eax, dword [0x51a6bc]
cdq
push edx
push eax
call fcn.004054e0
sub esp, 4
inc dword [0x51aee4]
mov edx, dword [0x517bc4]
add dword [esp], edx
call fcn.004050d0
pop dword [0x51aee4]
mov dword [0x51a6bc], eax
mov edx, dword [0x51a6c0]
push dword [0x51aee4]
call fcn.004123e0
push dword [0x51aee4]
push dword [0x51a6bc]
call fcn.00405140
sub esp, 4
pop eax
lea ecx, [0x51a6c0]
pop edx
call fcn.00405000
inc dword [0x51a758]
jmp 0x4011b0
push dword [0x51a6c0]
call fcn.004046c1
mov dword [0x51a6bc], eax
mov ebx, dword [0x51a6bc]
xor ebx, 0x98989898
mov dword [0x51a6bc], ebx
push dword [0x51a6bc]
pop dword [0x51a818]
push dword [0x51aee4]
push 0xa
push dword [0x51aee4]
mov edx, str.0000000000
call fcn.004123e0
push dword [0x51aee4]
push dword [0x51a6bc]
call fcn.00405160
sub esp, 4
pop eax
inc dword [0x51aee4]
mov edx, dword [0x517bc4]
add dword [esp], edx
call fcn.00405250
sub esp, 4
lea ecx, [0x51a6c0]
pop edx
call fcn.00405000
mov dword [0x51a758], 0x3c1
mov eax, 0x3c8
cmp eax, dword [0x51a758]
jl 0x401375
push 0
call fcn.00411ce0
mov dword [0x51a6bc], eax
push dword [0x51aee4]
push dword [0x51aee4]
push 0
mov eax, dword [0x51a6bc]
cdq
push edx
push eax
call fcn.004054e0
sub esp, 4
inc dword [0x51aee4]
mov edx, dword [0x517bc4]
add dword [esp], edx
call fcn.004050d0
pop dword [0x51aee4]
mov dword [0x51a6bc], eax
mov edx, dword [0x51a6d0]
push dword [0x51aee4]
call fcn.004123e0
push dword [0x51aee4]
push dword [0x51a6bc]
call fcn.00405140
sub esp, 4
pop eax
lea ecx, [0x51a6d0]
pop edx
call fcn.00405000
inc dword [0x51a758]
jmp 0x4012d8
push dword [0x51a6d0]
call fcn.004046c1
mov dword [0x51a7ac], eax
mov dword [0x51a758], 0x3c9
mov eax, 0x3d0
cmp eax, dword [0x51a758]
jl 0x40142c
push 0
call fcn.00411ce0
mov dword [0x51a6bc], eax
push dword [0x51aee4]
push dword [0x51aee4]
push 0
mov eax, dword [0x51a6bc]
cdq
push edx
push eax
call fcn.004054e0
sub esp, 4
inc dword [0x51aee4]
mov edx, dword [0x517bc4]
add dword [esp], edx
call fcn.004050d0
pop dword [0x51aee4]
mov dword [0x51a6bc], eax
mov edx, dword [0x51a6ec]
push dword [0x51aee4]
call fcn.004123e0
push dword [0x51aee4]
push dword [0x51a6bc]
call fcn.00405140
sub esp, 4
pop eax
lea ecx, [0x51a6ec]
pop edx
call fcn.00405000
inc dword [0x51a758]
jmp 0x40138f
push dword [0x51a6ec]
call fcn.004046c1
mov dword [0x51a6bc], eax
push dword [0x51a6bc]
pop dword [0x51a7a8]
mov dword [0x51a758], 0x3d1
mov ebx, dword [0x51a7a8]
dec ebx
cmp ebx, dword [0x51a758]
jl 0x401478
push 0
call fcn.00411ce0
mov dword [0x51a6bc], eax
inc dword [0x51a758]
jmp 0x401452
push dword [0x51a7a8]
pop dword [0x51a758]
mov ebx, dword [0x51a7a8]
add ebx, 0x12
cmp ebx, dword [0x51a758]
jl 0x4014be
push 0
call fcn.00411ce0
mov dword [0x51a6bc], eax
mov ebx, dword [0x51a7a4]
add ebx, dword [0x51a6bc]
mov dword [0x51a7a4], ebx
inc dword [0x51a758]
jmp 0x401484
mov ebx, dword [0x51a7ac]
xor ebx, dword [0x51a7a4]
mov dword [0x51a81c], ebx
mov ebx, dword [0x51a81c]
and ebx, ebx
jne 0x4014e4
mov dword [0x51a81c], 0x63
mov ebx, dword [0x51a81c]
xor ebx, 0x98989898
mov dword [0x51a81c], ebx
mov ebx, dword [0x51a818]
cmp ebx, dword [0x51a81c]
jne 0x401506
jmp 0x40150b
jmp 0x404250
jmp 0x401512
jmp 0x404250
push 5
push 0x51a828
push 0
mov edx, dword [0x51a828]
call fcn.00405018
mov eax, 0xd
push 4
call fcn.0051f000
push 5
push 0x51a830
push 0
mov edx, dword [0x51a830]
call fcn.00405018
mov eax, 0xd
push 4
call fcn.0051f000
push 5
push 0x51a838
push 0
mov edx, dword [0x51a838]
call fcn.00405018
mov eax, 0xd
push 4
call fcn.0051f000
push 5
push 0x51a840
push 0
mov edx, dword [0x51a840]
call fcn.00405018
mov eax, 0xd
push 4
call fcn.0051f000
push 5
push 0x51a848
push 0
mov edx, dword [0x51a848]
call fcn.00405018
mov eax, 0xd
push 4
call fcn.0051f000
push 0x3e8
call fcn.004069e4
mov dword [0x51a6dc], eax
mov dword [0x51a758], 1
mov eax, 0xc
cmp eax, dword [0x51a758]
jl 0x401652
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a830]
sal ebx, 2
mov dword [ebp + ebx], 1
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a838]
sal ebx, 2
mov dword [ebp + ebx], 1
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a840]
sal ebx, 2
mov dword [ebp + ebx], 1
inc dword [0x51a758]
jmp 0x4015f8
mov edx, str.Battle_for_Middle_Earth
lea ecx, [0x51a748]
call fcn.00405010
push dword [0x51aee4]
call fcn.00411a10
sub esp, 4
lea ecx, [0x51a724]
pop edx
call fcn.00405000
push dword [0x51aee4]
mov edx, dword [0x51a724]
push dword [0x51aee4]
call fcn.004123e0
mov edx, str.CH.dll
call fcn.004123e0
inc dword [0x51aee4]
push 0
mov edx, dword [0x517bc4]
add dword [esp + 4], edx
call fcn.00411c7e
pop dword [0x51aee4]
and eax, eax
je 0x4016ec
mov ebp, str.________r_n_________________________________________________________________________________r_n___________________________________________r_n_r_n____________________CHEATHAPPENS_and__CaliberWerkz__Presents:_r_n_r_n___________________________________________r_n_________________________________________________________________________________r_n_r_nBattle_for_Middle_Earth_Trainer_by_CALIBER_r_n_r_n_r_n_r_nUsing_this_Trainer_r_n___________________r_nLaunch_the_trainer_first__then_launch_the_Game_and_then_Press_F1_at_the_Main_Menu._r_nListen_for__Activated__r_nPress_desired_option_key_r_n_r_nOptions_r_n________r_n_r_nNumpad_1:_Unlimited_Resource_r_nNumpad_2:_Unlimited_Command_Points_r_nNumpad_3:_Unlimited_Troops_r_nNumpad_4:_Invincible_Army_r_nNumpad_5:_Instant_Sidebar_Powers_r_n_r_n_r_n_r_nNote:_This_trainer_is_compatible_with_our_Trainer_Customizer.__Click_the_Troubleshooting_r_n_tbutton_to_download_it._r_n_r_n_r_nIf_you_want_more_trainers_or_mega_trainer_versions__when_available__with_more_r_noptions_then_visit_us_at_WWW.CHEATHAPPENS.COM_r_n_r_nCreated_by_Caliber_for_CheatHappens._r_n_r_n_CaliberWerkz_2008_
mov ebx, ebp
mov ebp, 0x516b56
sub ebx, ebp
push ebx
mov ebp, 0x516b56
push ebp
push 0
call fcn.00411d30
push 0
call fcn.00411ad7
jmp 0x4016ec
push dword [0x51aee4]
mov edx, dword [0x51a724]
push dword [0x51aee4]
call fcn.004123e0
mov edx, str.help.txt
call fcn.004123e0
inc dword [0x51aee4]
push 0
mov edx, dword [0x517bc4]
add dword [esp + 4], edx
call fcn.00411c7e
pop dword [0x51aee4]
and eax, eax
je 0x40175c
mov ebp, 0x517bc1
mov ebx, ebp
mov ebp, str.________r_n_________________________________________________________________________________r_n___________________________________________r_n_r_n____________________CHEATHAPPENS_and__CaliberWerkz__Presents:_r_n_r_n___________________________________________r_n_________________________________________________________________________________r_n_r_nBattle_for_Middle_Earth_Trainer_by_CALIBER_r_n_r_n_r_n_r_nUsing_this_Trainer_r_n___________________r_nLaunch_the_trainer_first__then_launch_the_Game_and_then_Press_F1_at_the_Main_Menu._r_nListen_for__Activated__r_nPress_desired_option_key_r_n_r_nOptions_r_n________r_n_r_nNumpad_1:_Unlimited_Resource_r_nNumpad_2:_Unlimited_Command_Points_r_nNumpad_3:_Unlimited_Troops_r_nNumpad_4:_Invincible_Army_r_nNumpad_5:_Instant_Sidebar_Powers_r_n_r_n_r_n_r_nNote:_This_trainer_is_compatible_with_our_Trainer_Customizer.__Click_the_Troubleshooting_r_n_tbutton_to_download_it._r_n_r_n_r_nIf_you_want_more_trainers_or_mega_trainer_versions__when_available__with_more_r_noptions_then_visit_us_at_WWW.CHEATHAPPENS.COM_r_n_r_nCreated_by_Caliber_for_CheatHappens._r_n_r_n_CaliberWerkz_2008_
sub ebx, ebp
push ebx
mov ebp, str.________r_n_________________________________________________________________________________r_n___________________________________________r_n_r_n____________________CHEATHAPPENS_and__CaliberWerkz__Presents:_r_n_r_n___________________________________________r_n_________________________________________________________________________________r_n_r_nBattle_for_Middle_Earth_Trainer_by_CALIBER_r_n_r_n_r_n_r_nUsing_this_Trainer_r_n___________________r_nLaunch_the_trainer_first__then_launch_the_Game_and_then_Press_F1_at_the_Main_Menu._r_nListen_for__Activated__r_nPress_desired_option_key_r_n_r_nOptions_r_n________r_n_r_nNumpad_1:_Unlimited_Resource_r_nNumpad_2:_Unlimited_Command_Points_r_nNumpad_3:_Unlimited_Troops_r_nNumpad_4:_Invincible_Army_r_nNumpad_5:_Instant_Sidebar_Powers_r_n_r_n_r_n_r_nNote:_This_trainer_is_compatible_with_our_Trainer_Customizer.__Click_the_Troubleshooting_r_n_tbutton_to_download_it._r_n_r_n_r_nIf_you_want_more_trainers_or_mega_trainer_versions__when_available__with_more_r_noptions_then_visit_us_at_WWW.CHEATHAPPENS.COM_r_n_r_nCreated_by_Caliber_for_CheatHappens._r_n_r_n_CaliberWerkz_2008_
push ebp
push 0
call fcn.00411d30
push 0
call fcn.00411ad7
jmp 0x40176b
push str.Could_not_create_HELP.TXT_file.
push str.Error
call fcn.00406251
push str.CH_Trainer_Keys.dat
push 0
call fcn.00411cac
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a7f0]
and ebx, ebx
jle 0x40179d
mov dword [0x51a720], 1
push 2
call fcn.00411ad7
mov eax, 0x12c
call fcn.0051f050
call fcn.00404572
push str.Run_Game_and_then_press_F1_at_Main_Menu.
push 0
push 7
call fcn.004058d3
call fcn.00403f61
mov eax, 0xa
call fcn.0051f050
push 0x70
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
and ebx, ebx
je 0x4017c0
mov edx, str.game.dat
lea ecx, [0x51a7d8]
call fcn.00405010
call fcn.00403555
mov ebx, dword [0x51a754]
and ebx, ebx
jne 0x401837
push 0
push 4
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
mov eax, 0x12c
call fcn.0051f050
push str.Game_not_Found__Run_Game_and_then_press_F1_at_Main_Menu.
push 0
push 7
call fcn.004058d3
jmp 0x4017c0
mov edx, str.CH.dll
lea ecx, [0x51a6f8]
call fcn.00405010
mov edx, dword [0x51a724]
push dword [0x51aee4]
call fcn.004123e0
mov edx, dword [0x51a6f8]
call fcn.004123e0
lea ecx, [0x51a744]
pop edx
call fcn.00405000
call fcn.0040359a
call fcn.00403555
call fcn.00403ed6
call fcn.00403f61
mov ebx, dword [0x51a7d4]
and ebx, ebx
jne 0x4018ba
mov ebx, dword [0x51a6f4]
and ebx, ebx
jne 0x4018ba
push str.Game_not_Found__Run_Game_and_then_press_F1_at_Main_Menu.
push 0
push 7
call fcn.004058d3
jmp 0x4017c0
push 0
push 3
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
push str.Game_found__Trainer_Activated_
push 0
push 7
call fcn.004058d3
mov ebp, dword [0x51a828]
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.00411cac
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a7f0]
and ebx, ebx
jle 0x401ab8
mov dword [0x51a720], 1
push 0
call fcn.00411ce0
mov dword [0x51a7b4], eax
mov dword [0x51a758], 1
mov eax, dword [0x51a7b4]
cmp eax, dword [0x51a758]
jl 0x401aae
push dword [0x51aee4]
push 0
call fcn.00411d90
sub esp, 4
lea ecx, [0x51a7fc]
pop edx
call fcn.00405000
push dword [0x51a7fc]
mov edx, str.SHIFT
pop ecx
call fcn.0051f090
je 0x4019e0
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a830]
sal ebx, 2
mov dword [ebp + ebx], 0
push dword [0x51a7fc]
mov edx, str.CTRL
pop ecx
call fcn.0051f090
je 0x401a0a
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a838]
sal ebx, 2
mov dword [ebp + ebx], 0
push dword [0x51a7fc]
mov edx, 0x414176
pop ecx
call fcn.0051f090
je 0x401a34
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a840]
sal ebx, 2
mov dword [ebp + ebx], 0
push 0
call fcn.00411ce0
push eax
mov ebx, dword [0x51a758]
mov ebp, dword [0x51a828]
sal ebx, 2
pop dword [ebp + ebx]
push dword [0x51aee4]
push dword [0x51aee4]
push 0
mov ebx, dword [0x51a758]
sal ebx, 2
mov eax, dword [ebp + ebx]
cdq
push edx
push eax
call fcn.004054e0
sub esp, 4
inc dword [0x51aee4]
mov edx, dword [0x517bc4]
add dword [esp], edx
call fcn.004050d0
pop dword [0x51aee4]
push eax
mov ebx, dword [0x51a758]
sal ebx, 2
pop dword [ebp + ebx]
inc dword [0x51a758]
jmp 0x401986
push 0
call fcn.00411ad7
push 0x83
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3d
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 4
mov ebx, dword [0x51a6dc]
add ebx, 2
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3f
mov ebx, dword [0x51a6dc]
add ebx, 3
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x7c
mov ebx, dword [0x51a6dc]
add ebx, 4
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xd
mov ebx, dword [0x51a6dc]
add ebx, 5
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 1
mov ebx, dword [0x51a6dc]
add ebx, 6
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x75
mov ebx, dword [0x51a6dc]
add ebx, 7
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x2a
mov ebx, dword [0x51a6dc]
add ebx, 8
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc7
mov ebx, dword [0x51a6dc]
add ebx, 9
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x40
mov ebx, dword [0x51a6dc]
add ebx, 0xa
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4c
mov ebx, dword [0x51a6dc]
add ebx, 0xb
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x40
mov ebx, dword [0x51a6dc]
add ebx, 0xc
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x42
mov ebx, dword [0x51a6dc]
add ebx, 0xd
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xf
mov ebx, dword [0x51a6dc]
add ebx, 0xe
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0xf
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x83
mov ebx, dword [0x51a6dc]
add ebx, 0x10
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3d
mov ebx, dword [0x51a6dc]
add ebx, 0x11
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 8
mov ebx, dword [0x51a6dc]
add ebx, 0x12
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3f
mov ebx, dword [0x51a6dc]
add ebx, 0x13
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x7c
mov ebx, dword [0x51a6dc]
add ebx, 0x14
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xd
mov ebx, dword [0x51a6dc]
add ebx, 0x15
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 1
mov ebx, dword [0x51a6dc]
add ebx, 0x16
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x75
mov ebx, dword [0x51a6dc]
add ebx, 0x17
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x1a
mov ebx, dword [0x51a6dc]
add ebx, 0x18
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc7
mov ebx, dword [0x51a6dc]
add ebx, 0x19
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push pe_nt_image_headers32
mov ebx, dword [0x51a6dc]
add ebx, 0x1a
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x64
mov ebx, dword [0x51a6dc]
add ebx, 0x1b
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 2
mov ebx, dword [0x51a6dc]
add ebx, 0x1c
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x1d
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x1e
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x64
mov ebx, dword [0x51a6dc]
add ebx, 0x1f
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x20
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x21
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x22
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x83
mov ebx, dword [0x51a6dc]
add ebx, 0x23
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3d
mov ebx, dword [0x51a6dc]
add ebx, 0x24
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc
mov ebx, dword [0x51a6dc]
add ebx, 0x25
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3f
mov ebx, dword [0x51a6dc]
add ebx, 0x26
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x7c
mov ebx, dword [0x51a6dc]
add ebx, 0x27
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xd
mov ebx, dword [0x51a6dc]
add ebx, 0x28
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 1
mov ebx, dword [0x51a6dc]
add ebx, 0x29
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x75
mov ebx, dword [0x51a6dc]
add ebx, 0x2a
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 7
mov ebx, dword [0x51a6dc]
add ebx, 0x2b
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc7
mov ebx, dword [0x51a6dc]
add ebx, 0x2c
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x40
mov ebx, dword [0x51a6dc]
add ebx, 0x2d
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x38
mov ebx, dword [0x51a6dc]
add ebx, 0x2e
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x2f
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x30
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x31
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x32
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x8b
mov ebx, dword [0x51a6dc]
add ebx, 0x33
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x68
mov ebx, dword [0x51a6dc]
add ebx, 0x34
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4c
mov ebx, dword [0x51a6dc]
add ebx, 0x35
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x39
mov ebx, dword [0x51a6dc]
add ebx, 0x36
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x2d
mov ebx, dword [0x51a6dc]
add ebx, 0x37
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xec
mov ebx, dword [0x51a6dc]
add ebx, 0x38
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x54
mov ebx, dword [0x51a6dc]
add ebx, 0x39
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x2b
mov ebx, dword [0x51a6dc]
add ebx, 0x3a
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 1
mov ebx, dword [0x51a6dc]
add ebx, 0x3b
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc3
mov ebx, dword [0x51a6dc]
add ebx, 0x3c
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 0x3d
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x3e
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0
mov ebx, dword [0x51a6dc]
add ebx, 0x3f
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe8
mov ebx, dword [0x51a6dc]
add ebx, 0x40
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4e
mov ebx, dword [0x51a6dc]
add ebx, 0x41
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xf7
mov ebx, dword [0x51a6dc]
add ebx, 0x42
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc5
mov ebx, dword [0x51a6dc]
add ebx, 0x43
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xf2
mov ebx, dword [0x51a6dc]
add ebx, 0x44
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x8b
mov ebx, dword [0x51a6dc]
add ebx, 0x45
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x15
mov ebx, dword [0x51a6dc]
add ebx, 0x46
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x48
mov ebx, dword [0x51a6dc]
add ebx, 0x47
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xd7
mov ebx, dword [0x51a6dc]
add ebx, 0x48
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x2e
mov ebx, dword [0x51a6dc]
add ebx, 0x49
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 1
mov ebx, dword [0x51a6dc]
add ebx, 0x4a
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x8b
mov ebx, dword [0x51a6dc]
add ebx, 0x4b
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4a
mov ebx, dword [0x51a6dc]
add ebx, 0x4c
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc
mov ebx, dword [0x51a6dc]
add ebx, 0x4d
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3b
mov ebx, dword [0x51a6dc]
add ebx, 0x4e
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4a
mov ebx, dword [0x51a6dc]
add ebx, 0x4f
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x14
mov ebx, dword [0x51a6dc]
add ebx, 0x50
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x74
mov ebx, dword [0x51a6dc]
add ebx, 0x51
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xa
mov ebx, dword [0x51a6dc]
add ebx, 0x52
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x3b
mov ebx, dword [0x51a6dc]
add ebx, 0x53
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xc1
mov ebx, dword [0x51a6dc]
add ebx, 0x54
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x75
mov ebx, dword [0x51a6dc]
add ebx, 0x55
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 6
mov ebx, dword [0x51a6dc]
add ebx, 0x56
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x8b
mov ebx, dword [0x51a6dc]
add ebx, 0x57
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4e
mov ebx, dword [0x51a6dc]
add ebx, 0x58
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x10
mov ebx, dword [0x51a6dc]
add ebx, 0x59
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x89
mov ebx, dword [0x51a6dc]
add ebx, 0x5a
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4e
mov ebx, dword [0x51a6dc]
add ebx, 0x5b
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 8
mov ebx, dword [0x51a6dc]
add ebx, 0x5c
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe9
mov ebx, dword [0x51a6dc]
add ebx, 0x5d
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe7
mov ebx, dword [0x51a6dc]
add ebx, 0x5e
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe
mov ebx, dword [0x51a6dc]
add ebx, 0x5f
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe5
mov ebx, dword [0x51a6dc]
add ebx, 0x60
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xf2
mov ebx, dword [0x51a6dc]
add ebx, 0x61
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 0x62
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x1091
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x163c96
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x10d8
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a7d4]
add ebx, 0x20824
mov edi, dword [0x51a6f4]
add edi, 0x10d2
sub ebx, edi
add ebx, 0xfffffffc
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x10d2
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a7d4]
add ebx, 0x211fda
mov edi, dword [0x51a6f4]
add edi, 0x10ef
sub ebx, edi
add ebx, 0xfffffffc
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x10ef
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a6f4]
add ebx, 0x3f00
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x1093
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a6f4]
add ebx, 0x3f04
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x10a3
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a6f4]
add ebx, 0x3f08
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x10b6
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, str.dk_e
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_ReadProcessMemory
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x10c9
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0xe8
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 2
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 3
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 4
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 5
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 6
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 7
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 8
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 9
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x4412e7
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a6f4]
add ebx, 0x1091
mov edi, dword [0x51a7d4]
add edi, 0x4412e7
sub ebx, edi
add ebx, 0xfffffffb
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x4412e8
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov dword [0x51a7dc], 0
mov eax, 0xff
cmp eax, dword [0x51a7dc]
jl 0x4028b9
push dword [0x51a7dc]
call sub.USER32.dll_GetAsyncKeyState
inc dword [0x51a7dc]
jmp 0x402899
mov ebp, dword [0x51a828]
push dword [ebp + 4]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 4]
mov ebp, dword [0x51a828]
push dword [ebp + 8]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 8]
mov ebp, dword [0x51a828]
push dword [ebp + 0xc]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0xc]
mov ebp, dword [0x51a828]
push dword [ebp + 0x10]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x10]
mov ebp, dword [0x51a828]
push dword [ebp + 0x14]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x14]
mov ebp, dword [0x51a828]
push dword [ebp + 0x18]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x18]
mov ebp, dword [0x51a828]
push dword [ebp + 0x1c]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x1c]
mov ebp, dword [0x51a828]
push dword [ebp + 0x20]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x20]
mov ebp, dword [0x51a828]
push dword [ebp + 0x24]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x24]
mov ebp, dword [0x51a828]
push dword [ebp + 0x28]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x28]
mov ebp, dword [0x51a828]
push dword [ebp + 0x2c]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x2c]
mov ebp, dword [0x51a828]
push dword [ebp + 0x30]
call sub.USER32.dll_GetAsyncKeyState
push eax
mov ebp, dword [0x51a848]
pop dword [ebp + 0x30]
push 0x10
call sub.USER32.dll_GetAsyncKeyState
mov dword [0x51a798], eax
push 0x11
call sub.USER32.dll_GetAsyncKeyState
mov dword [0x51a764], eax
push 0x12
call sub.USER32.dll_GetAsyncKeyState
mov dword [0x51a760], eax
mov ebp, dword [0x51a828]
push dword [ebp + 4]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 4]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 4]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 4]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a768], ebx
mov ebx, dword [0x51a768]
and ebx, ebx
je 0x402b44
push dword [0x51a7ec]
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x402ad4
mov dword [0x51a7ec], 1
push 1
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 1
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x3f00
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 0
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
jmp 0x402b43
mov ebx, 1
cmp ebx, dword [esp]
jne 0x402b43
mov dword [0x51a7ec], 0
push 0
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 1
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x3f00
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 1
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
pop eax
mov ebp, dword [0x51a828]
push dword [ebp + 8]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 8]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 8]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 8]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a778], ebx
mov ebx, dword [0x51a778]
and ebx, ebx
je 0x402c82
push dword [0x51a708]
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x402c12
mov dword [0x51a708], 1
push 1
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 1
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x3f04
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 0
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
jmp 0x402c81
mov ebx, 1
cmp ebx, dword [esp]
jne 0x402c81
mov dword [0x51a708], 0
push 0
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 1
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x3f04
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 1
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
pop eax
mov ebp, dword [0x51a828]
push dword [ebp + 0xc]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0xc]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0xc]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0xc]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a77c], ebx
mov ebx, dword [0x51a77c]
and ebx, ebx
je 0x402dc0
push dword [0x51a814]
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x402d50
mov dword [0x51a814], 1
push 1
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 1
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x3f08
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 0
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
jmp 0x402dbf
mov ebx, 1
cmp ebx, dword [esp]
jne 0x402dbf
mov dword [0x51a814], 0
push 0
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 1
push dword [0x51a6dc]
mov ebx, dword [0x51a6f4]
add ebx, 0x3f08
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 1
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
pop eax
mov ebp, dword [0x51a828]
push dword [ebp + 0x10]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x10]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x10]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x10]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a780], ebx
mov ebx, dword [0x51a780]
and ebx, ebx
je 0x403036
push dword [0x51a75c]
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x402f59
mov dword [0x51a75c], 1
push 0xe9
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 2
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 3
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
add ebx, 4
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 5
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x211fd5
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
mov ebx, dword [0x51a6f4]
add ebx, 0x10d1
mov edi, dword [0x51a7d4]
add edi, 0x211fd5
sub ebx, edi
add ebx, 0xfffffffb
push ebx
mov eax, dword [0x51a6dc]
call fcn.0051f070
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 4
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x211fd6
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 0
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
jmp 0x403035
mov ebx, 1
cmp ebx, dword [esp]
jne 0x403035
mov dword [0x51a75c], 0
push 0xe8
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x4a
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe8
mov ebx, dword [0x51a6dc]
add ebx, 2
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xe0
mov ebx, dword [0x51a6dc]
add ebx, 3
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xff
mov ebx, dword [0x51a6dc]
add ebx, 4
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 5
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x211fd5
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 1
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
pop eax
mov ebp, dword [0x51a828]
push dword [ebp + 0x14]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x14]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x14]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x14]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a784], ebx
mov ebx, dword [0x51a784]
and ebx, ebx
je 0x40326f
push dword [0x51a800]
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x403183
mov dword [0x51a800], 1
push 0x90
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x90
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 2
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x268ab1
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0xeb
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x5b
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 2
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x4a4ff5
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 0
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
jmp 0x40326e
mov ebx, 1
cmp ebx, dword [esp]
jne 0x40326e
mov dword [0x51a800], 0
push 0x74
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0xb
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 2
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x268ab1
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0x75
mov ebx, dword [0x51a6dc]
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push 0x5b
mov ebx, dword [0x51a6dc]
inc ebx
mov eax, ebx
call fcn.0051f060
mov dword [0x51a7f0], eax
push dword [0x51a7b0]
push 2
push dword [0x51a6dc]
mov ebx, dword [0x51a7d4]
add ebx, 0x4a4ff5
push ebx
push dword [0x51a6c8]
call sub.KERNEL32.dll_WriteProcessMemory
mov dword [0x51a7f0], eax
push 0
push 1
call fcn.00405da0
mov eax, 0x12c
call fcn.0051f050
pop eax
mov ebp, dword [0x51a828]
push dword [ebp + 0x18]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x18]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x18]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x18]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a788], ebx
mov ebx, dword [0x51a788]
and ebx, ebx
je 0x4032c5
mov ebp, dword [0x51a828]
push dword [ebp + 0x1c]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x1c]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x1c]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x1c]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a78c], ebx
mov ebx, dword [0x51a78c]
and ebx, ebx
je 0x40331b
mov ebp, dword [0x51a828]
push dword [ebp + 0x20]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x20]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x20]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x20]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a790], ebx
mov ebx, dword [0x51a790]
and ebx, ebx
je 0x403371
mov ebp, dword [0x51a828]
push dword [ebp + 0x24]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x24]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x24]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x24]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a794], ebx
mov ebx, dword [0x51a794]
and ebx, ebx
je 0x4033c7
mov ebp, dword [0x51a828]
push dword [ebp + 0x28]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x28]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x28]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x28]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a76c], ebx
mov ebx, dword [0x51a76c]
and ebx, ebx
je 0x40341d
mov ebp, dword [0x51a828]
push dword [ebp + 0x2c]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x2c]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x2c]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x2c]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a770], ebx
mov ebx, dword [0x51a770]
and ebx, ebx
je 0x403473
mov ebp, dword [0x51a828]
push dword [ebp + 0x30]
call sub.USER32.dll_GetAsyncKeyState
mov ebx, eax
mov ebp, dword [0x51a830]
mov edi, dword [ebp + 0x30]
add edi, dword [0x51a798]
imul ebx, edi
mov ebp, dword [0x51a838]
mov edi, dword [ebp + 0x30]
add edi, dword [0x51a764]
imul ebx, edi
mov ebp, dword [0x51a840]
mov edi, dword [ebp + 0x30]
add edi, dword [0x51a760]
imul ebx, edi
mov dword [0x51a774], ebx
mov ebx, dword [0x51a774]
and ebx, ebx
je 0x4034c9
mov dword [0x51a768], 0
mov dword [0x51a778], 0
mov dword [0x51a77c], 0
mov dword [0x51a780], 0
mov dword [0x51a784], 0
mov dword [0x51a788], 0
mov dword [0x51a78c], 0
mov dword [0x51a790], 0
mov dword [0x51a794], 0
mov dword [0x51a76c], 0
mov dword [0x51a770], 0
mov dword [0x51a774], 0
call fcn.00403f61
mov eax, 1
call fcn.0051f050
jmp 0x40288f
push 0
call 0x40426a
push dword [0x51a6a8]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.00405b09
call fcn.004069b4
call fcn.00406a84
call fcn.0040f37f
call fcn.004103eb
call fcn.00411b2d
call fcn.0041232c
ret