Function at 0x100585f0
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x1012a228
mov eax, dword fs:[0]
push eax
sub esp, 0xde0
mov eax, dword [0x101636d0]
xor eax, esp
mov dword [esp + 0xdd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101636d0]
xor eax, esp
push eax
lea eax, [esp + 0xdf4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xe04]
lea edi, [esp + 0x14c]
mov dword [esp + 0x24], ebp
call fcn.10062500
mov eax, dword [esp + 0xe0c]
push eax
xor ebx, ebx
push 0x1013f9d8
mov edx, edi
mov dword [esp + 0xe04], ebx
call fcn.10062cd0
push 0x1013c768
push 0x1013c7e4
mov edx, edi
call fcn.10062cd0
add esp, 0x10
mov byte [esp + 0x1c], bl
mov dword [esp + 0x18], ebx
lea esi, [esp + 0x158]
cmp byte [esp + 0x268], bl
jne 0x10058692
mov esi, dword [esp + 0x154]
cmp byte [ebp + 0x11c], 0
je 0x100586a0
add ebp, 0xc
jmp 0x100586a3
mov ebp, dword [ebp + 8]
lea edi, [esp + 0x39c]
add esi, 4
call fcn.10062500
lea eax, [ebp + 4]
mov edx, edi
mov byte [esp + 0xdfc], 2
call fcn.10062710
cmp esi, ebx
je 0x10058732
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
lea ecx, [esp + 0x40]
call fcn.1005f3c0
cmp byte [esp + 0x144], 0
lea eax, [esp + 0x34]
jne 0x100586e9
mov eax, dword [esp + 0x30]
cmp word [eax + 4], 0x2e
lea esi, [esp + 0x39c]
jne 0x10058702
lea ecx, [esp + 0x28]
call fcn.100602a0
jmp 0x1005870b
lea eax, [esp + 0x28]
call fcn.1005fa30
cmp byte [esp + 0x144], 0
mov dword [esp + 0x28], vtable.t_str.0
jne 0x10058732
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x34]
cmp eax, ecx
je 0x10058732
push eax
call fcn.100cf89b
add esp, 4
mov byte [esp + 0xdfc], 3
cmp dword [esp + 0x3a0], ebx
je 0x10058784
cmp byte [esp + 0x4b8], 0
lea eax, [esp + 0x3a8]
jne 0x1005875b
mov eax, dword [esp + 0x3a4]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10058784
shr eax, 4
not al
and al, 1
je 0x10058784
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x3a0]
call fcn.10060110
mov dword [esp + 0x20], ebx
jmp 0x10058790
xor edi, edi
cmp dword [esp + 0x26c], edi
je 0x100587a2
mov dword [esp + 0x26c], edi
mov ecx, 1
lea esi, [esp + 0x154]
mov dword [esp + 0x150], edi
call fcn.100632f0
cmp byte [esp + 0x268], 0
lea eax, [esp + 0x158]
jne 0x100587d2
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0xe08]
push edx
xor ecx, ecx
push 0x1013f9d8
lea edx, [esp + 0x154]
mov word [eax + 4], cx
call fcn.10062cd0
push 0x1013fe74
push 0x1013c7e4
lea edx, [esp + 0x15c]
call fcn.10062cd0
mov eax, dword [esp + 0xe1c]
push eax
push 0x1013f9d8
lea edx, [esp + 0x164]
call fcn.10062cd0
mov esi, dword [esp + 0x38]
add esp, 0x18
cmp esi, edi
je 0x10058856
push 0x1013fe74
push 0x1013c7e4
lea edx, [esp + 0x154]
call fcn.10062cd0
push esi
push 0x1013f9d8
lea edx, [esp + 0x15c]
call fcn.10062cd0
add esp, 0x10
push 0x1013c768
push 0x1013c7e4
lea edx, [esp + 0x154]
call fcn.10062cd0
add esp, 8
cmp byte [esp + 0x268], 0
lea eax, [esp + 0x158]
jne 0x10058887
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x24]
lea ebx, [eax + 4]
call fcn.1005f9b0
mov edi, eax
xor eax, eax
mov ecx, 4
mov word [esp + 0x38e], cx
lea edx, [esp + 0x280]
lea ecx, [eax + 1]
lea esi, [esp + 0x27c]
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
mov byte [esp + 0x390], 1
mov dword [esp + 0x27c], edx
mov dword [esp + 0x280], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x278], eax
call fcn.100632f0
cmp byte [esp + 0x390], 0
lea eax, [esp + 0x280]
jne 0x10058901
mov eax, dword [esp + 0x27c]
xor ecx, ecx
mov word [eax + 4], cx
mov byte [esp + 0xdfc], 4
mov ebp, edi
test edi, edi
jne 0x1005891a
mov ebp, 0x1013c8bc
mov eax, ebp
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10058920
sub eax, edx
sar eax, 1
lea edi, [eax + 1]
mov ecx, edi
lea esi, [esp + 0x27c]
mov dword [esp + 0x278], eax
call fcn.100632f0
cmp byte [esp + 0x390], 0
lea eax, [esp + 0x280]
jne 0x1005895f
mov eax, dword [esp + 0x27c]
lea edx, [edi + edi]
push edx
add eax, 4
push ebp
push eax
call fcn.100d6ec0
add esp, 0xc
test ebx, ebx
je 0x10058a89
push 0
push 0
push 0
push 0
push 0
push ebx
lea ecx, [esp + 0x4dc]
call fcn.1005f3c0
mov cl, byte [esp + 0x5e0]
mov eax, dword [esp + 0x4cc]
lea edx, [esp + 0x4d0]
test cl, cl
jne 0x100589aa
mov edx, eax
cmp word [edx + 4], 0x2e
jne 0x100589ff
test cl, cl
je 0x100589bc
lea eax, [esp + 0x4d0]
mov ecx, dword [esp + 0x4c8]
lea esi, [eax + 4]
mov eax, dword [esp + 0x278]
cmp eax, ecx
jbe 0x10058a4c
cmp byte [esp + 0x390], 0
lea edx, [esp + 0x280]
jne 0x100589e9
mov edx, dword [esp + 0x27c]
sub eax, ecx
lea eax, [edx + eax*2 + 4]
push esi
push eax
call fcn.100cf808
add esp, 8
test eax, eax
je 0x10058a59
jmp 0x10058a4c
test cl, cl
je 0x10058a0a
lea eax, [esp + 0x4d0]
lea esi, [eax + 4]
mov eax, dword [esp + 0x278]
test eax, eax
je 0x10058a3b
cmp byte [esp + 0x390], 0
lea ecx, [esp + 0x280]
jne 0x10058a30
mov ecx, dword [esp + 0x27c]
movzx eax, word [ecx + eax*2 + 2]
cmp ax, 0x5c
je 0x10058a4c
push 0x1013c82c
lea eax, [esp + 0x278]
call fcn.10062890
push esi
lea eax, [esp + 0x278]
call fcn.10062890
cmp byte [esp + 0x5e0], 0
mov dword [esp + 0x4c4], 0x10145b50
jne 0x10058a89
mov eax, dword [esp + 0x4cc]
lea ecx, [esp + 0x4d0]
cmp eax, ecx
je 0x10058a89
push eax
call fcn.100cf89b
add esp, 4
mov byte [esp + 0xdfc], 5
cmp dword [esp + 0x278], 0
je 0x10058adc
cmp byte [esp + 0x390], 0
lea eax, [esp + 0x280]
jne 0x10058ab3
mov eax, dword [esp + 0x27c]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10058adc
shr eax, 4
not al
and al, 1
je 0x10058adc
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x278]
call fcn.10060110
mov byte [esp + 0xdfc], 3
cmp byte [esp + 0x390], 0
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
jne 0x10058b14
mov eax, dword [esp + 0x27c]
lea ecx, [esp + 0x280]
cmp eax, ecx
je 0x10058b14
push eax
call fcn.100cf89b
add esp, 4
mov eax, dword [esp + 0x20]
inc eax
cmp eax, 4
mov dword [esp + 0x20], eax
jl 0x10058790
xor edx, edx
push 0x7fe
push edx
lea eax, [esp + 0x5f6]
push eax
mov word [esp + 0x5f8], dx
call fcn.100d6e40
mov ebp, dword [esp + 0x30]
add esp, 0xc
cmp byte [ebp + 0x11c], 0
lea eax, [ebp + 0xc]
jne 0x10058b59
mov eax, dword [ebp + 8]
add eax, 4
push 0x1016fd78
push eax
call fcn.100d2590
add esp, 8
test eax, eax
je 0x10058bdb
cmp byte [esp + 0x4b8], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x39c], esi
jne 0x10058b9f
mov eax, dword [esp + 0x3a4]
lea ecx, [esp + 0x3a8]
cmp eax, ecx
je 0x10058b9f
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x18]
call fcn.10061940
cmp byte [esp + 0x268], 0
mov dword [esp + 0x14c], esi
jne 0x10058bd4
mov eax, dword [esp + 0x154]
lea edx, [esp + 0x158]
cmp eax, edx
je 0x10058bd4
push eax
call fcn.100cf89b
add esp, 4
xor al, al
jmp 0x10058eb6
mov eax, 0x4000
test word [0x1016fd7e], ax
jne 0x10058c56
cmp byte [esp + 0x4b8], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x39c], esi
jne 0x10058c1a
mov eax, dword [esp + 0x3a4]
lea ecx, [esp + 0x3a8]
cmp eax, ecx
je 0x10058c1a
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x18]
call fcn.10061940
cmp byte [esp + 0x268], 0
mov dword [esp + 0x14c], esi
jne 0x10058bd4
mov eax, dword [esp + 0x154]
lea edx, [esp + 0x158]
cmp eax, edx
je 0x10058bd4
push eax
call fcn.100cf89b
add esp, 4
xor al, al
jmp 0x10058eb6
cmp byte [ebp + 0x11c], 0
lea eax, [ebp + 0xc]
jne 0x10058c65
mov eax, dword [ebp + 8]
add eax, 4
push eax
push str._s.
lea edx, [esp + 0x5f4]
call fcn.1004b060
add esp, 8
push 0x1016fb28
lea eax, [esp + 0x5f0]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x10058d10
cmp byte [esp + 0x4b8], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x39c], esi
jne 0x10058cc8
mov eax, dword [esp + 0x3a4]
lea ecx, [esp + 0x3a8]
cmp eax, ecx
je 0x10058cc8
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x18]
call fcn.10061940
cmp byte [esp + 0x268], 0
mov dword [esp + 0x14c], esi
jne 0x10058bd4
mov eax, dword [esp + 0x154]
lea edx, [esp + 0x158]
cmp eax, edx
je 0x10058bd4
push eax
call fcn.100cf89b
add esp, 4
xor al, al
jmp 0x10058eb6
mov ecx, 0x1013fd6c
mov eax, 0x1016fb54
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10058d46
test dx, dx
je 0x10058d42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10058d46
add eax, 4
add ecx, 4
test dx, dx
jne 0x10058d20
xor eax, eax
jmp 0x10058d4b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10058e33
mov ecx, 0x10142b5c
mov eax, 0x1016fb54
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10058d86
test dx, dx
je 0x10058d82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10058d86
add eax, 4
add ecx, 4
test dx, dx
jne 0x10058d60
xor eax, eax
jmp 0x10058d8b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10058e33
mov eax, dword [esp + 0xe08]
push eax
mov esi, 0x1016fb54
call fcn.10058ee0
add esp, 4
test al, al
jne 0x10058e33
push esi
mov ecx, ebp
call fcn.1005f9b0
push eax
push 0x1013c7c8
lea edx, [esp + 0x5f8]
call fcn.1004b060
add esp, 0xc
lea edi, [esp + 0x4c4]
call fcn.10062500
lea eax, [esp + 0x5ec]
mov edx, edi
call fcn.10062710
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
mov byte [esp + 0xe00], 7
call fcn.10060110
mov byte [esp + 0xdfc], 3
cmp byte [esp + 0x5e0], 0
mov dword [esp + 0x4c4], 0x10145b50
jne 0x10058e33
mov eax, dword [esp + 0x4cc]
lea edx, [esp + 0x4d0]
cmp eax, edx
je 0x10058e33
push eax
call fcn.100cf89b
add esp, 4
push 0x1016fb28
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x10058d10
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [esp + 0x4b8], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x39c], esi
jne 0x10058e7f
mov eax, dword [esp + 0x3a4]
lea ecx, [esp + 0x3a8]
cmp eax, ecx
je 0x10058e7f
push eax
call fcn.100cf89b
add esp, 4
lea ecx, [esp + 0x18]
call fcn.10061940
cmp byte [esp + 0x268], 0
mov dword [esp + 0x14c], esi
jne 0x10058eb4
mov eax, dword [esp + 0x154]
lea edx, [esp + 0x158]
cmp eax, edx
je 0x10058eb4
push eax
call fcn.100cf89b
add esp, 4
mov al, 1
mov ecx, dword [esp + 0xdf4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xdd8]
xor ecx, esp
call fcn.100cf604
add esp, 0xdec
ret