Function at 0x4064b0
Capabilities:
Execute command
Get graphical window text
Hide graphical window
Log keystrokes via polling
Set console window title
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40b4e4
mov eax, dword fs:[0]
push eax
sub esp, 0x41c
mov eax, dword [0x40f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x324], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov esi, eax
lea eax, [ebp - 0x220]
push eax
push esi
mov dword [ebp - 0x308], esi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x64
lea eax, [ebp - 0xd8]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowTextW]
xor eax, eax
mov dword [ebp - 0x250], 0
lea ecx, [ebp - 0xd8]
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 7
lea edx, [ecx + 2]
mov word [ebp - 0x250], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x406542
sub ecx, edx
lea eax, [ebp - 0xd8]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x250]
call fcn.00408ae0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x250]
cmp dword [ebp - 0x23c], 8
mov eax, dword [ebp - 0x240]
cmovae ecx, dword [ebp - 0x250]
mov dword [ebp - 0x304], ecx
cmp eax, 3
jb 0x4065b8
add eax, 0xfffffffe
mov edi, ecx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x300], eax
nop
sub eax, edi
sar eax, 1
je 0x4065b8
cmp word [edi], 0x63
je 0x406740
add edi, 2
sub eax, 1
jne 0x4065a6
mov eax, dword [ebp - 0x214]
or edi, 0xffffffff
sub eax, dword [ebp - 0x21c]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x10
mov dword [ebp - 0x304], eax
call esi
push 0x11
mov dword [ebp - 0x300], eax
call esi
sub eax, dword [ebp - 0x304]
push 5
push 0
push 0
push eax
mov eax, dword [ebp - 0x300]
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
push 0
push dword [ebp - 0x308]
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0
mov dword [ebp - 0x108], 0
lea ecx, [ebp - 0x108]
push 0x40c398
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.00408c40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf0]
push 0
mov dword [ebp - 0xf0], 0
push 0x40c398
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.00408c40
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x180]
push 0
mov dword [ebp - 0x180], 0
push 0x40c398
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0xf
mov byte [ebp - 0x180], 0
call fcn.00408c40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2e0]
push 0
mov dword [ebp - 0x2e0], 0
push 0x40c398
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2cc], 0xf
mov byte [ebp - 0x2e0], 0
call fcn.00408c40
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [ebp + 8], 2
mov dword [ebp - 0x300], eax
jge 0x4067ab
push str.PYL____notepad_python_launcher_n
call fcn.00401420
push str.no_args__pyl_main.py_or_pyl_main.cpp_n_n
call fcn.00401420
add esp, 8
cmp edi, 0xffffffff
jne 0x407f49
push str.Press_a_key...
call fcn.00401420
add esp, 4
jmp 0x407f43
mov ecx, 0x40c5c4
mov esi, edi
mov edx, 3
sub esi, ecx
nop
mov ax, word [esi + ecx]
cmp ax, word [ecx]
jne 0x40679d
add ecx, 2
sub edx, 1
jne 0x406750
mov eax, dword [ebp - 0x214]
sub edi, dword [ebp - 0x304]
sub eax, dword [ebp - 0x21c]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x10
sar edi, 1
mov dword [ebp - 0x304], eax
call esi
push 0x11
mov dword [ebp - 0x300], eax
call esi
cmp edi, 0xffffffff
jne 0x40660c
jmp 0x4065e1
mov eax, dword [ebp - 0x300]
add edi, 2
jmp 0x4065a0
jne 0x407f49
mov edx, dword [ebp - 0x324]
mov edx, dword [edx + 4]
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4067c0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xf0]
call fcn.00408c40
mov esi, dword [ebp - 0xdc]
lea ecx, [ebp - 0xf0]
mov edx, dword [ebp - 0xe0]
cmp esi, 0x10
push 3
cmovae ecx, dword [ebp - 0xf0]
push 0x40c628
push 0
call fcn.00409130
add esp, 0xc
cmp eax, 0xffffffff
je 0x406ccd
push 0
push dword [ebp - 0x308]
call dword [sym.imp.USER32.dll_ShowWindow]
push 7
push 0x40c62c
lea ecx, [ebp - 0x108]
call fcn.00408c40
mov eax, dword [ebp - 0x324]
mov edx, dword [eax + 4]
mov ecx, edx
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406840
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x180]
call fcn.00408c40
push ecx
push 0x40c3cc
lea ecx, [ebp - 0xf0]
call fcn.00408900
cmp eax, 0xffffffff
je 0x406a9c
mov edx, dword [ebp - 0xe0]
lea esi, [eax + 1]
mov ecx, edx
mov dword [ebp - 0x1e0], 0
sub ecx, eax
mov dword [ebp - 0x1d0], 0
inc ecx
mov dword [ebp - 0x1cc], 0xf
mov byte [ebp - 0x1e0], 0
cmp edx, esi
jb 0x407f9f
sub edx, esi
lea eax, [ebp - 0xf0]
cmp edx, ecx
cmovb ecx, edx
cmp dword [ebp - 0xdc], 0x10
push ecx
cmovae eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x1e0]
add eax, esi
push eax
call fcn.00408c40
mov esi, 0x7fffffff
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xf8]
mov eax, esi
sub eax, edx
cmp eax, dword [ebp - 0x1d0]
jb 0x407fa4
cmp dword [ebp - 0xf4], 0x10
lea ecx, [ebp - 0x108]
push dword [ebp - 0x1d0]
cmovae ecx, dword [ebp - 0x108]
lea eax, [ebp - 0x1e0]
cmp dword [ebp - 0x1cc], 0x10
cmovae eax, dword [ebp - 0x1e0]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x1c8]
call fcn.00409930
mov edx, dword [ebp - 0x1cc]
cmp edx, 0x10
jb 0x406971
mov ecx, dword [ebp - 0x1e0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406967
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406a8c
push edx
push ecx
call fcn.0040a1f6
add esp, 8
movups xmm0, xmmword [ebp - 0x1c8]
mov ecx, dword [ebp - 0xe0]
sub esi, ecx
movups xmmword [ebp - 0x1e0], xmm0
movq xmm0, qword [ebp - 0x1b8]
movq qword [ebp - 0x1d0], xmm0
cmp esi, 4
jb 0x407fa9
cmp dword [ebp - 0xdc], 0x10
lea eax, [ebp - 0xf0]
push ecx
cmovae eax, dword [ebp - 0xf0]
push eax
push 4
push str.pyl
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x198]
call fcn.00409930
mov byte [ebp - 4], 6
lea eax, [ebp - 0x198]
cmp dword [ebp - 0x184], 0x10
lea ecx, [ebp - 0x428]
cmovae eax, dword [ebp - 0x198]
push eax
call fcn.004087d0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x424]
cmp eax, ecx
je 0x406a15
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x184]
cmp edx, 0x10
jb 0x406a55
mov ecx, dword [ebp - 0x198]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406a4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x406a4b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov eax, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x1b4]
cmp edx, 0x10
jb 0x406a9c
mov ecx, dword [ebp - 0x1c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406a92
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x406a92
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
sub esp, 0x18
mov ecx, esp
push 6
push str.python
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
xor ecx, ecx
call fcn.00407fe0
mov ecx, esp
push 3
push 0x40c644
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
mov ecx, dword [ebp - 0x300]
call fcn.00407fe0
mov ecx, esp
push 3
push 0x40c644
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
mov ecx, dword [ebp - 0x300]
call fcn.00407fe0
add esp, 0x18
push 0xa2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x407f49
cmp dword [ebp - 0xdc], 0x10
lea edx, [ebp - 0xf0]
mov ecx, dword [ebp - 0xe0]
cmovae edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf8]
sub eax, esi
mov dword [ebp - 0x300], ecx
push ecx
push edx
cmp ecx, eax
ja 0x406ba3
cmp dword [ebp - 0xf4], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x108]
cmovae eax, dword [ebp - 0x108]
add esi, eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x300]
add esp, 0xc
mov byte [eax + esi], 0
jmp 0x406bbc
mov byte [ebp - 0x300], 0
push dword [ebp - 0x300]
push ecx
lea ecx, [ebp - 0x108]
call fcn.00409560
cmp dword [ebp - 0xdc], 0x10
lea eax, [ebp - 0xf0]
push dword [ebp - 0xe0]
cmovae eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x180]
push eax
call fcn.00408c40
push ecx
push 0x40c3cc
lea ecx, [ebp - 0x180]
call fcn.00408900
mov edx, eax
cmp edx, 0xffffffff
je 0x406c7b
mov ecx, dword [ebp - 0x170]
cmp ecx, edx
jbe 0x406c39
nop dword [eax + eax]
dec ecx
lea eax, [ebp - 0x180]
cmp dword [ebp - 0x16c], 0x10
mov dword [ebp - 0x170], ecx
cmovae eax, dword [ebp - 0x180]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0x170]
cmp ecx, edx
ja 0x406c10
cmp dword [ebp - 0x16c], 0x10
lea eax, [ebp - 0x180]
lea ecx, [ebp - 0x428]
cmovae eax, dword [ebp - 0x180]
push eax
call fcn.004087d0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x424]
cmp eax, ecx
je 0x406c7b
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push dword [ebp - 0x308]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp - 0xf4], 0x10
lea eax, [ebp - 0x108]
cmovae eax, dword [ebp - 0x108]
push eax
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
cmp edi, 0xffffffff
jne 0x407f49
push str._nPress_any_key_to_exit.
call fcn.00401420
add esp, 4
jmp 0x407f43
mov edx, dword [ebp - 0xe0]
lea ecx, [ebp - 0xf0]
push 4
cmp esi, 0x10
push str..cpp
cmovae ecx, dword [ebp - 0xf0]
push 0
call fcn.00409130
add esp, 0xc
cmp eax, 0xffffffff
je 0x407f31
push 0
push dword [ebp - 0x308]
call dword [sym.imp.USER32.dll_ShowWindow]
push 4
push str.PYL
lea ecx, [ebp - 0x108]
call fcn.00408c40
mov eax, dword [ebp - 0x324]
mov edx, dword [eax + 4]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406d30
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x180]
call fcn.00408c40
push ecx
push 0x40c3cc
lea ecx, [ebp - 0xf0]
call fcn.00408900
mov esi, 0x7fffffff
cmp eax, 0xffffffff
je 0x406f94
mov edx, dword [ebp - 0xe0]
mov ecx, edx
sub ecx, eax
mov dword [ebp - 0x1f8], 0
inc eax
mov dword [ebp - 0x1e8], 0
inc ecx
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x1e4], 0xf
mov byte [ebp - 0x1f8], 0
cmp edx, eax
jb 0x407fae
sub edx, eax
lea eax, [ebp - 0xf0]
cmp edx, ecx
cmovb ecx, edx
cmp dword [ebp - 0xdc], 0x10
push ecx
cmovae eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x1f8]
add eax, dword [ebp - 0x304]
push eax
call fcn.00408c40
mov byte [ebp - 4], 7
mov eax, esi
mov edx, dword [ebp - 0xf8]
sub eax, edx
cmp eax, dword [ebp - 0x1e8]
jb 0x407fb3
cmp dword [ebp - 0xf4], 0x10
lea ecx, [ebp - 0x108]
push dword [ebp - 0x1e8]
cmovae ecx, dword [ebp - 0x108]
lea eax, [ebp - 0x1f8]
cmp dword [ebp - 0x1e4], 0x10
cmovae eax, dword [ebp - 0x1f8]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x1c8]
call fcn.00409930
mov edx, dword [ebp - 0x1e4]
cmp edx, 0x10
jb 0x406e69
mov ecx, dword [ebp - 0x1f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406e5f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
movups xmm0, xmmword [ebp - 0x1c8]
mov ecx, dword [ebp - 0xe0]
mov eax, esi
sub eax, ecx
movups xmmword [ebp - 0x1f8], xmm0
movq xmm0, qword [ebp - 0x1b8]
movq qword [ebp - 0x1e8], xmm0
cmp eax, 4
jb 0x407fb8
cmp dword [ebp - 0xdc], 0x10
lea eax, [ebp - 0xf0]
push ecx
cmovae eax, dword [ebp - 0xf0]
push eax
push 4
push str.pyl
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x198]
call fcn.00409930
mov byte [ebp - 4], 8
lea eax, [ebp - 0x198]
cmp dword [ebp - 0x184], 0x10
lea ecx, [ebp - 0x428]
cmovae eax, dword [ebp - 0x198]
push eax
call fcn.004087d0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x424]
cmp eax, ecx
je 0x406f0f
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x184]
cmp edx, 0x10
jb 0x406f4f
mov ecx, dword [ebp - 0x198]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f45
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x406f45
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov eax, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x1b4]
cmp edx, 0x10
jb 0x406f94
mov ecx, dword [ebp - 0x1c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f8a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
push 0
mov dword [ebp - 0x150], 0
lea ecx, [ebp - 0x150]
push 0x40c398
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov byte [ebp - 0x150], 0
call fcn.00408c40
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1c8]
push 0
mov dword [ebp - 0x1c8], 0
push 0x40c398
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0xf
mov byte [ebp - 0x1c8], 0
call fcn.00408c40
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x2c8]
push 0
mov dword [ebp - 0x2c8], 0
push 0x40c398
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2b4], 0xf
mov byte [ebp - 0x2c8], 0
call fcn.00408c40
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 0xb
push eax
sub esp, 0x18
lea eax, [ebp - 0xf0]
mov ecx, esp
push eax
call fcn.00408a10
lea edx, [ebp - 0x1c8]
lea ecx, [ebp - 0x150]
call fcn.00404d70
add esp, 0x1c
lea eax, [ebp - 0x2c8]
push eax
sub esp, 0x18
lea eax, [ebp - 0x150]
mov ecx, esp
push eax
call fcn.00408a10
lea edx, [ebp - 0x1c8]
lea ecx, [ebp - 0x150]
call fcn.00404d70
add esp, 0x1c
lea eax, [ebp - 0x150]
cmp dword [ebp - 0x13c], 0x10
lea ecx, [ebp - 0x428]
cmovae eax, dword [ebp - 0x150]
push eax
call fcn.004087d0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x424]
cmp eax, ecx
je 0x4070df
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
sub esp, 0x18
mov ecx, esp
push 4
push str.main
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
xor ecx, ecx
call fcn.00407fe0
mov ecx, esp
push 3
push 0x40c644
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
mov ecx, dword [ebp - 0x300]
call fcn.00407fe0
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0xf0]
mov ecx, dword [ebp - 0xe0]
add esp, 0x18
cmp dword [ebp - 0xdc], 0x10
mov dword [ebp - 0x304], eax
cmovae edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0x304]
mov dword [ebp - 0x2fc], ecx
push ecx
push edx
cmp ecx, eax
ja 0x4071b8
mov esi, dword [ebp - 0x304]
cmp dword [ebp - 0xf4], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x108]
cmovae eax, dword [ebp - 0x108]
add esi, eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x2fc]
add esp, 0xc
mov byte [eax + esi], 0
mov esi, 0x7fffffff
jmp 0x4071d1
mov byte [ebp - 0x2fc], 0
push dword [ebp - 0x2fc]
push ecx
lea ecx, [ebp - 0x108]
call fcn.00409560
cmp dword [ebp - 0xdc], 0x10
lea eax, [ebp - 0xf0]
push dword [ebp - 0xe0]
cmovae eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x150]
push eax
call fcn.00408c40
push ecx
push 0x40c3cc
lea ecx, [ebp - 0x150]
call fcn.00408900
mov edx, eax
cmp edx, 0xffffffff
je 0x40728b
mov ecx, dword [ebp - 0x140]
cmp ecx, edx
jbe 0x407249
nop dword [eax]
dec ecx
lea eax, [ebp - 0x150]
cmp dword [ebp - 0x13c], 0x10
mov dword [ebp - 0x140], ecx
cmovae eax, dword [ebp - 0x150]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0x140]
cmp ecx, edx
ja 0x407220
cmp dword [ebp - 0x13c], 0x10
lea eax, [ebp - 0x150]
lea ecx, [ebp - 0x428]
cmovae eax, dword [ebp - 0x150]
push eax
call fcn.004087d0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x424]
cmp eax, ecx
je 0x40728b
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 0xa2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and eax, 0xffffff01
push 0x1f4
mov dword [ebp - 0x2fc], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push dword [ebp - 0x308]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [ebp - 0x2fc], 0
je 0x4072cd
xor esi, esi
jmp 0x407f0e
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0xf
mov byte [ebp - 0x138], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0xf
mov byte [ebp - 0x198], 0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x120]
push 0
mov dword [ebp - 0x120], 0
push 0x40c398
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
call fcn.00408c40
mov dword [ebp - 0x168], 0
mov byte [0x40f675], 0
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0xf
mov byte [ebp - 0x168], 0
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0xf
mov byte [ebp - 0x238], 0
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], 0
mov dword [ebp - 0x2f8], 0
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 0xf
mov byte [ebp - 0x2f8], 0
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], 0xf
mov byte [ebp - 0x2b0], 0
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0xf
mov byte [ebp - 0x298], 0
push dword [ebp - 0x324]
mov byte [ebp - 4], 0x16
sub esp, 0x18
mov byte [0x40f021], 0
mov ecx, esp
mov byte [0x40f674], 1
mov byte [0x40f020], 1
push 1
push 0x40c39c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
mov edx, 2
lea ecx, [ebp - 0x280]
call fcn.00405a90
add esp, 0x1c
push 0
sub esp, 0x18
mov ecx, esp
push 1
push 0x40c39c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
push 1
lea edx, [ebp - 0x2b0]
lea ecx, [ebp - 0x280]
call fcn.004062b0
add esp, 0x20
lea eax, [ebp - 0x298]
push eax
sub esp, 0x18
lea eax, [ebp - 0x2b0]
mov ecx, esp
push eax
call fcn.00408a10
lea edx, [ebp - 0x198]
lea ecx, [ebp - 0x168]
call fcn.00404d70
add esp, 0x1c
lea eax, [ebp - 0x298]
push eax
sub esp, 0x18
lea eax, [ebp - 0x168]
mov ecx, esp
push eax
call fcn.00408a10
lea edx, [ebp - 0x138]
lea ecx, [ebp - 0x168]
call fcn.00404d70
add esp, 4
mov ecx, esp
push 1
push 0x40c3cc
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
lea ecx, [ebp - 0x168]
call fcn.00405030
mov edx, dword [ebp - 0x158]
mov eax, esi
sub eax, edx
add esp, 0x18
cmp eax, dword [ebp - 0x128]
jb 0x407fbd
cmp dword [ebp - 0x154], 0x10
lea ecx, [ebp - 0x168]
push dword [ebp - 0x128]
cmovae ecx, dword [ebp - 0x168]
lea eax, [ebp - 0x138]
cmp dword [ebp - 0x124], 0x10
cmovae eax, dword [ebp - 0x138]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x320]
call fcn.00409930
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x30c]
mov eax, edx
mov ecx, dword [ebp - 0x310]
sub eax, ecx
push 8
push str._cfg.txt
cmp eax, 8
jb 0x40764b
cmp edx, 0x10
lea esi, [ebp - 0x320]
lea eax, [ecx + 8]
cmovae esi, dword [ebp - 0x320]
add esi, ecx
mov dword [ebp - 0x310], eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov byte [esi + 8], 0
lea eax, [ebp - 0x320]
add esp, 0xc
mov esi, 0x7fffffff
jmp 0x407665
mov byte [ebp - 0x2fc], 0
lea ecx, [ebp - 0x320]
push dword [ebp - 0x2fc]
push 8
call fcn.00409560
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x30c]
movq qword [ebp - 0x228], xmm1
movups xmmword [ebp - 0x238], xmm0
cmp edx, 0x10
jb 0x4076cd
mov ecx, dword [ebp - 0x320]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4076c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4076c3
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x158]
mov eax, esi
sub eax, edx
cmp eax, dword [ebp - 0x128]
jb 0x407fc2
cmp dword [ebp - 0x154], 0x10
lea ecx, [ebp - 0x168]
push dword [ebp - 0x128]
cmovae ecx, dword [ebp - 0x168]
lea eax, [ebp - 0x138]
cmp dword [ebp - 0x124], 0x10
cmovae eax, dword [ebp - 0x138]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x320]
call fcn.00409930
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x30c]
mov eax, edx
mov ecx, dword [ebp - 0x310]
sub eax, ecx
cmp eax, 4
jb 0x40776c
lea eax, [ecx + 4]
cmp edx, 0x10
mov dword [ebp - 0x310], eax
lea eax, [ebp - 0x320]
cmovae eax, dword [ebp - 0x320]
mov dword [eax + ecx], 0x7070632e
mov byte [eax + ecx + 4], 0
lea eax, [ebp - 0x320]
jmp 0x40778d
push 4
push str..cpp
mov byte [ebp - 0x2fc], 0
lea ecx, [ebp - 0x320]
push dword [ebp - 0x2fc]
push 4
call fcn.00409560
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x30c]
movq qword [ebp - 0x258], xmm1
movups xmmword [ebp - 0x268], xmm0
cmp edx, 0x10
jb 0x4077f5
mov ecx, dword [ebp - 0x320]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4077eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4077eb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x238]
mov ecx, esp
mov dword [ebp - 0x2fc], esp
push eax
call fcn.00408a10
sub esp, 0x18
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x268]
mov ecx, esp
push eax
call fcn.00408a10
mov byte [ebp - 4], 0x16
call fcn.00404640
add esp, 0x18
lea eax, [ebp - 0x238]
mov ecx, esp
push eax
call fcn.00408a10
lea ecx, [ebp - 0x1b0]
call fcn.00405cd0
add esp, 0x18
test al, al
jne 0x4078f1
mov ecx, dword [ebp - 0x128]
sub esi, ecx
cmp esi, 8
jb 0x407fc7
cmp dword [ebp - 0x124], 0x10
lea eax, [ebp - 0x138]
push 8
cmovae eax, dword [ebp - 0x138]
push str._cfg.txt
push ecx
push eax
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x320]
call fcn.00409930
cmp dword [ebp - 0x30c], 0x10
lea eax, [ebp - 0x320]
cmovae eax, dword [ebp - 0x320]
push eax
push str.no__s_file_r_n
call fcn.00401420
mov edx, dword [ebp - 0x30c]
add esp, 8
cmp edx, 0x10
jb 0x40799c
mov ecx, dword [ebp - 0x320]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407992
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407992
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp byte [0x40f021], 0
je 0x40799c
mov ecx, dword [ebp - 0x128]
sub esi, ecx
cmp esi, 8
jb 0x407fcc
cmp dword [ebp - 0x124], 0x10
lea eax, [ebp - 0x138]
push 8
cmovae eax, dword [ebp - 0x138]
push str._cfg.txt
push ecx
push eax
push ecx
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x320]
call fcn.00409930
cmp dword [ebp - 0x30c], 0x10
lea eax, [ebp - 0x320]
cmovae eax, dword [ebp - 0x320]
push eax
push str.using__s_r_n
call fcn.00401420
mov edx, dword [ebp - 0x30c]
add esp, 8
cmp edx, 0x10
jb 0x40799c
mov ecx, dword [ebp - 0x320]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407992
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407992
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
sub esp, 0x18
mov ecx, esp
push 3
push 0x40c644
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
mov ecx, dword [ebp - 0x300]
call fcn.00407fe0
lea eax, [ebp - 0x138]
mov ecx, esp
push eax
call fcn.00408a10
mov ecx, dword [ebp - 0x300]
call fcn.00407fe0
add esp, 0x18
lea ecx, [ebp - 0x120]
push 4
push str.gcc
call fcn.00408c40
mov edx, dword [ebp - 0x10c]
mov eax, edx
mov ecx, dword [ebp - 0x110]
sub eax, ecx
push 6
push str._Wall
cmp eax, 6
jb 0x407a40
cmp edx, 0x10
lea esi, [ebp - 0x120]
lea eax, [ecx + 6]
cmovae esi, dword [ebp - 0x120]
add esi, ecx
mov dword [ebp - 0x110], eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 6], 0
jmp 0x407a5a
mov byte [ebp - 0x2fc], 0
lea ecx, [ebp - 0x120]
push dword [ebp - 0x2fc]
push 6
call fcn.00409560
cmp byte [0x40f021], 0
je 0x407a70
push str.using__Wall_r_n
call fcn.00401420
add esp, 4
sub esp, 0x18
mov ecx, esp
push 2
push 0x40c464
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00408c40
lea ecx, [ebp - 0x1b0]
call fcn.004059e0
add esp, 0x18
mov dword [ebp - 0x210], 0
lea ecx, [ebp - 0x210]
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0xf
mov byte [ebp - 0x210], 0
push 0
push 0x40c398
call fcn.00408c40
sub esp, 0x18
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00408a10
lea ecx, [ebp - 0x120]
call fcn.00404040
add esp, 0x18
lea eax, [ebp - 0x210]
push eax
sub esp, 0x18
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00408a10
mov edx, 0x40f675
lea ecx, [ebp - 0x120]
call fcn.00402bf0
add esp, 0x1c
lea eax, [ebp - 0x210]
push eax
sub esp, 0x18
lea eax, [ebp - 0x1b0]
mov ecx, esp
mov dword [ebp - 0x2fc], esp
push eax
call fcn.00408a10
sub esp, 0x18
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x280]
mov ecx, esp
push eax
call fcn.00408a10
mov edx, 0x40f675
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x120]
call fcn.00402080
add esp, 0x1c
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00408a10
mov edx, 0x40f675
lea ecx, [ebp - 0x120]
call fcn.00403bf0
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00408a10
lea ecx, [ebp - 0x120]
call fcn.00403730
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00408a10
mov edx, 0x40f675
lea ecx, [ebp - 0x120]
call fcn.00403100
add esp, 0x18
cmp byte [0x40f021], 0
je 0x407bf5
cmp dword [ebp - 0x10c], 0x10
lea eax, [ebp - 0x120]
cmovae eax, dword [ebp - 0x120]
push eax
push str._r_n_s_r_n_r_n
call fcn.00401420
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x1b0]
mov ecx, esp
mov dword [ebp - 0x2fc], esp
push eax
call fcn.00408a10
sub esp, 0x18
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x280]
mov ecx, esp
push eax
call fcn.00408a10
mov edx, 0x40f675
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x120]
call fcn.00401640
add esp, 0x30
cmp edi, 0xffffffff
jne 0x407c50
push str.press_a_key
call fcn.00401420
add esp, 4
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov edx, dword [ebp - 0x1fc]
mov esi, 1
cmp edx, 0x10
jb 0x407c8f
mov ecx, dword [ebp - 0x210]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407c85
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x284]
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0xf
mov byte [ebp - 0x210], 0
cmp edx, 0x10
jb 0x407ce4
mov ecx, dword [ebp - 0x298]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407cda
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x29c]
cmp edx, 0x10
jb 0x407d1e
mov ecx, dword [ebp - 0x2b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407d14
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x254]
cmp edx, 0x10
jb 0x407d58
mov ecx, dword [ebp - 0x268]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407d4e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x224]
cmp edx, 0x10
jb 0x407d92
mov ecx, dword [ebp - 0x238]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407d88
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x154]
cmp edx, 0x10
jb 0x407dcc
mov ecx, dword [ebp - 0x168]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407dc2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0xf
mov byte [ebp - 0x168], 0
cmp edx, 0x10
jb 0x407e21
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e17
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
cmp edx, 0x10
jb 0x407e76
mov ecx, dword [ebp - 0x198]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e6c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x19c]
cmp edx, 0x10
jb 0x407eac
mov ecx, dword [ebp - 0x1b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407ea2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ef3
push edx
push ecx
call fcn.0040a1f6
add esp, 8
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
cmp edx, 0x10
jb 0x407f03
mov ecx, dword [ebp - 0x138]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407ef9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407ef9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0040a1f6
add esp, 8
lea ecx, [ebp - 0x280]
call fcn.00408220
lea ecx, [ebp - 0x2c8]
call fcn.00408220
lea ecx, [ebp - 0x1c8]
call fcn.00408220
lea ecx, [ebp - 0x150]
call fcn.00408220
jmp 0x407f4b
push str._nnot_a_.py___.cpp_file_n
call fcn.00401420
add esp, 4
cmp edi, 0xffffffff
jne 0x407f49
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
xor esi, esi
lea ecx, [ebp - 0x2e0]
call fcn.00408220
lea ecx, [ebp - 0x180]
call fcn.00408220
lea ecx, [ebp - 0xf0]
call fcn.00408220
lea ecx, [ebp - 0x108]
call fcn.00408220
lea ecx, [ebp - 0x250]
call fcn.004088a0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00409d8d
mov esp, ebp
pop ebp
ret
call fcn.00408de0
call fcn.004015b0
call fcn.004015b0
call fcn.00408de0
call fcn.004015b0
call fcn.004015b0
call fcn.004015b0
call fcn.004015b0
call fcn.004015b0
call fcn.004015b0
int3