Function at 0x476000
Capabilities:
Create directory
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x164
mov dword [ebp - 0x154], edx
mov edx, dword [0x76d174]
mov dword [ebp - 0x150], ecx
test edx, edx
je 0x476830
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb7d
mov eax, dword [ebp - 0x150]
mov dword [esp + 0xc], eax
mov ecx, dword [ebp - 0x154]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp], str.Running_FindFirstFileExA_tests_with_level_d__search_ops_d__flags_lu_n
call fcn.0045b8b0
mov esi, dword [sym.imp.kernel32.dll_CreateDirectoryA]
mov dword [esp + 4], 0
mov dword [esp], 0x59c92c
call esi
mov edx, dword [sym.imp.kernel32.dll__lcreat]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], str.test_dir_file1
mov dword [ebp - 0x158], edx
call edx
mov edi, dword [sym.imp.kernel32.dll__lclose]
sub esp, 8
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp + 4], 0
mov dword [esp], str.test_dir_file2
mov edx, dword [ebp - 0x158]
call edx
sub esp, 8
mov dword [esp], eax
call edi
sub esp, 4
mov dword [esp + 4], 0
mov dword [esp], str.test_dirdir1
call esi
mov eax, dword [ebp - 0x150]
sub esp, 8
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 0x10], 0
mov ecx, dword [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebx
mov dword [esp], str.test_dir
call dword [0x76d174]
sub esp, 0x18
mov esi, eax
cmp eax, 0xffffffff
je 0x476680
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb99
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.FindFirstFile_failed__err_lu__n
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
lea ecx, [ebp - 0x120]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb9a
xor eax, eax
cmp word [ebp - 0x120], 0x2e
setne al
mov dword [esp + 8], ecx
xor eax, 1
mov dword [esp + 4], str.First_entry_should_be_.__is__s_n
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb9b
mov eax, 1
cmp ebx, 1
je 0x476668
mov dword [esp], eax
mov dword [esp + 4], str.FindFirstFile_unexpectedly_returned_an_alternate_filename_n
call fcn.0045bef0
call fcn.0057d110
mov edi, dword [sym.imp.kernel32.dll_FindNextFileA]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb9d
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], esi
call edi
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], str.Fetching_second_file_failed_n
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb9e
cmp word [ebp - 0x120], 0x2e2e
je 0x476650
mov eax, 1
lea edx, [ebp - 0x120]
xor eax, 1
mov dword [esp + 4], str.Second_entry_should_be_.._is__s_n
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xb9f
mov eax, 1
cmp ebx, 1
je 0x476640
mov dword [esp], eax
mov dword [esp + 4], str.FindFirstFile_unexpectedly_returned_an_alternate_filename_n
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xba1
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], esi
call edi
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], str.Fetching_third_file_failed_n
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xba2
cmp dword [ebp - 0x120], 0x656c6966
je 0x476620
cmp dword [ebp - 0x120], 0x656c6966
je 0x4766d0
cmp dword [ebp - 0x120], 0x31726964
je 0x476908
mov eax, 1
xor eax, 1
lea ecx, [ebp - 0x120]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], str.Invalid_third_entry____s_n
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xba3
mov eax, 1
cmp ebx, 1
jne 0x47633c
xor eax, eax
cmp byte [ebp - 0x1c], 0
sete al
mov dword [esp], eax
mov dword [esp + 4], str.FindFirstFile_unexpectedly_returned_an_alternate_filename_n
call fcn.0045bef0
lea eax, [ebp - 0x14c]
mov ecx, dword fs:[0x18]
mov dword [ecx + 0x34], 0xdeadbeef
mov dword [ebp - 0x158], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call edi
sub esp, 8
mov edx, eax
test eax, eax
jne 0x476391
mov ecx, dword [ebp - 0x158]
cmp dword [ecx + 0x34], 0x12
jne 0x476391
test byte [ebp - 0x154], 1
jne 0x476980
mov eax, 0xbb1
mov dword [ebp - 0x158], edx
call fcn.0045b740
mov dword [esp + 4], str.Fetching_fourth_file_failed_n
mov edx, dword [ebp - 0x158]
mov dword [esp], edx
call fcn.0045bef0
mov eax, 0xbb2
call fcn.0045b740
cmp dword [ebp - 0x120], 0x656c6966
je 0x476818
cmp dword [ebp - 0x120], 0x656c6966
je 0x476890
cmp dword [ebp - 0x120], 0x31726964
je 0x476938
mov eax, 1
xor eax, 1
lea edx, [ebp - 0x120]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], str.Invalid_fourth_entry____s_n
call fcn.0045bef0
mov eax, 0xbb3
call fcn.0045b740
mov dword [esp + 4], str.FindFirstFile_unexpectedly_returned_an_alternate_filename_n
cmp ebx, 1
je 0x476798
mov dword [esp], 1
call fcn.0045bef0
mov eax, 0xbb5
call fcn.0045b740
lea eax, [ebp - 0x14c]
mov dword [esp], esi
mov dword [esp + 4], eax
call edi
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], str.Fetching_fifth_file_failed_n
call fcn.0045bef0
mov eax, 0xbb6
call fcn.0045b740
cmp dword [ebp - 0x120], 0x656c6966
je 0x476850
cmp dword [ebp - 0x120], 0x656c6966
je 0x4768f0
cmp dword [ebp - 0x120], 0x31726964
je 0x476920
mov eax, 1
xor eax, 1
lea ecx, [ebp - 0x120]
mov dword [esp + 4], str.Invalid_fifth_entry____s_n
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.0045bef0
mov eax, 0xbb7
call fcn.0045b740
cmp ebx, 1
je 0x476786
mov eax, 1
mov dword [esp], eax
mov dword [esp + 4], str.FindFirstFile_unexpectedly_returned_an_alternate_filename_n
call fcn.0045bef0
mov eax, 0xbb9
call fcn.0045b740
lea eax, [ebp - 0x14c]
mov dword [esp], esi
mov dword [esp + 4], eax
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.Fetching_sixth_file_should_fail_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], esi
mov edi, dword [sym.imp.kernel32.dll_FindClose]
call edi
mov eax, dword [ebp - 0x150]
lea ecx, [ebp - 0x14c]
sub esp, 4
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov edx, dword [ebp - 0x154]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], str.TEST_DIR
call dword [0x76d174]
sub esp, 0x18
mov ebx, eax
test byte [ebp - 0x150], 1
je 0x476710
mov eax, 0xbc7
call fcn.0045b740
mov eax, dword [esi + 0x34]
cmp ebx, 0xffffffff
je 0x4768a8
mov dword [esp + 8], eax
mov dword [esp + 4], str.Unexpected_error__lx__expected_valid_handle_or_ERROR_PATH_NOT_FOUND_n
mov dword [esp], 1
call fcn.0045bef0
mov eax, 0xbc9
call fcn.0045b740
mov dword [esp + 4], 0x597da0
mov dword [esp], str.FindFirstFileExA_flag_FIND_FIRST_EX_CASE_SENSITIVE_is__signored_n
call fcn.0045b8b0
mov dword [esp], ebx
call edi
sub esp, 4
mov ebx, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [esp], str.test_dir_file1
call ebx
sub esp, 4
mov dword [esp], str.test_dir_file2
call ebx
mov ebx, dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], str.test_dirdir1
call ebx
sub esp, 4
mov dword [esp], 0x59c92c
call ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp word [ebp - 0x11c], 0x31
jne 0x4762d5
mov eax, 1
jmp 0x4762fd
xor eax, eax
cmp byte [ebp - 0x1c], 0
sete al
jmp 0x47626f
xor eax, eax
cmp byte [ebp - 0x11e], 0
je 0x476232
jmp 0x47622d
xor eax, eax
cmp byte [ebp - 0x1c], 0
sete al
jmp 0x4761c2
cmp dword [edi + 0x34], 0x78
je 0x476a00
test byte [ebp - 0x150], 2
jne 0x4766e8
test ebx, ebx
je 0x47612f
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x57
jne 0x47612f
mov eax, 0xb92
call fcn.0045b740
mov dword [esp], str.FindFirstFileExA_level_FindExInfoBasic_not_supported__skipping_test_n
call fcn.0045bec0
jmp 0x4765d7
cmp word [ebp - 0x11c], 0x32
jne 0x4762e5
jmp 0x47662e
cmp dword [edi + 0x34], 0x57
jne 0x476693
mov eax, 0xb8d
call fcn.0045b740
mov dword [esp], str.FindFirstFileExA_flag_FIND_FIRST_EX_LARGE_FETCH_not_supported__skipping_test_n
call fcn.0045bec0
jmp 0x4765d7
mov eax, 0xbcd
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.Unexpected_error__lx__expected_valid_handle_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
cmp ebx, 0xffffffff
je 0x4765d7
jmp 0x4765cf
cmp word [ebp - 0x11c], 0x31
jne 0x4767ef
lea eax, [ebp - 0x120]
mov dword [esp + 4], str.Invalid_fifth_entry____s_n
mov dword [esp + 8], eax
mov dword [esp], 1
call fcn.0045bef0
mov eax, 0xbb7
call fcn.0045b740
xor eax, eax
cmp byte [ebp - 0x1c], 0
sete al
jmp 0x4764da
xor eax, eax
cmp byte [ebp - 0x1c], 0
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xbb5
call fcn.0045b740
lea eax, [ebp - 0x14c]
mov dword [esp], esi
mov dword [esp + 4], eax
call edi
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], str.Fetching_fifth_file_failed_n
call fcn.0045bef0
mov eax, 0xbb6
call fcn.0045b740
cmp dword [ebp - 0x120], 0x656c6966
je 0x476750
cmp dword [ebp - 0x120], 0x656c6966
jne 0x476490
cmp word [ebp - 0x11c], 0x32
jne 0x476490
jmp 0x47675e
cmp word [ebp - 0x11c], 0x31
jne 0x4763d1
mov eax, 1
jmp 0x4763f9
mov eax, 0xb79
call fcn.0045b740
mov dword [esp], str.FindFirstFileExA___is_missing_n
call fcn.0045bec0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp word [ebp - 0x11c], 0x31
jne 0x476480
lea eax, [ebp - 0x120]
mov dword [esp + 4], str.Invalid_fifth_entry____s_n
mov dword [esp + 8], eax
mov dword [esp], 1
call fcn.0045bef0
mov eax, 0xbb7
call fcn.0045b740
jmp 0x4764d5
cmp word [ebp - 0x11c], 0x32
jne 0x4763e1
jmp 0x476826
cmp eax, 3
je 0x476950
mov dword [esp + 8], eax
mov dword [esp + 4], str.Unexpected_error__lx__expected_valid_handle_or_ERROR_PATH_NOT_FOUND_n
mov dword [esp], 0
call fcn.0045bef0
mov eax, 0xbc9
call fcn.0045b740
mov dword [esp + 4], str.not
mov dword [esp], str.FindFirstFileExA_flag_FIND_FIRST_EX_CASE_SENSITIVE_is__signored_n
call fcn.0045b8b0
jmp 0x4765d7
cmp word [ebp - 0x11c], 0x32
jne 0x476490
jmp 0x47685e
xor eax, eax
cmp byte [ebp - 0x11c], 0
je 0x4762fa
jmp 0x4762f5
xor eax, eax
cmp byte [ebp - 0x11c], 0
je 0x4764a5
jmp 0x4764a0
xor eax, eax
cmp byte [ebp - 0x11c], 0
je 0x4763f6
jmp 0x4763f1
mov dword [esp + 8], 3
mov dword [esp + 4], str.Unexpected_error__lx__expected_valid_handle_or_ERROR_PATH_NOT_FOUND_n
mov dword [esp], 1
call fcn.0045bef0
mov eax, 0xbc9
call fcn.0045b740
jmp 0x4768d3
mov eax, 0xba9
call fcn.0045b740
mov dword [esp], str.File_system_supports_directory_filtering_n
call fcn.0045b8a0
mov eax, 0xbab
call fcn.0045b740
cmp dword [ebp - 0x120], 0x31726964
je 0x476a20
mov eax, 1
xor eax, 1
lea edi, [ebp - 0x120]
mov dword [esp + 4], str.Third_entry_should_be_dir1_is__s_n
mov dword [esp], eax
mov dword [esp + 8], edi
call fcn.0045bef0
mov eax, 0xbac
call fcn.0045b740
mov eax, 1
cmp ebx, 1
jne 0x4769eb
xor eax, eax
cmp byte [ebp - 0x1c], 0
sete al
mov dword [esp + 4], str.FindFirstFile_unexpectedly_returned_an_alternate_filename_n
mov dword [esp], eax
call fcn.0045bef0
jmp 0x47651e
mov eax, 0xb88
call fcn.0045b740
mov dword [esp], str.FindFirstFileExA_is_not_implemented_n
call fcn.0045bec0
jmp 0x4765d7
xor eax, eax
cmp byte [ebp - 0x11c], 0
je 0x4769b1
jmp 0x4769ac