Function at 0x403d80
Capabilities:
Create thread
Execute command
Manipulate console buffer

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405c4d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x50
mov eax, dword [0x408040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], 0
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push eax
mov dword [ebp - 0x5c], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0x64
push esi
mov dword [ebp - 0x54], esi
call dword [sym.imp.GDI32.dll_SetGraphicsMode]
push 0x1a
push 0x41
call dword [sym.imp.USER32.dll_SetPhysicalCursorPos]
mov ecx, esi
call fcn.00403ae0
mov ecx, esi
call fcn.00403ae0
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
mov dword [ebp - 4], 0
mov edx, esi
mov ecx, 1
mov dword [0x4084b0], 0x64
mov dword [0x4084c0], 0x64
mov dword [0x439200], 0x64
mov dword [0x439938], 0x64
call fcn.00403750
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
xor ecx, ecx
mov dword [0x43992c], 0xa
mov dword [0x439218], 0
mov dword [0x439928], 1
mov dword [ebp - 0x3c], ecx
inc ecx
mov eax, 0x51eb851f
imul ecx
mov dword [ebp - 0x58], ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x4084bc], eax
cmp eax, dword [ebp - 0x3c]
je 0x403ee2
mov ecx, esi
call fcn.00403ae0
mov eax, dword [0x4084bc]
push 0xfffffffffffffff5
mov dword [ebp - 0x3c], eax
call edi
mov dword [ebp - 0x40], 0x1a002d
mov ecx, 0x1a
push dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [0x4084bc]
mov edx, 0x406714
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
test eax, eax
je case.0x403f0b.98
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
add eax, 0xffffff9f
cmp eax, 0x9a
ja case.0x403f0b.98
movzx eax, byte [eax + 0x4043f0]
jmp dword [eax*4 + 0x4043cc]
cmp dword [0x43992c], 0xa
jne 0x403f5b
jmp case.0x403f0b.98
cmp dword [0x43992c], 0xfffffff6
jne 0x403f84
jmp case.0x403f0b.98
cmp dword [0x439218], 0xa
jne 0x403fad
jmp case.0x403f0b.98
cmp dword [0x439218], 0xfffffff6
jne 0x403fcc
jmp case.0x403f0b.98
cmp dword [0x43992c], 0xa
je case.0x403f0b.98
mov dword [0x43992c], 0xfffffff6
mov dword [0x439218], 0
mov dword [0x439204], 0
jmp case.0x403f0b.98
cmp dword [0x43992c], 0xfffffff6
je case.0x403f0b.98
mov dword [0x43992c], 0xa
mov dword [0x439218], 0
mov dword [0x439204], 1
jmp case.0x403f0b.98
cmp dword [0x439218], 0xa
je case.0x403f0b.98
mov dword [0x439218], 0xfffffff6
mov dword [0x439204], 2
jmp 0x403fe0
cmp dword [0x439218], 0xfffffff6
je case.0x403f0b.98
mov dword [0x439218], 0xa
mov dword [0x439204], 3
mov dword [0x43992c], 0
mov eax, dword [0x43992c]
add eax, dword [0x4084b0]
mov dword [0x4084b0], eax
cmp eax, 0x14
jge 0x40400b
mov dword [0x4084b0], 0x32a
jmp 0x40401c
cmp eax, 0x32a
jle 0x40401c
mov dword [0x4084b0], 0x14
mov eax, dword [0x439218]
add eax, dword [0x439200]
mov dword [0x439200], eax
cmp eax, 0x14
jge 0x40403d
mov dword [0x439200], 0x186
jmp 0x40404e
cmp eax, 0x186
jle 0x40404e
mov dword [0x439200], 0x14
push 0x10
call fcn.00404d62
or dword [ebp - 0x44], 1
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [eax], esi
mov ecx, dword [0x439200]
mov dword [eax + 4], ecx
mov ecx, dword [0x4084b0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x403bb0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
push ecx
push 0
push eax
push 0x404cf0
push 0
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x18
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4043bb
mov byte [ebp - 4], 2
cmp dword [ebp - 0x18], 0
je 0x4043b3
call dword [sym.imp.MSVCP140.dll__Thrd_id]
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
je 0x4043ab
push 0
push ecx
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCP140.dll__Thrd_join]
add esp, 0xc
test eax, eax
jne 0x4043a3
cmp byte [0x439210], 1
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
jne 0x404135
mov edx, esi
lea ecx, [eax + 1]
call fcn.00403750
inc dword [0x439214]
push 0xfffffffffffffff5
call edi
mov dword [ebp - 0x48], 0x1a001e
mov ecx, 0x1a
push dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [0x439214]
mov edx, 0x406720
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov edx, esi
xor ecx, ecx
call fcn.00403750
mov edx, dword [0x439928]
xor eax, eax
mov edi, dword [0x4084b0]
mov esi, dword [0x439200]
mov dword [edx*4 + 0x4084c0], edi
mov dword [edx*4 + 0x439938], esi
test edx, edx
js 0x4041a2
cmp edi, dword [eax*4 + 0x4084c0]
jne 0x404181
cmp esi, dword [eax*4 + 0x439938]
jne 0x404181
lea ecx, [edx - 1]
cmp eax, ecx
jle 0x404257
mov ecx, dword [eax*4 + 0x4084c4]
mov dword [eax*4 + 0x4084c0], ecx
mov ecx, dword [eax*4 + 0x43993c]
mov dword [eax*4 + 0x439938], ecx
inc eax
cmp eax, edx
jle 0x404164
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
call edi
mov esi, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dword [ebp - 0x4c], 0x1a0014
push dword [ebp - 0x4c]
push eax
call esi
mov eax, 0x66666667
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
imul dword [0x439200]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x66666667
imul dword [0x4084b0]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push ecx
mov edx, 0x406788
mov ecx, eax
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push 0xfffffffffffffff5
call edi
mov dword [ebp - 0x50], 0x1a0041
push dword [ebp - 0x50]
push eax
call esi
mov eax, 0x32
sub eax, dword [0x4084bc]
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 0
jne 0x4042cb
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x2710
jge 0x4042d1
mov esi, dword [ebp - 0x54]
jmp 0x403e78
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
push 0x40672c
call esi
add esp, 4
mov edx, 0x406760
push 0x404ca0
push dword [0x439214]
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push ecx
mov edx, 0x406730
mov ecx, eax
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x404ca0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push str.pause
call esi
add esp, 4
cmp dword [ebp - 0x18], 0
je 0x404383
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
cmp dword [0x439214], 0x64
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
push 0x40672c
jg 0x404318
call esi
add esp, 4
mov edx, 0x4067c0
push 0x404ca0
push dword [0x439214]
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov edx, 0x40678c
jmp 0x404349
call esi
add esp, 4
mov edx, 0x4067f4
push 0x404ca0
push dword [0x439214]
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov edx, 0x4067dc
push ecx
mov ecx, eax
call fcn.00404a80
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x404ca0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push str.pause
call esi
add esp, 4
push dword [ebp - 0x54]
push dword [ebp - 0x5c]
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00404d54
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 2
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
push 5
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
push 1
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
push 6
mov dword [ebp - 0x18], 0
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
adc bh, byte [edi]
inc eax
add byte [eax], ah
aas
inc eax
add byte [edi + edi], bh
inc eax
add byte [esi], ch
aas
inc eax
add byte [ebx + 0x3f], bh
inc eax
add byte [esi + 0x3f], cl
inc eax
add byte [edi + edi + 0x3fc30040], ah
inc eax
add dl, ch
aas
inc eax
add byte [eax], al
or byte [eax], cl
add dword [eax], ecx
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [edx], al
or byte [eax], cl
or byte [ebx], al
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add al, 8
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add eax, 134743560
or byte [eax], cl
pop es
int3