Function at 0x40b86b
Capabilities:
Copy file
Create directory
Enumerate files on windows

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x364
mov eax, dword [0x427c60]
xor eax, ebp
mov dword [ebp + 0x74], eax
push ebx
mov dword [ebp - 0x294], ecx
push 0x41de3c
lea ecx, [ebp - 0x2ec]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push eax
call fcn.0041066d
mov ecx, eax
call fcn.00410624
push eax
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push eax
call dword [sym.imp.MSVCP90.dll_bool___cdecl_std::operator__wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
pop ecx
pop ecx
lea ecx, [ebp - 0x2c8]
mov bl, al
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2ec]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
test bl, bl
je 0x40b8eb
mov al, 1
mov ecx, dword [ebp + 0x74]
xor ecx, ebp
pop ebx
call fcn.00419ad8
add ebp, 0x78
leave
ret
push esi
push edi
call fcn.0041066d
add eax, 8
push eax
lea ecx, [ebp + 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push 1
mov edi, 0x41de38
or ebx, 0xffffffff
push edi
lea ecx, [ebp + 0x3c]
mov dword [ebp - 0x290], ebx
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
cmp eax, ebx
je 0x40b93d
mov esi, dword [ebp - 0x290]
mov dword [ebp - 0x290], eax
inc eax
push eax
push edi
lea ecx, [ebp + 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
cmp eax, ebx
jne 0x40b91d
cmp esi, ebx
jne 0x40b94e
xor bl, bl
lea ecx, [ebp + 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
pop edi
mov al, bl
pop esi
jmp 0x40b8db
test byte [0x428640], 1
mov edi, 0x428624
jne 0x40b97b
or dword [0x428640], 1
push 0x41de10
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push 0x41bbfd
call fcn.00419d80
pop ecx
push edi
inc esi
push esi
push 0
lea eax, [ebp - 0x2ec]
push eax
lea ecx, [ebp + 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
mov esi, dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push eax
lea eax, [ebp - 0x18]
push eax
call esi
add esp, 0xc
lea ecx, [ebp - 0x2ec]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x41de0c
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2ec]
push eax
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___wchar_t_const__]
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x40b9d0
mov eax, dword [eax + 4]
jmp 0x40b9d3
add eax, 4
lea ecx, [ebp - 0x284]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
lea ecx, [ebp - 0x2ec]
mov dword [ebp - 0x288], eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [ebp - 0x288], ebx
jne 0x40ba0b
lea ecx, [ebp - 0x18]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov bl, 1
jmp 0x40b93f
lea ecx, [ebp - 0x2ac]
call fcn.0040a909
mov ebx, dword [sym.imp.KERNEL32.dll_FindNextFileW]
jmp 0x40ba4f
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x2ac]
call fcn.0040b781
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [ebp - 0x284]
push eax
push dword [ebp - 0x288]
call ebx
test eax, eax
jne 0x40ba1e
push dword [ebp - 0x288]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x29c]
sub eax, dword [ebp - 0x2a0]
push 0x1c
cdq
pop ecx
idiv ecx
test eax, eax
jne 0x40baa0
lea ecx, [ebp - 0x2ac]
call fcn.0040b687
push dword [ebp - 0x2ac]
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x40b9fb
push edi
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 4]
push eax
call esi
mov eax, dword [ebp + 8]
add esp, 0xc
cmp dword [ebp + 0x1c], 8
jae 0x40baba
lea eax, [ebp + 8]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x40baf7
lea ecx, [ebp + 4]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2ac]
call fcn.0040b687
push dword [ebp - 0x2ac]
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
pop ecx
lea ecx, [ebp - 0x18]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
jmp 0x40b93d
lea ecx, [ebp + 0x20]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
lea eax, [ebp - 0x2ac]
push eax
push dword [ebp - 0x2a0]
lea ecx, [ebp - 0x28c]
call fcn.0040a326
jmp 0x40bc36
lea ecx, [ebp - 0x28c]
call fcn.00409613
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x2c8]
push eax
call esi
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x40bb44
mov ebx, dword [eax + 4]
jmp 0x40bb47
lea ebx, [eax + 4]
lea ecx, [ebp - 0x28c]
call fcn.00409613
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2ec]
push eax
call esi
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x40bb6e
mov eax, dword [eax + 4]
jmp 0x40bb71
add eax, 4
push 0
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x2ec]
mov ebx, eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
test ebx, ebx
je 0x40bc2b
lea ecx, [ebp - 0x28c]
call fcn.00409613
push eax
lea eax, [ebp - 0x2ec]
push edi
push eax
call esi
add esp, 0xc
push eax
lea ecx, [ebp + 0x20]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x2ec]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [ebp + 0x38], 8
mov eax, dword [ebp + 0x24]
jae 0x40bbd8
lea eax, [ebp + 0x24]
xor ecx, ecx
push ecx
push ecx
push 0x104
mov ebx, 0x428520
push ebx
push dword [ebp + 0x34]
push eax
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x40bbfd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, dword [ebp - 0x294]
lea eax, [ebp - 0x2c8]
push eax
add ecx, 8
call fcn.0040b6da
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x28c]
call fcn.00409641
lea eax, [ebp - 0x2ac]
push eax
push dword [ebp - 0x29c]
lea ecx, [ebp - 0x2d0]
call fcn.0040a326
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0x28c]
call fcn.00409672
test al, al
je 0x40bb1d
test byte [0x428640], 2
mov edi, 0x428500
jne 0x40bc95
or dword [0x428640], 2
push str..._Profiles_GougouSearch_history.history
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push 0x41bbf2
call fcn.00419d80
pop ecx
call fcn.0041066d
mov ecx, eax
call fcn.004105fc
push eax
lea ecx, [ebp + 0x58]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push 0
mov ebx, 0x41de38
jmp 0x40bcbc
mov dword [ebp - 0x290], eax
inc eax
push eax
push ebx
lea ecx, [ebp + 0x58]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
cmp eax, 0xffffffff
jne 0x40bcb4
mov eax, dword [ebp - 0x290]
push edi
inc eax
push eax
push 0
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp + 0x58]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
push eax
lea eax, [ebp - 0x2ec]
push eax
call esi
add esp, 0xc
push eax
lea ecx, [ebp + 0x58]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x2ec]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push str.history.history
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___wchar_t_const__]
mov ecx, dword [ebp - 0x30]
add esp, 0xc
cmp dword [ebp - 0x1c], 8
jae 0x40bd37
lea ecx, [ebp - 0x30]
cmp dword [ebp + 0x70], 8
mov eax, dword [ebp + 0x5c]
jae 0x40bd43
lea eax, [ebp + 0x5c]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40bd83
push 0x41dd84
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, dword [ebp - 0x294]
lea eax, [ebp - 0x2c8]
push eax
add ecx, 8
call fcn.0040b6da
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp + 0x58]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp + 0x20]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp + 4]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
jmp 0x40ba84