Function at 0x455b1d
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572f31
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5d8
mov dword [ebp - 0x5d4], ecx
lea ecx, [ebp - 0x5a4]
call fcn.00401420
mov dword [ebp - 4], 0
mov dword [ebp - 0x5a8], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], 0
push 0x40
push 0
mov eax, dword [ebp - 0x5d4]
add eax, 0x23f8
push eax
call fcn.0054bf90
add esp, 0xc
mov dword [ebp - 0x10], 0
jmp 0x455b95
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0x10
jge 0x455c3d
mov edx, dword [ebp - 0x10]
shl edx, 4
mov eax, dword [ebp - 0x5d4]
xor ecx, ecx
mov cl, byte [eax + edx + 0x20c]
cmp ecx, 0xff
je 0x455c38
mov dword [ebp - 0x18], 0
jmp 0x455bce
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 4
jge 0x455c36
push 0x40
push 0
lea eax, [ebp - 0x458]
push eax
call fcn.0054bf90
add esp, 0xc
mov ecx, dword [ebp - 0x10]
shl ecx, 4
mov edx, dword [ebp - 0x18]
lea eax, [ecx + edx + 0x30]
mov ecx, dword [ebp - 0x5d4]
xor edx, edx
mov dl, byte [ecx + eax + 0x1dc]
push edx
push 0x5abbf0
lea eax, [ebp - 0x458]
push eax
call fcn.0054c6e3
add esp, 0xc
lea ecx, [ebp - 0x458]
push ecx
mov edx, dword [ebp - 0x5d4]
add edx, 0x23f8
push edx
call fcn.0054bea0
add esp, 8
jmp 0x455bc5
jmp 0x455c3d
jmp 0x455b8c
lea eax, [ebp - 0x418]
push eax
call fcn.005364d8
add esp, 4
push 2
push 0x5abbf8
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x23f8
push ecx
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455c85
push 0x5abbfc
lea edx, [ebp - 0x418]
push edx
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc08
mov eax, dword [ebp - 0x5d4]
add eax, 0x23f8
push eax
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455cbd
push 0x5abc0c
lea ecx, [ebp - 0x418]
push ecx
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc14
mov edx, dword [ebp - 0x5d4]
add edx, 0x23f8
push edx
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455cf6
push 0x5abc18
lea eax, [ebp - 0x418]
push eax
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc20
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x23f8
push ecx
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455d2f
push 0x5abc24
lea edx, [ebp - 0x418]
push edx
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc2c
mov eax, dword [ebp - 0x5d4]
add eax, 0x23f8
push eax
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455d67
push 0x5abc30
lea ecx, [ebp - 0x418]
push ecx
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc34
mov edx, dword [ebp - 0x5d4]
add edx, 0x23f8
push edx
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455da0
push 0x5abc38
lea eax, [ebp - 0x418]
push eax
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc44
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x23f8
push ecx
call fcn.0054e060
add esp, 0xc
test eax, eax
je 0x455de0
push 2
push 0x5abc48
mov edx, dword [ebp - 0x5d4]
add edx, 0x23f8
push edx
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455df6
push 0x5abc4c
lea eax, [ebp - 0x418]
push eax
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc58
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x23f8
push ecx
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455e2c
push 0x5abc5c
lea edx, [ebp - 0x418]
push edx
call fcn.0054bea0
add esp, 8
jmp 0x455e5f
push 2
push 0x5abc68
mov eax, dword [ebp - 0x5d4]
add eax, 0x23f8
push eax
call fcn.0054e060
add esp, 0xc
test eax, eax
jne 0x455e5f
push 0x5abc6c
lea ecx, [ebp - 0x418]
push ecx
call fcn.0054bea0
add esp, 8
lea edx, [ebp - 0x418]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x455eac
push 0
push 0
push str.Folder__Cardmode__not_exist.
mov ecx, dword [ebp - 0x5d4]
call fcn.00564245
mov dword [ebp - 0x5b0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.0056206c
mov eax, dword [ebp - 0x5b0]
jmp 0x45625d
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [ebp - 0x598]
push ecx
push 0x5abc98
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x5ac], eax
cmp dword [ebp - 0x5ac], 0xffffffff
jne 0x455f15
push 0
push 0
push str.Can_not_access_Folder__CardMode_
mov ecx, dword [ebp - 0x5d4]
call fcn.00564245
mov dword [ebp - 0x5b4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.0056206c
mov eax, dword [ebp - 0x5b4]
jmp 0x45625d
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x5a8], 0
cmp dword [ebp - 0x14], 0
jne 0x456089
lea edx, [ebp - 0x56c]
push edx
lea ecx, [ebp - 0x5a4]
call fcn.005621f5
lea ecx, [ebp - 0x5a4]
call fcn.0056256e
push 0x5abcc0
push 4
lea eax, [ebp - 0x5bc]
push eax
lea ecx, [ebp - 0x5a4]
call fcn.0055f38b
mov dword [ebp - 0x5d8], eax
mov ecx, dword [ebp - 0x5d8]
mov dword [ebp - 0x5dc], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x5dc]
push edx
call fcn.00402840
mov byte [ebp - 0x5b8], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5bc]
call fcn.0056206c
mov eax, dword [ebp - 0x5b8]
and eax, 0xff
test eax, eax
je 0x45605a
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x23f8
push ecx
call fcn.0054ce70
add esp, 4
push eax
mov edx, dword [ebp - 0x5d4]
add edx, 0x23f8
push edx
call fcn.0054ce70
add esp, 4
push eax
lea eax, [ebp - 0x5c4]
push eax
lea ecx, [ebp - 0x5a4]
call fcn.0055f407
mov dword [ebp - 0x5e0], eax
mov ecx, dword [ebp - 0x5e0]
mov dword [ebp - 0x5e4], ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x5e4]
call fcn.005287a0
push eax
mov edx, dword [ebp - 0x5d4]
add edx, 0x23f8
push edx
call fcn.0054e060
add esp, 0xc
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x5c0], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0056206c
mov eax, dword [ebp - 0x5c0]
and eax, 0xff
test eax, eax
je 0x45605a
mov dword [ebp - 0x5a8], 1
jmp 0x456089
lea ecx, [ebp - 0x598]
push ecx
mov edx, dword [ebp - 0x5ac]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x456084
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x456084
mov dword [ebp - 0x14], 1
jmp 0x455f26
mov eax, dword [ebp - 0x5ac]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x5a8], 0
jne 0x456102
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x23f8
push ecx
push 0x5abcc8
lea edx, [ebp - 0x5a4]
push edx
call fcn.0055f827
add esp, 0xc
push 0
push 0
lea ecx, [ebp - 0x5a4]
call fcn.005287a0
push eax
mov ecx, dword [ebp - 0x5d4]
call fcn.00564245
mov dword [ebp - 0x5c8], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.0056206c
mov eax, dword [ebp - 0x5c8]
jmp 0x45625d
push 0x5abcf4
lea eax, [ebp - 0x418]
push eax
call fcn.0054bea0
add esp, 8
lea ecx, [ebp - 0x5a4]
call fcn.005287a0
push eax
lea ecx, [ebp - 0x418]
push ecx
call fcn.0054bea0
add esp, 8
mov dword [ebp - 0x59c], 0
lea edx, [ebp - 0x59c]
push edx
lea eax, [ebp - 0x418]
push eax
call fcn.00536c84
add esp, 8
mov ecx, dword [ebp - 0x5d4]
mov dword [ecx + 0x194], eax
mov edx, dword [ebp - 0x59c]
shl edx, 0x20
mov eax, dword [ebp - 0x5d4]
mov ecx, dword [eax + 0x194]
add ecx, edx
mov edx, dword [ebp - 0x5d4]
mov dword [edx + 0x194], ecx
lea eax, [ebp - 0x418]
push eax
mov ecx, dword [ebp - 0x5d4]
call fcn.0045626b
push 0x5abcf8
lea ecx, [ebp - 0x418]
push ecx
call fcn.0054cc9f
add esp, 8
mov dword [ebp - 0x5a0], eax
cmp dword [ebp - 0x5a0], 0
jne 0x4561ed
push 0
push 0
push str.Can_not_open_original_file
mov ecx, dword [ebp - 0x5d4]
call fcn.00564245
mov dword [ebp - 0x5cc], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.0056206c
mov eax, dword [ebp - 0x5cc]
jmp 0x45625d
push 0x2000
push 0
mov edx, dword [ebp - 0x5d4]
add edx, 0x3ec
push edx
call fcn.0054bf90
add esp, 0xc
mov eax, dword [ebp - 0x5a0]
push eax
push 1
push 0x2000
mov ecx, dword [ebp - 0x5d4]
add ecx, 0x3ec
push ecx
call fcn.0054ce1b
add esp, 0x10
mov edx, dword [ebp - 0x5a0]
push edx
call fcn.0054cbf2
add esp, 4
mov dword [ebp - 0x5d0], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.0056206c
mov eax, dword [ebp - 0x5d0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret