Function at 0x46b230
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd70
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x28c], ecx
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x284], ecx
mov dword [ebp - 0x278], ecx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x280], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x46b55c
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 8]
mov eax, ebx
call sym.P_Interface.bpl__Jcldotnet_TJclClrHost_CorSystemDirectory_qqrp17System_TMetaClass
lea edx, [ebp - 0x280]
mov eax, ebx
call sym.P_Interface.bpl__Jcldotnet_TJclClrHost_CorVersion_qqrp17System_TMetaClass
mov edx, dword [ebp - 0x280]
lea eax, [ebp - 0x27c]
call sub.rtl70.bpl__System__LStrFromWStr_qqrr17System_AnsiStringx17System_WideString
mov eax, dword [ebp - 0x27c]
lea edx, [ebp - 0x278]
call sub.rtl70.bpl__Sysutils_AnsiUpperCase_qqrx17System_AnsiString
mov edx, dword [ebp - 0x278]
mov eax, 0x46b574
call sub.rtl70.bpl__System__LStrPos_qqrv
test eax, eax
jle 0x46b2d7
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x46b2de
mov dword [ebp - 0x24], 0x40
mov eax, dword [ebp - 8]
xor edx, edx
call sub.rtl70.bpl__System__WStrCmp_qqrv
je 0x46b519
mov eax, dword [ebp - 8]
call fcn.0046b20c
test al, al
je 0x46b519
xor ebx, ebx
mov eax, dword [ebp - 8]
call sub.rtl70.bpl__System__WStrLen_qqrx17System_WideString
mov esi, eax
dec esi
cmp esi, 1
jl 0x46b334
mov eax, dword [ebp - 8]
mov ax, word [eax + esi*2 - 2]
cmp ax, word [0x679638]
jne 0x46b32f
lea eax, [ebp - 8]
mov edx, esi
call sub.rtl70.bpl__System__WStrSetLength_qqrr17System_WideStringi
mov bl, 1
jmp 0x46b334
dec esi
test esi, esi
jne 0x46b310
test bl, bl
je 0x46b519
xor eax, eax
mov dword [ebp - 0x274], eax
lea eax, [ebp - 0x274]
push eax
lea eax, [ebp - 0x284]
mov ecx, 0x46b57c
mov edx, dword [ebp - 8]
call sub.rtl70.bpl__System__WStrCat3_qqrr17System_WideStringx17System_WideStringt2
mov eax, dword [ebp - 0x284]
call sub.rtl70.bpl__System__WStrToPWChar_qqrx17System_WideString
push eax
call sub.kernel32.dll_FindFirstFileW
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x46b519
xor eax, eax
push ebp
push 0x46b512
push dword fs:[eax]
mov dword fs:[eax], esp
test byte [ebp - 0x274], 0x10
je 0x46b4e3
lea eax, [ebp - 0x288]
lea edx, [ebp - 0x248]
mov ecx, 0x104
call sub.rtl70.bpl__System__WStrFromWArray_qqrr17System_WideStringpbi
mov eax, dword [ebp - 0x288]
mov edx, 0x46b588
call sub.rtl70.bpl__System__WStrCmp_qqrv
je 0x46b4e3
lea eax, [ebp - 0x28c]
lea edx, [ebp - 0x248]
mov ecx, 0x104
call sub.rtl70.bpl__System__WStrFromWArray_qqrr17System_WideStringpbi
mov eax, dword [ebp - 0x28c]
mov edx, 0x46b590
call sub.rtl70.bpl__System__WStrCmp_qqrv
je 0x46b4e3
push 1
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x46b4dc
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push 0
push 0
lea eax, [ebp - 0x18]
push eax
push 0
push 0
mov eax, dword [ebp - 0x24]
push eax
push 0
push 0
lea eax, [ebp - 0x248]
push eax
push 0
call sym.P_Interface.bpl__Jcldotnet_GetRequestedRuntimeInfo_qqspbt1t1xuixuit1xuiruit1xuit8
and eax, 0x1fff
cmp eax, 0x7a
jne 0x46b4c5
cmp dword [ebp - 0x18], 0
jbe 0x46b4c5
cmp dword [ebp - 0x1c], 0
jbe 0x46b4c5
mov edx, dword [ebp - 0x18]
dec edx
lea eax, [ebp - 0x10]
call sub.rtl70.bpl__System__WStrSetLength_qqrr17System_WideStringi
mov edx, dword [ebp - 0x1c]
dec edx
lea eax, [ebp - 0x14]
call sub.rtl70.bpl__System__WStrSetLength_qqrr17System_WideStringi
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
call sub.rtl70.bpl__System__WStrToPWChar_qqrx17System_WideString
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x10]
call sub.rtl70.bpl__System__WStrToPWChar_qqrx17System_WideString
push eax
push 0x40
push 0
push 0
lea eax, [ebp - 0x248]
push eax
push 0
call sym.P_Interface.bpl__Jcldotnet_GetRequestedRuntimeInfo_qqspbt1t1xuixuit1xuiruit1xuit8
test eax, eax
jne 0x46b4c5
lea eax, [ebp - 0x290]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call sub.rtl70.bpl__System__WStrCat3_qqrr17System_WideStringx17System_WideStringt2
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call sym.P_Interface.bpl__Jclwidestrings_TJclWideStrings_SetValue_qqrx17System_WideStringt1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46b4e3
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_SetErrorMode
ret
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne 0x46b38a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46b519
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindClose
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46b563
lea eax, [ebp - 0x290]
mov edx, 5
call sub.rtl70.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 0x27c]
mov edx, 2
call sub.rtl70.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x14]
mov edx, 2
call sub.rtl70.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 8]
call sub.rtl70.bpl__System__WStrClr_qqrpv
ret