Function at 0x4ad440
Capabilities:
Check if file exists
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xaf4
mov eax, dword [0x7e6410]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov dword [ebp - 0xaf4], ecx
mov esi, edx
mov ecx, dword [0x7e8a20]
push edi
mov edi, dword [ebp + 0xc]
cmp ecx, 0xffffffff
jne 0x4ad4a0
lea eax, [ebp - 0xaf0]
mov dword [ebp - 0xaf0], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [ebp - 0xae0]
mov edx, dword [ebp - 0xaec]
mov dword [0x7e8a20], ecx
mov dword [0x80abac], edx
jmp 0x4ad4a6
mov edx, dword [0x80abac]
xor eax, eax
cmp ecx, 2
cmove eax, edx
test eax, eax
je 0x4ad6f7
test ebx, ebx
je 0x4ad4e2
cmp word [ebx], 0
je 0x4ad4e2
lea ecx, [ebp - 0x808]
sub ecx, ebx
jmp 0x4ad4d0
movzx eax, word [ebx]
lea ebx, [ebx + 2]
mov word [ecx + ebx - 2], ax
test ax, ax
jne 0x4ad4d0
jmp 0x4ad4fb
push 0x10000000
lea eax, [ebp - 0x808]
push eax
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, dword [ebp - 0xaf4]
lea eax, [ebp - 0xa58]
push eax
cmp ebx, 0xffffffff
jne 0x4ad559
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
mov dword [ebp - 0xaf4], ebx
cmp ebx, 0xffffffff
jne 0x4ad58c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x4ad54c
cmp eax, 3
je 0x4ad54c
cmp eax, 0x12
je 0x4ad54c
mov eax, 1
mov byte [edi + 0x10c0], al
jmp 0x4ad926
xor eax, eax
mov byte [edi + 0x10c0], al
jmp 0x4ad926
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4ad58c
or ebx, 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
setne al
mov byte [edi + 0x10c0], al
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006b3266
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x808]
lea ebx, [edi + 0x400]
mov eax, ecx
mov edx, ebx
sub edx, eax
mov edi, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4ad5a0
mov ecx, ebx
lea esi, [ebp - 0xa2c]
call fcn.004a8c40
mov ecx, esi
sub eax, ecx
movzx ecx, word [esi]
lea esi, [esi + 2]
mov word [eax + esi - 2], cx
movzx ecx, word [esi - 2]
test cx, cx
jne 0x4ad5c1
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
push 0
push 0x10000000
push edi
push 0xffffffffffffffff
push ebx
push 0
push 0
call esi
mov ecx, dword [ebp - 0xa3c]
xor eax, eax
add eax, dword [ebp - 0xa38]
push 0
push 0
mov dword [edi + 0xc00], eax
adc ecx, 0
mov eax, dword [ebp - 0xa58]
push 0x10000000
mov dword [edi + 0xc08], eax
lea eax, [edi + 0xca8]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x824]
mov dword [edi + 0xc04], ecx
push eax
push 0
push 0
call esi
mov eax, dword [ebp - 0xa54]
lea esi, [edi + 0xc18]
mov dword [edi + 0x10a8], eax
mov ecx, esi
mov eax, dword [ebp - 0xa50]
mov dword [edi + 0x10ac], eax
mov eax, dword [ebp - 0xa4c]
mov dword [edi + 0x10b0], eax
mov eax, dword [ebp - 0xa48]
mov dword [edi + 0x10b4], eax
mov eax, dword [ebp - 0xa44]
mov dword [edi + 0x10b8], eax
mov eax, dword [ebp - 0xa40]
mov dword [edi + 0x10bc], eax
lea eax, [ebp - 0xa44]
push eax
call fcn.004ae3d0
lea eax, [ebp - 0xa54]
push eax
lea ecx, [edi + 0xc48]
call fcn.004ae3d0
lea eax, [ebp - 0xa4c]
push eax
lea ecx, [edi + 0xc78]
call fcn.004ae3d0
mov ecx, dword [esi]
mov eax, dword [esi + 0x14]
sub ecx, 0x3c
shl ecx, 4
or ecx, dword [esi + 4]
shl ecx, 5
or ecx, dword [esi + 8]
shl ecx, 5
or ecx, dword [esi + 0xc]
shl ecx, 6
or ecx, dword [esi + 0x10]
shl ecx, 5
shr eax, 1
or ecx, eax
mov dword [edi + 0xc0c], ecx
mov ecx, ebx
call fcn.004a3030
test al, al
je 0x4ad926
jmp 0x4ad921
test esi, esi
je 0x4ad71f
cmp byte [esi], 0
je 0x4ad71f
lea ecx, [ebp - 0x408]
sub ecx, esi
jmp 0x4ad710
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x4ad710
jmp 0x4ad73c
push 0
push 0
push 0x10000000
lea eax, [ebp - 0x408]
push eax
push 0xffffffffffffffff
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0xaf4]
cmp eax, 0xffffffff
jne 0x4ad78e
lea eax, [ebp - 0x948]
push eax
lea eax, [ebp - 0x408]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0xaf4], eax
cmp eax, 0xffffffff
jne 0x4ad7c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x4ad54c
cmp eax, 3
je 0x4ad54c
mov eax, 1
mov byte [edi + 0x10c0], al
jmp 0x4ad926
lea ecx, [ebp - 0x948]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4ad7c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
setne al
or ebx, 0xffffffff
mov byte [edi + 0x10c0], al
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006b3266
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x408]
mov edx, edi
mov eax, ecx
sub edx, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4ad7d4
mov ecx, edi
lea esi, [ebp - 0x91c]
call fcn.004a8bc0
mov ecx, esi
sub eax, ecx
mov cl, byte [esi]
lea esi, [esi + 1]
mov byte [eax + esi - 1], cl
test cl, cl
jne 0x4ad7f2
push 0x10000000
lea ebx, [edi + 0x400]
push ebx
push 0xffffffffffffffff
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp - 0x92c]
lea edx, [edi + 0xca8]
xor eax, eax
add eax, dword [ebp - 0x928]
mov dword [edi + 0xc00], eax
mov eax, dword [ebp - 0x948]
adc ecx, 0
mov dword [edi + 0xc04], ecx
lea ecx, [ebp - 0x818]
mov dword [edi + 0xc08], eax
mov eax, ecx
sub edx, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4ad851
mov eax, dword [ebp - 0x944]
lea esi, [edi + 0xc18]
mov dword [edi + 0x10a8], eax
mov ecx, esi
mov eax, dword [ebp - 0x940]
mov dword [edi + 0x10ac], eax
mov eax, dword [ebp - 0x93c]
mov dword [edi + 0x10b0], eax
mov eax, dword [ebp - 0x938]
mov dword [edi + 0x10b4], eax
mov eax, dword [ebp - 0x934]
mov dword [edi + 0x10b8], eax
mov eax, dword [ebp - 0x930]
mov dword [edi + 0x10bc], eax
lea eax, [ebp - 0x934]
push eax
call fcn.004ae3d0
lea eax, [ebp - 0x944]
push eax
lea ecx, [edi + 0xc48]
call fcn.004ae3d0
lea eax, [ebp - 0x93c]
push eax
lea ecx, [edi + 0xc78]
call fcn.004ae3d0
mov ecx, dword [esi]
mov eax, dword [esi + 0x14]
sub ecx, 0x3c
shl ecx, 4
or ecx, dword [esi + 4]
shl ecx, 5
or ecx, dword [esi + 8]
shl ecx, 5
or ecx, dword [esi + 0xc]
shl ecx, 6
or ecx, dword [esi + 0x10]
shr eax, 1
shl ecx, 5
or ecx, eax
mov dword [edi + 0xc0c], ecx
mov al, byte [edi]
test al, al
je 0x4ad921
cmp al, 0x20
jb 0x4ad926
cmp al, 0x7f
ja 0x4ad926
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4ad911
xor eax, eax
mov word [ebx], ax
mov ebx, dword [ebp - 0xaf4]
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006b3266
mov esp, ebp
pop ebp
ret