Function at 0x45e200
Capabilities:
Delete file
Enumerate files on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x14c]
push ebx
mov esi, dword fs:[0x18]
sub esp, 0x3dc
mov byte [ebp - 0x3b9], 0
mov dword [ebp - 0x3bd], 0x5c3a43
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_GetWindowsDirectoryA]
mov dword [esp + 4], 0x104
mov dword [ebp - 0x3d4], eax
call eax
movzx eax, byte [ebp - 0x14c]
mov edi, dword [sym.imp.kernel32.dll_FindFirstFileA]
mov dword [esi + 0x34], 0xdeadbeaf
sub esp, 8
mov byte [ebp - 0x3bd], al
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x3bd]
mov dword [esp], eax
mov dword [ebp - 0x3c4], edi
call edi
mov esi, dword [esi + 0x34]
sub esp, 8
mov ebx, eax
mov eax, 0xaa6
call fcn.0045b740
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.FindFirstFile_on_root_directory_should_fail_n
sete al
lea ebx, [ebp - 0x3b8]
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xaa7
call fcn.0045b740
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x3bd]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [sym.imp.msvcrt.dll_strcpy]
mov dword [ebp - 0x3cc], eax
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, 0x2a
mov word [ebx + eax], cx
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call edi
sub esp, 8
mov esi, eax
mov eax, 0xaad
call fcn.0045b740
xor eax, eax
cmp esi, 0xffffffff
mov dword [esp + 8], ebx
setne al
mov dword [esp + 4], str.FindFirstFile_on__s_should_succeed_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xaae
call fcn.0045b740
cmp word [ebp - 0x120], 0x2e
je 0x45efb5
cmp word [ebp - 0x120], 0x2e2e
je 0x45efa8
mov eax, 1
lea ecx, [ebp - 0x120]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], str.FindFirstFile_shouldnt_return__s_in_drive_root_n
call fcn.0045bef0
lea eax, [ebp - 0x14c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [sym.imp.kernel32.dll_FindNextFileA]
mov dword [ebp - 0x3c8], eax
call eax
sub esp, 8
test eax, eax
jne 0x45eff0
mov eax, 0xab3
call fcn.0045b740
mov eax, dword [sym.imp.kernel32.dll_FindClose]
mov dword [esp], esi
mov dword [ebp - 0x3d0], eax
call eax
sub esp, 4
cmp eax, 1
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Failed_to_close_handle__s_n
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 4], 0x64
mov dword [esp], ebx
mov eax, dword [ebp - 0x3d4]
call eax
sub esp, 8
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x2a5c
add eax, ebx
mov word [eax], dx
mov byte [eax + 2], 0
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3c4]
call eax
sub esp, 8
mov esi, eax
mov eax, 0xab9
call fcn.0045b740
xor eax, eax
cmp esi, 0xffffffff
mov dword [esp + 8], ebx
setne al
mov dword [esp + 4], str.FindFirstFile_on__s_should_succeed_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xaba
call fcn.0045b740
mov dword [esp + 4], str.FindFirstFile_should_return_._first_n
xor eax, eax
cmp word [ebp - 0x120], 0x2e
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xabb
call fcn.0045b740
lea eax, [ebp - 0x14c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c8]
call eax
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], str.FindNextFile_failed_n
call fcn.0045bef0
mov eax, 0xabc
call fcn.0045b740
cmp word [ebp - 0x120], 0x2e2e
je 0x45efd8
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.FindNextFile_should_return_.._as_second_entry_n
xor edi, edi
mov dword [esp], eax
call fcn.0045bef0
lea esi, [esi]
lea eax, [ebp - 0x14c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c8]
call eax
sub esp, 8
test eax, eax
je 0x45e5d8
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xabf
cmp word [ebp - 0x120], 0x2e
je 0x45e5cd
cmp word [ebp - 0x120], 0x2e2e
je 0x45e5c0
mov eax, 1
lea ecx, [ebp - 0x120]
mov dword [esp + 4], str.FindNextFile_shouldnt_return__s_n
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.0045bef0
test edi, edi
je 0x45e558
mov edi, 1
jmp 0x45e4d8
mov eax, dword [ebp - 0x14c]
cmp eax, 0x80
je 0x45e56e
cmp eax, 0x20
jne 0x45e4d8
mov dword [esp + 4], 0x64
mov edi, 0x2a5c
mov dword [esp], ebx
mov eax, dword [ebp - 0x3d4]
call eax
sub esp, 8
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [ebp - 0x120]
mov byte [ebx + eax], 0x5c
lea eax, [ebx + eax + 1]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov word [eax], di
mov byte [eax + 2], 0
jmp 0x45e54a
cmp byte [ebp - 0x11e], 0
jne 0x45e527
xor eax, eax
jmp 0x45e52c
mov eax, 0xacb
call fcn.0045b740
mov dword [esp], esi
mov eax, dword [ebp - 0x3d0]
call eax
sub esp, 4
cmp eax, 1
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Failed_to_close_handle__s_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xacd
call fcn.0045b740
mov dword [esp + 4], str.Windows_dir_should_not_be_empty_n
mov dword [esp], edi
call fcn.0045bef0
test edi, edi
jne 0x45f088
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeaf
lea eax, [ebp - 0x354]
mov esi, dword [sym.imp.kernel32.dll_GetTempFileNameA]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x3bd]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x59898a
mov dword [esp], eax
call esi
sub esp, 0x10
test eax, eax
je 0x45f040
lea eax, [ebp - 0x354]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
lea eax, [ebp - 0x354]
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, 0x5c
mov word [ebx + eax], cx
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3c4]
call eax
sub esp, 8
mov edi, eax
mov eax, dword fs:[0x18]
mov esi, dword [eax + 0x34]
mov eax, 0xae4
call fcn.0045b740
xor eax, eax
cmp edi, 0xffffffff
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
mov dword [esp], eax
call fcn.0045bef0
mov edi, dword [0x8f0770]
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test edi, edi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x45e756
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0xae6
xor eax, eax
cmp esi, 3
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Bad_Error_number__d_n
call fcn.0045bef0
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x45e720
lea eax, [ebp - 0x354]
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
lea edx, [ebp - 0x14c]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x3c4]
call ecx
mov edi, dword [esi + 0x34]
sub esp, 8
mov dword [ebp - 0x3d4], eax
mov eax, 0xaee
call fcn.0045b740
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
cmp dword [ebp - 0x3d4], 0xffffffff
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xaef
call fcn.0045b740
xor eax, eax
cmp edi, 2
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x354]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp + 4], edx
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [ebp - 0x14c]
add eax, ebx
mov dword [eax], 0x7261625c
mov dword [eax + 4], 0x7478742e
mov byte [eax + 8], 0
mov dword [esp + 4], edx
mov dword [esp], ebx
mov ecx, dword [ebp - 0x3c4]
call ecx
mov edi, dword [esi + 0x34]
sub esp, 8
mov dword [ebp - 0x3d4], eax
mov eax, 0xaf7
call fcn.0045b740
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
cmp dword [ebp - 0x3d4], 0xffffffff
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xaf8
call fcn.0045b740
xor eax, eax
cmp edi, 3
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x354]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp + 4], edx
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [ebp - 0x14c]
add eax, ebx
mov dword [eax], 0x2a2e2a5c
mov byte [eax + 4], 0
mov dword [esp + 4], edx
mov dword [esp], ebx
mov ecx, dword [ebp - 0x3c4]
call ecx
mov edi, dword [esi + 0x34]
sub esp, 8
mov dword [ebp - 0x3d4], eax
mov eax, 0xb00
call fcn.0045b740
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
cmp dword [ebp - 0x3d4], 0xffffffff
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb01
call fcn.0045b740
xor eax, eax
cmp edi, 3
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x351]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [ebp - 0x14c]
add eax, ebx
mov dword [eax], 0x7261625c
mov dword [eax + 4], 0x7478742e
mov byte [eax + 8], 0
mov dword [esp + 4], edx
mov dword [esp], ebx
mov ecx, dword [ebp - 0x3c4]
call ecx
mov edi, dword [esi + 0x34]
sub esp, 8
mov dword [ebp - 0x3d4], eax
mov eax, 0xb09
call fcn.0045b740
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
cmp dword [ebp - 0x3d4], 0xffffffff
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb0a
call fcn.0045b740
xor eax, eax
cmp edi, 3
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x3bd]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp + 4], edx
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [ebx + eax], 0x6c756e
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, dword [ebp - 0x3c4]
call ecx
mov esi, dword [esi + 0x34]
sub esp, 8
mov edi, eax
mov eax, 0xb12
call fcn.0045b740
xor eax, eax
cmp edi, 0xffffffff
mov dword [esp + 0xc], esi
setne al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.FindFirstFile_on__s_failed:__d_n
call fcn.0045bef0
mov eax, 0xb13
call fcn.0045b740
lea eax, [ebp - 0x120]
mov dword [esp + 4], 0x5989b0
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov dword [ebp - 0x3d8], eax
call eax
lea ecx, [ebp - 0x120]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ecx
movzx eax, al
mov dword [esp + 4], 0x5989b4
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb14
call fcn.0045b740
mov eax, dword [ebp - 0x14c]
mov dword [esp + 4], str.wrong_attributes__lx_n
mov dword [esp + 8], eax
sub eax, 0x20
and eax, 0xffffffdf
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
cmp dword [ebp - 0x14c], 0x20
je 0x45f1b8
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeaf
mov eax, 0xb1d
call fcn.0045b740
lea eax, [ebp - 0x14c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c8]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.FindNextFileA_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb1e
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.bad_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x12
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb1f
call fcn.0045b740
mov dword [esp], edi
mov eax, dword [ebp - 0x3d0]
call eax
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.failed_to_close_handle_n
call fcn.0045bef0
lea eax, [ebp - 0x14c]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [ebp - 0x3b8], 0x3174706c
mov byte [ebp - 0x3b4], 0
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3c4]
call eax
mov edi, dword [esi + 0x34]
sub esp, 8
mov dword [ebp - 0x3d4], eax
mov eax, 0xb26
call fcn.0045b740
mov dword [esp + 0xc], edi
xor eax, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.FindFirstFile_on__s_failed:__d_n
cmp dword [ebp - 0x3d4], 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb27
call fcn.0045b740
lea eax, [ebp - 0x120]
mov dword [esp + 4], str.lpt1
mov dword [esp], eax
mov eax, dword [ebp - 0x3d8]
call eax
lea ecx, [ebp - 0x120]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ecx
movzx eax, al
mov dword [esp + 4], 0x5989b4
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb28
call fcn.0045b740
mov eax, dword [ebp - 0x14c]
mov dword [esp + 4], str.wrong_attributes__lx_n
mov dword [esp + 8], eax
sub eax, 0x20
and eax, 0xffffffdf
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
cmp dword [ebp - 0x14c], 0x20
je 0x45f158
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeaf
mov eax, 0xb31
call fcn.0045b740
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x3d4]
mov dword [esp], esi
mov eax, dword [ebp - 0x3c8]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.FindNextFileA_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb32
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.bad_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x12
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb33
call fcn.0045b740
mov dword [esp], esi
mov eax, dword [ebp - 0x3d0]
call eax
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.failed_to_close_handle_n
call fcn.0045bef0
lea eax, [ebp - 0x3bd]
mov dword [edi + 0x34], 0xdeadbeaf
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea ecx, [ebp - 0x14c]
mov edx, 0x2a
add eax, ebx
mov word [eax + 4], dx
mov dword [eax], 0x5c6c756e
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov edx, dword [ebp - 0x3c4]
call edx
mov esi, dword [edi + 0x34]
sub esp, 8
mov dword [ebp - 0x3c8], eax
mov eax, 0xb3b
call fcn.0045b740
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
cmp dword [ebp - 0x3c8], 0xffffffff
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb3c
call fcn.0045b740
xor eax, eax
cmp esi, 3
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x3bd]
mov dword [edi + 0x34], 0xdeadbeaf
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea ecx, [ebp - 0x14c]
add eax, ebx
mov dword [eax], 0x2a6c756e
mov byte [eax + 4], 0
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov edx, dword [ebp - 0x3c4]
call edx
mov esi, dword [edi + 0x34]
sub esp, 8
mov dword [ebp - 0x3c8], eax
mov eax, 0xb44
call fcn.0045b740
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
cmp dword [ebp - 0x3c8], 0xffffffff
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb45
call fcn.0045b740
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x3bd]
mov dword [edi + 0x34], 0xdeadbeaf
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [eax], 0x5c6f6f66
mov dword [eax + 4], 0x5c726162
mov dword [eax + 8], 0x6c756e
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov edx, dword [ebp - 0x3c4]
call edx
mov edi, dword [edi + 0x34]
mov esi, eax
sub esp, 8
mov eax, 0xb4d
call fcn.0045b740
cmp esi, 0xffffffff
je 0x45f110
mov eax, dword [0x8f0770]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
test eax, eax
je 0x45efc0
mov dword [esp], 0
call fcn.0045bef0
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
lea eax, [ebp - 0x3bd]
mov esi, dword fs:[0x18]
mov dword [esi + 0x34], 0xdeadbeaf
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3cc]
call eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [eax], 0x5c6f6f66
mov dword [eax + 4], 0x5c6c756e
mov dword [eax + 8], 0x726162
lea eax, [ebp - 0x14c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c4]
call eax
mov esi, dword [esi + 0x34]
sub esp, 8
mov edi, eax
mov eax, 0xb5a
call fcn.0045b740
xor eax, eax
cmp edi, 0xffffffff
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb5b
call fcn.0045b740
xor eax, eax
cmp esi, 3
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [ebp - 0x11e], 0
jne 0x45e35c
xor eax, eax
jmp 0x45e361
mov dword [esp], 1
call fcn.0045bef0
jmp 0x45eee6
xor eax, eax
cmp byte [ebp - 0x11e], 0
je 0x45e4bd
jmp 0x45e4b8
mov eax, 0xab1
call fcn.0045b740
cmp word [ebp - 0x120], 0x2e
je 0x45f222
cmp word [ebp - 0x120], 0x2e2e
je 0x45f215
mov eax, 1
lea ecx, [ebp - 0x120]
mov dword [esp + 4], str.FindNextFile_shouldnt_return__s_in_drive_root_n
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.0045bef0
jmp 0x45e3a0
lea edi, [ebp - 0x250]
mov dword [esp], 0x104
mov dword [esp + 4], edi
call dword [sym.imp.kernel32.dll_GetTempPathA]
lea eax, [ebp - 0x354]
sub esp, 8
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x59898a
mov dword [esp], edi
call esi
sub esp, 0x10
jmp 0x45e672
lea eax, [ebp - 0x14c]
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3c4]
call eax
mov edi, dword [edi + 0x34]
sub esp, 8
mov esi, eax
mov eax, 0xad3
call fcn.0045b740
xor eax, eax
cmp esi, 0xffffffff
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xad4
call fcn.0045b740
xor eax, eax
cmp edi, 0x10b
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Bad_Error_number__x_n
mov dword [esp], eax
call fcn.0045bef0
jmp 0x45e62f
mov dword [esp + 8], ebx
mov dword [esp + 4], str.FindFirstFile_on__s_should_fail_n
mov dword [esp], 1
call fcn.0045bef0
mov eax, 0xb50
call fcn.0045b740
xor eax, eax
cmp edi, 3
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Bad_Error_number__d_n
mov dword [esp], eax
call fcn.0045bef0
jmp 0x45eef2
mov eax, 0xb2d
call fcn.0045b740
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], str.wrong_size__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb2e
call fcn.0045b740
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], str.wrong_size__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
jmp 0x45ec70
mov eax, 0xb19
call fcn.0045b740
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], str.wrong_size__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0xb1a
call fcn.0045b740
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], str.wrong_size__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
jmp 0x45eaea
cmp byte [ebp - 0x11e], 0
jne 0x45f017
xor eax, eax
jmp 0x45f01c