Function at 0x401c00
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x404285
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x408040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 4
call fcn.004031c0
mov dword [ebp - 0x24], eax
mov dword [eax], 0x401b10
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0
push ecx
push 0
push eax
push 0x403120
push 0
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x1c
mov dword [ebp - 0x20], eax
test eax, eax
je 0x401e26
mov dword [ebp - 4], 1
mov edx, str.Enter_username:__n
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.004028a0
mov esi, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movzx eax, al
mov edx, 0x4080f8
push eax
mov ecx, esi
call fcn.00402f50
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esp, 4
mov edx, str.Enter_password:__n
call fcn.004028a0
mov esi, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movzx eax, al
mov edx, 0x4080c8
push eax
mov ecx, esi
call fcn.00402f50
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esp, 4
mov edx, str.Enter_serial:__n
call fcn.004028a0
mov esi, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movzx eax, al
mov edx, 0x408098
push eax
mov ecx, esi
call fcn.00402f50
add esp, 4
cmp dword [ebp - 0x1c], 0
je 0x401e1e
mov esi, dword [sym.imp.MSVCP140.dll__Thrd_id]
call esi
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
je 0x401e16
push 0
push ecx
push dword [ebp - 0x20]
call dword [sym.imp.MSVCP140.dll__Thrd_join]
add esp, 0xc
test eax, eax
jne 0x401e0e
xorps xmm0, xmm0
push 4
movlpd qword [ebp - 0x20], xmm0
call fcn.004031c0
mov dword [ebp - 0x24], eax
mov dword [eax], 0x401330
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
push ecx
push 0
push eax
push 0x403120
push 0
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x1c
mov dword [ebp - 0x18], eax
test eax, eax
je 0x401dff
mov byte [ebp - 4], 3
cmp dword [ebp - 0x14], 0
je 0x401e1e
call esi
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
je 0x401e16
push 0
push ecx
push dword [ebp - 0x18]
call dword [sym.imp.MSVCP140.dll__Thrd_join]
add esp, 0xc
test eax, eax
jne 0x401e0e
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
xorps xmm0, xmm0
mov edx, str.Press_Enter_to_exit..._n
movlpd qword [ebp - 0x18], xmm0
call fcn.004028a0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::basic_istream_char__struct_std::char_traits_char__::get_void_]
cmp dword [ebp - 0x14], 0
jne 0x401df9
cmp dword [ebp - 0x1c], 0
jne 0x401df9
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004031b2
mov esp, ebp
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
push 6
mov dword [ebp - 0x14], 0
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
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 - 0x1c], 0
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3