Function at 0x4064c0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x40c040]
xor eax, ebp
mov dword [ebp - 4], eax
push str.________________________________________________________________________________________n
call fcn.00401040
add esp, 4
push 0x40a538
call fcn.00401040
add esp, 4
push str._____________________________________________________________________________n
call fcn.00401040
add esp, 4
push str.__________________________________________________________________________________n
call fcn.00401040
add esp, 4
push str._______________________________________________________________________________n
call fcn.00401040
add esp, 4
push str._________________________________________________________________________________________n
call fcn.00401040
add esp, 4
push str.Choose_your_challenge:_n_1.Easy.__n_2.Medium.__n_3.Hard.__n
call fcn.00401040
add esp, 4
push str.Enter_option__1__2__or_3_:
call fcn.00401040
add esp, 4
mov eax, 1
test eax, eax
je 0x40660f
push pe_nt_image_headers32
lea ecx, [ebp - 0x104]
push ecx
push str._255s
call fcn.00406480
add esp, 0xc
lea edx, [ebp - 0x104]
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x10c]
add eax, 1
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x10c]
mov dl, byte [ecx]
mov byte [ebp - 0x106], dl
add dword [ebp - 0x10c], 1
cmp byte [ebp - 0x106], 0
jne 0x40657c
mov eax, dword [ebp - 0x10c]
sub eax, dword [ebp - 0x120]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 1
jne 0x4065f0
mov ecx, 1
imul edx, ecx, 0
mov al, byte [ebp + edx - 0x104]
mov byte [ebp - 0x105], al
movsx ecx, byte [ebp - 0x105]
cmp ecx, 0x31
je 0x4065ee
movsx edx, byte [ebp - 0x105]
cmp edx, 0x32
je 0x4065ee
movsx eax, byte [ebp - 0x105]
cmp eax, 0x33
jne 0x4065f0
jmp 0x40660f
call dword [sym.imp.ucrtbased.dll_getchar]
cmp eax, 0xa
je 0x4065fd
jmp 0x4065f0
push str.Wrong_Option____CHOOSE_AGAIN:
call fcn.00401040
add esp, 4
jmp 0x40653b
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x118], 0
mov cl, byte [ebp - 0x105]
mov byte [ebp - 0x11c], cl
cmp byte [ebp - 0x11c], 0x31
je 0x40665d
cmp byte [ebp - 0x11c], 0x32
je 0x4066ae
cmp byte [ebp - 0x11c], 0x33
je 0x4066fc
jmp 0x40673b
push str.Welcome_to_my_first_challenge._n
call fcn.00401040
add esp, 4
push 0x40a7b0
call fcn.00401040
add esp, 4
push 0x32
push 0x40c500
push 0x40a7bc
call fcn.00406480
add esp, 0xc
push 0
push 0
push 0x40c500
push 0x401120
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x110], eax
jmp 0x40673b
push str.IF_IT_WORKS__DONT_PATCH_IT_n
call fcn.00401040
add esp, 4
push 0x40a7e0
call fcn.00401040
add esp, 4
push 0x32
push 0x40c500
push 0x40a7ec
call fcn.00406480
add esp, 0xc
push 0
push 0
push 0x40c500
push 0x401ce0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x114], eax
jmp 0x40673b
push str.Enterflag:
call fcn.00401040
add esp, 4
push 0x32
push 0x40c500
push 0x40a7fc
call fcn.00406480
add esp, 0xc
push 0
push 0
push 0x40c500
push 0x4037b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x110], 0
je 0x406753
push 0xffffffffffffffff
mov edx, dword [ebp - 0x110]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [ebp - 0x114], 0
je 0x40676b
push 0xffffffffffffffff
mov eax, dword [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [ebp - 0x118], 0
je 0x406783
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [ebp - 0x110], 0
je 0x406799
mov edx, dword [ebp - 0x110]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x114], 0
je 0x4067af
mov eax, dword [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x118], 0
je 0x4067c5
mov ecx, dword [ebp - 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004067e0
mov esp, ebp
pop ebp
ret