Function at 0x1001b602
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes
Print debug messages

Disassembly:
pushfd
push ecx
stosb byte es:[edi], al
call fcn.101aad99
mov byte [ebx + 0x46], bl
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e2d2b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x414
push esi
push edi
mov dword [ebp - 0x3f8], ecx
mov ecx, dword [ebp - 0x3f8]
call fcn.1001bd6c
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x134], 0
mov ecx, 0x45
xor eax, eax
lea edi, [ebp - 0x133]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x1c], 0
cmp dword [ebp + 0xc], 0
je 0x1001b697
mov eax, dword [ebp + 0xc]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
test eax, eax
je 0x1001b697
push 0x101061f0
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.MSVCRT.dll__strcmpi]
add esp, 8
test eax, eax
jne 0x1001b8a0
cmp dword [ebp + 8], 0
jne 0x1001b6a4
xor eax, eax
jmp 0x1001bcbb
mov edx, dword [ebp + 8]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
test eax, eax
jne 0x1001b6bb
xor eax, eax
jmp 0x1001bcbb
mov dword [ebp - 0x38c], 0xffffffff
push 0
push 0x80
push 3
push 0
push 0
push connect
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x38c], eax
cmp dword [ebp - 0x38c], 0xffffffff
je 0x1001b74c
mov ecx, dword [ebp - 0x38c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x118
push 0
lea edx, [ebp - 0x134]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x101061f8
push 0x104
lea ecx, [ebp - 0x134]
push ecx
call fcn.10003120
add esp, 0x10
lea edx, [ebp - 0x134]
push edx
mov ecx, dword [ebp - 0x3f8]
call fcn.1001be02
mov eax, 1
jmp 0x1001bcbb
mov eax, dword [ebp + 8]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + eax - 1]
cmp edx, 0x5c
jne 0x1001b784
mov eax, dword [ebp + 8]
push eax
push 0x101061fc
push 0x104
lea ecx, [ebp - 0x238]
push ecx
call fcn.10003120
add esp, 0x10
jmp 0x1001b7a1
mov edx, dword [ebp + 8]
push edx
push 0x10106204
push 0x104
lea eax, [ebp - 0x238]
push eax
call fcn.10003120
add esp, 0x10
lea ecx, [ebp - 0x384]
push ecx
lea edx, [ebp - 0x238]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x388], eax
cmp dword [ebp - 0x388], 0xffffffff
je 0x1001b88d
mov eax, dword [ebp - 0x384]
and eax, 0x10
test eax, eax
jne 0x1001b864
push 0x118
push 0
lea ecx, [ebp - 0x134]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + eax - 1]
cmp edx, 0x5c
jne 0x1001b82e
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0x1010620c
push 0x104
lea edx, [ebp - 0x134]
push edx
call fcn.10003120
add esp, 0x14
jmp 0x1001b852
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0x10106214
push 0x104
lea edx, [ebp - 0x134]
push edx
call fcn.10003120
add esp, 0x14
lea eax, [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0x3f8]
call fcn.1001be02
lea ecx, [ebp - 0x384]
push ecx
mov edx, dword [ebp - 0x388]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x1001b7c8
mov eax, dword [ebp - 0x388]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0x3f8]
add ecx, 4
call fcn.1001caf0
jmp 0x1001bcbb
push str.szFilePath
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp - 0x23c], 0
je 0x1001bcad
mov ecx, dword [ebp - 0x23c]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x18], eax
jmp 0x1001b8d1
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x23c]
mov ecx, dword [eax + 0xc]
add ecx, 0xc
cmp dword [ebp - 0x18], ecx
je 0x1001bcad
push 0x118
push 0
lea edx, [ebp - 0x134]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0
jne 0x1001b91d
mov dword [ebp - 0x3fc], 0
jmp 0x1001b964
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + eax + 2]
mov dword [ebp - 0x244], ecx
mov eax, dword [ebp - 0x244]
add eax, 3
and al, 0xfc
call fcn.100c1e30
mov dword [ebp - 0x400], esp
mov edx, dword [ebp - 0x244]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x400]
push ecx
call fcn.1001cd00
mov dword [ebp - 0x3fc], eax
mov edx, dword [ebp - 0x3fc]
push edx
push 0x104
lea eax, [ebp - 0x134]
push eax
call fcn.100030e0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x2c], ecx
lea edx, [ebp - 0x134]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1001bca8
lea eax, [ebp - 0x134]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp esi, eax
jne 0x1001bca8
lea edx, [ebp - 0x3b0]
push edx
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x3b4]
push ecx
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
mov byte [ebp - 4], 1
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [eax]
push ecx
push 0x10106230
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_last_of_char_const___unsigned_int_const]
add eax, 1
push eax
push 0
lea edx, [ebp - 0x3c4]
push edx
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x404]
mov dword [ebp - 0x408], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x408]
push ecx
lea ecx, [ebp - 0x39c]
call dword [0x100e535c]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0
push 0x10106234
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int_const]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
jne 0x1001ba8e
jmp 0x1001bb9a
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [eax]
push ecx
push 0x10106238
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_last_of_char_const___unsigned_int_const]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
jne 0x1001bab6
jmp 0x1001bb9a
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [eax]
push ecx
push 0x1010623c
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_last_of_char_const___unsigned_int_const]
add eax, 1
push eax
push 0
lea edx, [ebp - 0x3d4]
push edx
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x410], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x410]
push ecx
lea ecx, [ebp - 0x39c]
call dword [0x100e535c]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3d4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov eax, dword [edx]
push eax
push 0
push 0x10106240
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int_const]
add eax, 3
push eax
lea ecx, [ebp - 0x3e4]
push ecx
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov dword [ebp - 0x414], eax
mov edx, dword [ebp - 0x414]
mov dword [ebp - 0x418], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x418]
push eax
lea ecx, [ebp - 0x3ac]
call dword [0x100e535c]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3e4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, 1
test ecx, ecx
jne 0x1001ba6c
push 0
push 0x10106244
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int_const]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
je 0x1001bc22
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [eax]
push ecx
push 0
push 0x10106248
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int_const]
add eax, 2
push eax
lea edx, [ebp - 0x3f4]
push edx
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 0x41c]
mov dword [ebp - 0x420], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x420]
push ecx
lea ecx, [ebp - 0x3ac]
call dword [0x100e535c]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3f4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea edx, [ebp - 0x3ac]
push edx
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push 0x104
lea eax, [ebp - 0x134]
push eax
call fcn.100030e0
lea ecx, [ebp - 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1001bc85
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea edx, [ebp - 0x134]
push edx
mov ecx, dword [ebp - 0x3f8]
call fcn.1001be02
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x3ac]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x39c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x1001b8c9
mov ecx, dword [ebp - 0x3f8]
add ecx, 4
call fcn.1001caf0
lea esp, [ebp - 0x428]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8