Function at 0x402570
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp - 0x18]
push edi
mov edi, 0x403a20
push esi
mov esi, 0x442194
push ebx
sub esp, 0x33c
mov ebx, 0x4030af
mov dword [ebp - 0x2bc], eax
lea eax, [ebp - 0x2dc]
mov dword [esp], eax
mov dword [ebp - 0x2b4], esp
mov dword [ebp - 0x2c4], edi
mov dword [ebp - 0x2c0], esi
mov dword [ebp - 0x2b8], ebx
call fcn.0040f440
mov dword [ebp - 0x40], str.TrainerClass
mov edx, dword [ebp + 8]
mov ecx, str.mainicon
mov dword [ebp - 0x60], 0x401a10
mov eax, 0xffffffff
mov dword [ebp - 0x64], 8
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x68], 0x30
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [ebp - 0x2d8], eax
call sub.USER32.dll_LoadIconA
sub esp, 8
test eax, eax
je 0x403092
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x3c], eax
mov eax, 0x7f00
mov dword [esp + 4], eax
mov eax, 0xffffffff
mov dword [esp], 0
mov dword [ebp - 0x2d8], eax
call sub.USER32.dll_LoadCursorA
mov dword [ebp - 0x4c], eax
sub esp, 8
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [esp], 0xf
call sub.USER32.dll_GetSysColorBrush
sub esp, 4
test eax, eax
je 0x403088
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov eax, 0xffffffff
mov dword [ebp - 0x2d8], eax
call sub.USER32.dll_RegisterClassExA
sub esp, 4
test ax, ax
jne 0x4026c9
mov dword [esp], 0
xor eax, eax
mov edi, str.Fail
mov dword [esp + 0xc], eax
mov esi, str.The_program_failed_to_initialize._The_window_class_could_not_be_registered.
xor ebx, ebx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call sub.USER32.dll_MessageBoxA
mov dword [ebp - 0x2e4], ebx
sub esp, 0x10
lea eax, [ebp - 0x2dc]
mov dword [esp], eax
call fcn.0040f520
mov eax, dword [ebp - 0x2e4]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp], 0
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, 0x1e0
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, 0x28a
mov edi, str.Ultimate_Doukutsu_Trainer__v0.1__by_Josh_Ventura
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 8]
mov esi, str.TrainerClass
mov dword [esp + 0x18], eax
mov eax, 0x80000000
mov ebx, 0xffffffff
mov dword [esp + 0x14], eax
mov eax, 0x80000000
mov dword [esp + 0x10], eax
mov eax, 0xcf0000
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 8], edi
mov edi, 0x50000003
mov dword [esp + 4], esi
mov esi, str.Infinite_Health
mov dword [ebp - 0x2d8], ebx
mov ebx, str.button
mov dword [esp + 0xc], eax
call sub.USER32.dll_CreateWindowExA
mov dword [0x44906c], eax
sub esp, 0x30
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, 0x18
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, 0x12c
mov dword [esp + 0x18], eax
mov eax, 8
mov dword [esp + 0x28], edx
mov edx, 1
mov dword [esp + 0x14], eax
mov eax, 8
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0xc], edi
mov edi, str.button
mov dword [esp + 8], esi
xor esi, esi
mov dword [esp + 4], ebx
mov ebx, 6
mov dword [esp + 0x10], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
mov eax, dword [0x44906c]
sub esp, 0x30
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 8]
mov edx, 2
mov dword [esp + 0x20], eax
mov eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, 0x12c
mov dword [esp + 0x18], eax
mov eax, 0x20
mov dword [esp + 0x14], eax
mov eax, 8
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, str.Max_Health
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 4], edi
mov edi, 7
mov dword [esp + 8], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
mov eax, dword [ebp + 8]
sub esp, 0x30
mov ecx, 0x18
mov dword [esp + 0x2c], esi
mov edx, 0x12c
mov esi, 0x18
mov dword [esp + 0x28], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x24], ebx
mov ebx, 0xfa
mov dword [esp + 0x20], eax
mov eax, 0x38
mov dword [esp + 0x14], eax
mov eax, 8
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, str.Invincible__intangible_
mov dword [esp + 8], eax
mov eax, str.button
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
xor eax, eax
mov edx, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [0x44906c]
mov ecx, 0x50
mov dword [esp + 0x28], edx
mov edx, 8
mov dword [esp + 0x20], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, str.Infinite_Booster
mov dword [esp + 8], eax
mov eax, str.button
mov dword [esp + 0x24], edi
mov edi, 0x12c
mov dword [esp + 0x1c], esi
mov esi, 0x50
mov dword [esp + 0x18], ebx
mov ebx, 0x102
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
xor eax, eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov eax, 8
mov edx, str.Numpad_Arrows_Move
mov dword [esp + 0x24], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x28], ecx
mov ecx, 0x50000003
mov dword [esp + 0x20], eax
mov eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, str.button
mov dword [esp + 8], edx
mov dword [esp + 0x18], edi
mov edi, 8
mov dword [esp + 0x14], esi
mov esi, 0x50000000
mov dword [esp + 0x10], ebx
mov ebx, str.For_current_weapon:__Still_locks_as_you_change_weapon_if_left_enabled_
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
xor eax, eax
mov ecx, str.static
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edi
mov edi, str.Infinite_Ammo
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [0x44906c]
mov dword [esp + 0xc], esi
mov esi, str.button
mov dword [esp + 0x20], eax
mov eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, 0x276
mov dword [esp + 0x18], eax
mov eax, 0x78
mov dword [esp + 8], ebx
xor ebx, ebx
mov dword [esp + 0x14], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov eax, 3
xor edx, edx
mov dword [esp + 0x24], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, 0x12c
mov dword [esp + 0x18], eax
mov eax, 0x90
mov dword [esp + 0x14], eax
mov eax, 0x18
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0x28], edx
mov dword [esp + 8], edi
xor edi, edi
mov dword [esp + 4], esi
mov esi, 4
mov dword [esp + 0xc], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
mov eax, dword [0x44906c]
sub esp, 0x30
mov edx, 0x18
mov dword [esp + 0x2c], ebx
mov ecx, dword [ebp + 8]
mov ebx, 0x18
mov dword [esp + 0x20], eax
mov eax, 0x12c
mov dword [esp + 0x18], eax
mov eax, 0xa8
mov dword [esp + 0x14], eax
mov eax, 0x18
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, str.Gun_Doesnt_Need_Ammo_Anymore
mov dword [esp + 0x28], ecx
mov ecx, 5
mov dword [esp + 8], eax
mov eax, str.button
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
mov eax, dword [ebp + 8]
sub esp, 0x30
mov ecx, 0x1f4
mov dword [esp + 0x2c], edi
mov edx, 0xc0
mov edi, 0x18
mov dword [esp + 0x28], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x24], esi
mov esi, 0x276
mov dword [esp + 0x20], eax
mov eax, 0x18
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, str.Lock_Level__Numpad_1_and_3_change_lock_value_
mov dword [esp + 8], eax
mov eax, str.button
mov dword [esp + 0x1c], ebx
mov ebx, 0xe4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
xor eax, eax
mov edx, dword [ebp + 8]
mov dword [esp + 0x2c], eax
xor eax, eax
mov ecx, 0x18
mov dword [esp + 0x24], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x28], edx
mov edx, 0x50000000
mov dword [esp + 0x20], eax
mov eax, str.Iterate_between_these_weapons:__Numpad__and____
mov dword [esp + 8], eax
mov eax, str.static
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
mov eax, 0x104
sub esp, 0x30
mov dword [ebp - 0x2e8], eax
xor eax, eax
mov dword [ebp - 0x2ec], eax
xor eax, eax
mov dword [ebp - 0x318], eax
jmp 0x402c43
mov dword [esp], 0
mov edx, eax
mov ebx, 0x50000003
mov dword [esp + 0xc], ebx
sar edx, 2
lea eax, [edx*8]
sub eax, edx
mov edx, dword [ebp - 0x2e8]
lea eax, [edx + eax*4]
mov dword [esp + 0x14], eax
mov eax, 0x1b4e81b5
imul dword [ebp - 0x318]
mov eax, dword [ebp - 0x318]
mov ecx, edx
sar ecx, 6
cdq
sub ecx, edx
imul eax, ecx, 0x258
mov edx, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x2ec]
sub edx, eax
mov eax, edx
add eax, 0x30
mov dword [esp + 0x10], eax
mov eax, dword [ecx*4 + 0x444100]
mov edx, 0xffffffff
mov dword [ebp - 0x2d8], edx
mov ecx, str.button
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sub.USER32.dll_CreateWindowExA
add dword [ebp - 0x318], 0x96
mov ecx, 0x449020
mov edx, dword [ebp - 0x2ec]
sub esp, 0x30
mov dword [ecx + edx*4], eax
inc edx
cmp edx, 0xa
mov dword [ebp - 0x2ec], edx
jg 0x402c8e
xor eax, eax
mov ecx, dword [ebp + 8]
mov edi, 0x18
mov dword [esp + 0x2c], eax
mov eax, dword [ebp - 0x2ec]
mov esi, 0x94
mov dword [esp + 0x28], ecx
add eax, 0xc
mov dword [esp + 0x24], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x2ec]
test eax, eax
jns 0x402b97
add eax, 3
jmp 0x402b97
add dword [ebp - 0x2e8], 0x5c
xor eax, eax
mov edi, str.Numpad__Appends_Polar_Star_to_Inventory
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov esi, str.button
mov dword [esp + 8], edi
mov edx, dword [ebp - 0x2e8]
mov ebx, 0xffffffff
mov dword [esp + 4], esi
xor edi, edi
mov esi, 0xb
mov dword [esp + 0x28], eax
mov eax, 9
mov dword [esp + 0x24], eax
mov eax, dword [0x44906c]
mov dword [esp + 0x14], edx
mov dword [ebp - 0x2d8], ebx
mov ebx, 0xf0
mov dword [esp + 0x20], eax
mov eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, 0x168
mov dword [esp + 0x18], eax
mov eax, 0x18
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
add dword [ebp - 0x2e8], 0x34
sub esp, 0x30
mov eax, dword [0x44906c]
mov dword [esp], 0
xor ecx, ecx
mov edx, 0xa
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, 0xf0
mov dword [esp + 0x1c], eax
mov eax, 0x96
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x2e8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
mov eax, 8
mov dword [esp + 0x10], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, 0x4454cd
mov dword [esp + 8], eax
mov eax, str.combobox
mov dword [esp + 4], eax
call sub.USER32.dll_CreateWindowExA
mov dword [0x449060], eax
mov eax, dword [0x44906c]
sub esp, 0x30
mov dword [esp + 0x2c], edi
mov edx, dword [ebp + 8]
mov ecx, 0xf0
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0x2e8]
mov dword [esp + 0x20], eax
mov eax, 0x50000003
mov dword [esp + 0xc], eax
mov eax, 0x4454cd
mov dword [esp + 0x28], edx
mov edx, 0xa2
mov dword [esp + 8], eax
mov eax, str.combobox
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
mov dword [0x449064], eax
sub esp, 0x30
xor eax, eax
lea esi, [esi]
inc eax
mov edi, 0x143
mov dword [esp + 8], eax
mov dword [ebp - 0x2f0], eax
mov eax, str.Inventory_Slot__d
mov dword [esp + 4], eax
lea eax, [ebp - 0x88]
mov dword [esp], eax
mov eax, 0xffffffff
mov dword [ebp - 0x2d8], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], edi
xor eax, eax
lea edx, [ebp - 0x88]
mov dword [esp + 8], eax
mov eax, dword [0x449060]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
mov eax, dword [ebp - 0x2f0]
sub esp, 0x10
cmp eax, 0x17
jle 0x402e00
xor esi, esi
mov dword [ebp - 0x2f4], esi
lea esi, [esi]
mov ecx, dword [ebp - 0x2f4]
xor ebx, ebx
mov edx, 0xffffffff
mov dword [esp + 8], ebx
mov dword [ebp - 0x2d8], edx
mov eax, dword [ecx*4 + 0x444020]
mov ecx, 0x143
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov eax, dword [0x449064]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
inc dword [ebp - 0x2f4]
sub esp, 0x10
cmp dword [ebp - 0x2f4], 0x27
jbe 0x402e70
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [0x44906c]
mov dword [esp], eax
mov eax, 0xffffffff
mov dword [ebp - 0x2d8], eax
call sub.USER32.dll_ShowWindow
sub esp, 8
xor eax, eax
nop
mov byte [eax + 0x449055], 0
inc eax
cmp eax, 0xa
jle 0x402ee0
mov dword [esp], 0x800
mov eax, 0xffffffff
mov dword [ebp - 0x2d8], eax
call fcn.00404e30
mov dword [ebp - 0x2f8], eax
test eax, eax
je 0x403231
lea eax, [ebp - 0x2e0]
mov edi, 0x800
mov esi, 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2f8]
mov dword [esp + 4], edi
mov dword [ebp - 0x2d8], esi
mov dword [esp], eax
call sub.PSAPI.DLL_EnumProcesses
sub esp, 0xc
test eax, eax
je 0x403200
lea eax, [ebp - 0x2a8]
mov dword [esp + 8], eax
mov eax, str.Doukutsu.exe
mov dword [esp + 4], eax
lea eax, [ebp - 0x298]
mov dword [esp], eax
mov eax, 5
mov dword [ebp - 0x2d8], eax
call fcn.00433528
xor edx, edx
xor eax, eax
cmp edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2fc], eax
jae 0x40301e
mov dword [esp], 0x449420
mov eax, str.Checking_PID
mov dword [esp + 4], eax
mov eax, 4
mov dword [ebp - 0x2d8], eax
call fcn.004407b8
mov dword [esp], eax
mov ecx, dword [ebp - 0x2fc]
mov dword [esp + 4], ecx
call fcn.00430478
mov dword [esp], eax
mov edi, str...._r_n
mov dword [esp + 4], edi
call fcn.004407b8
mov edx, dword [ebp - 0x2fc]
mov esi, 1
mov ecx, dword [ebp - 0x2f8]
mov eax, dword [ecx + edx*4]
mov dword [esp + 4], esi
mov dword [esp], 0x438
mov dword [esp + 8], eax
call sub.KERNEL32.dll_OpenProcess
mov dword [0x449068], eax
sub esp, 0xc
test eax, eax
jne 0x403262
inc dword [ebp - 0x2fc]
mov ecx, dword [ebp - 0x2fc]
cmp ecx, dword [ebp - 0x2e0]
jb 0x402f8b
mov eax, dword [0x449068]
test eax, eax
jne 0x403109
mov dword [esp], 0
xor edi, edi
mov esi, str.Fail
mov dword [esp + 0xc], edi
mov ebx, str.Could_not_find_Doukutsus_process._r_nMake_sure_Cave_Story_is_running__and_that_its_name_is_Doukutsu.exe
mov ecx, 4
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [ebp - 0x2d8], ecx
call sub.USER32.dll_MessageBoxA
mov eax, dword [ebp - 0x298]
sub esp, 0x10
lea edx, [eax - 0xc]
mov dword [ebp - 0x314], edx
cmp edx, 0x444300
jne 0x403363
mov eax, 0xfffffffd
mov dword [ebp - 0x2e4], eax
jmp 0x4026ab
mov eax, 1
jmp 0x40265b
mov dword [esp], 0
mov eax, 0x7f00
mov dword [esp + 4], eax
call sub.USER32.dll_LoadIconA
sub esp, 8
jmp 0x402603
mov dword [esp], 0x449420
mov eax, str._r_n_r_n_r_nThis_was_a_triumph__etc..._r_n
mov dword [esp + 4], eax
mov eax, 4
mov dword [ebp - 0x2d8], eax
call fcn.004407b8
mov eax, 0x6b
xor edi, edi
mov esi, 1
mov dword [esp + 0xc], eax
mov eax, dword [0x44906c]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.USER32.dll_RegisterHotKey
mov eax, dword [0x44906c]
sub esp, 0x10
mov ebx, 0x6d
mov dword [esp + 0xc], ebx
xor ecx, ecx
mov edx, 2
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.USER32.dll_RegisterHotKey
sub esp, 0x10
mov eax, 0x4012f0
mov dword [esp + 0xc], eax
mov eax, 0x64
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
mov eax, dword [0x44906c]
mov dword [esp], eax
call sub.USER32.dll_SetTimer
sub esp, 0x10
xor eax, eax
xor edi, edi
mov esi, 4
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x38]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x2d8], esi
call sub.USER32.dll_GetMessageA
sub esp, 0x10
test eax, eax
je 0x4033eb
lea edx, [ebp - 0x38]
mov eax, 4
mov dword [esp], edx
mov dword [ebp - 0x2d8], eax
call sub.USER32.dll_TranslateMessage
sub esp, 4
lea ecx, [ebp - 0x38]
mov dword [esp], ecx
call sub.USER32.dll_DispatchMessageA
sub esp, 4
jmp 0x4031a4
mov dword [esp], 0
mov ecx, str.Fail
mov edx, str.The_system_failed_to_fetch_a_list_of_processes._Could_not_locate_Doukutsu.exe
mov dword [esp + 8], ecx
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], edx
call sub.USER32.dll_MessageBoxA
sub esp, 0x10
mov eax, 0xfffffffe
jmp 0x40307d
mov dword [esp], 0
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, str.Fail
mov dword [esp + 8], eax
mov eax, str.Could_not_allocate_enough_memory_to_check_process_names._This_shouldnt_happen__I_only_wanted_two_kilobytes.
mov dword [esp + 4], eax
call sub.USER32.dll_MessageBoxA
sub esp, 0x10
mov eax, 0xffffffff
jmp 0x40307d
mov dword [esp], eax
mov ebx, 0x1ff
lea edx, [ebp - 0x288]
mov dword [esp + 0xc], ebx
xor ecx, ecx
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call sub.PSAPI.DLL_GetModuleFileNameExA
sub esp, 0x10
test eax, eax
je 0x40333c
xor edx, edx
lea ecx, [ebp - 0x288]
mov byte [eax + ebp - 0x288], dl
lea eax, [ebp + eax - 0x289]
cmp ecx, eax
mov dword [ebp - 0x300], eax
jae 0x4032d9
dec dword [ebp - 0x300]
mov edx, dword [ebp - 0x300]
movzx eax, byte [edx]
cmp al, 0x5c
sete dl
cmp al, 0x2f
sete al
or dl, al
jne 0x4032d3
cmp ecx, dword [ebp - 0x300]
jmp 0x4032ac
inc dword [ebp - 0x300]
mov dword [esp], 0x449420
mov ebx, 0x445655
mov ecx, 4
mov dword [esp + 4], ebx
mov dword [ebp - 0x2d8], ecx
call fcn.004407b8
mov dword [esp], eax
mov ecx, dword [ebp - 0x300]
mov dword [esp + 4], ecx
call fcn.004407b8
mov dword [esp], eax
mov edx, 0x44526b
mov dword [esp + 4], edx
call fcn.004407b8
mov edx, dword [ebp - 0x300]
lea eax, [ebp - 0x298]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00418be8
test eax, eax
je 0x40301e
mov eax, dword [0x449068]
mov dword [esp], eax
mov eax, 4
mov dword [ebp - 0x2d8], eax
call sub.KERNEL32.dll_CloseHandle
xor eax, eax
sub esp, 4
mov dword [0x449068], eax
jmp 0x403006
sub eax, 4
mov edx, 0xffffffff
mov dword [esp], eax
mov eax, 1
mov dword [esp + 4], edx
mov dword [ebp - 0x2d8], eax
call fcn.00404ed0
test eax, eax
jg 0x403078
mov eax, dword [ebp - 0x314]
lea ecx, [ebp - 0x2a8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00431368
jmp 0x403078
mov eax, dword [ebp - 0x298]
mov edx, dword [ebp - 0x30]
lea ecx, [eax - 0xc]
mov dword [ebp - 0x304], edx
cmp ecx, 0x444300
mov dword [ebp - 0x310], ecx
jne 0x40341c
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x2e4], ecx
jmp 0x4026ab
mov ebx, 0xffffffff
sub eax, 4
mov ecx, 2
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x2d8], ecx
call fcn.00404ed0
test eax, eax
jg 0x40340b
mov edx, dword [ebp - 0x310]
lea eax, [ebp - 0x2a8]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00431368
jmp 0x40340b