Function at 0x10009360
Capabilities:
Enumerate files on windows
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x264
mov eax, dword [0x1001e2c0]
xor eax, esp
mov dword [esp + 0x260], eax
push ebx
push esi
push edi
push 0x104
lea eax, [esp + 0x164]
push 0
mov esi, 0x490
push eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], 0
call fcn.100126c0
add esp, 0xc
push 0x104
lea ecx, [esp + 0x164]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x160]
push 0x5c
push edx
call fcn.1000c470
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x100093f9
lea eax, [esp + 0x160]
push 0x2f
push eax
call fcn.1000c470
add esp, 8
test eax, eax
jne 0x100093f7
lea ecx, [esp + 0x160]
mov dword [esp + 0x14], ecx
mov ebx, ecx
jmp 0x100093fe
mov ebx, eax
inc ebx
mov dword [esp + 0x14], ebx
mov edx, 0x2a
mov word [ebx], dx
js 0x1000941f
jns 0x1000941f
dec ecx
stosd dword es:[edi], eax
adc ah, dh
inc edx
fld dword [eax - 0x6d32cc08]
push 0x20
push 0x20
mov ecx, 0x1001ef90
call fcn.10009890
add esp, 4
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x164]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
mov dword [esp + 0x18], edi
cmp edi, 0xffffffff
je 0x100095bf
test byte [esp + 0x20], 0x10
jne 0x1000955f
push 0x1001ef90
lea edx, [esp + 0x50]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x1000955f
lea eax, [esp + 0x4c]
mov edx, ebx
mov ecx, eax
sub edx, ecx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10009480
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea edx, [esp + 0x178]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x1000955f
test byte [edx - 0x7b000000], ch
test byte [edi], 0x84
mov byte [0x6a000000], al
add byte [esi - 1], dl
adc eax, sym.imp.KERNEL32.dll_GetFileSize
test esi, esi
je 0x1000955f
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push eax
mov dword [0x1002004c], eax
call fcn.1000a965
mov edi, eax
add esp, 4
mov dword [0x10020050], edi
test edi, edi
je 0x10009554
mov ebx, dword [0x1002004c]
push ebx
push 0
push edi
call fcn.100126c0
add esp, 0xc
push 0
lea eax, [esp + 0x14]
push eax
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10009550
adc byte [ebp - 0x74b58b40], al
cmp eax, 0x10020050
mov edi, dword [0x10020050]
jne 0x1000952c
je 0x1000952c
or eax, dword [esi]
push ds
insb byte es:[edi], dx
mov ah, 0x73
fist word [esi - 0x51]
cwde
jo 0x10009501
jp 0x10009528
loope 0x1000959a
dec eax
inc eax
mov eax, dword [0x45a2a654]
dec edx
pop esi
jecxz 0x100094b0
sar byte [ebx + 0x50464844], 0x39
pop edi
sbb al, 0x74
pop ebp
mov ebx, 0x50464844
cmp dword [edi + 0x1c], ebx
je 0x10009593
mov ecx, dword [0x1002004c]
push ecx
mov ecx, dword [0x10020050]
call fcn.10009890
add esp, 4
cmp dword [edi + 0x1c], ebx
je 0x10009593
mov ebx, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x18]
lea edx, [esp + 0x20]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x10009450
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.1000a8ab
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x18]
push edi
mov dword [esp + 0x20], 0
and al, 0x20
add byte [eax], al
add byte [eax], al
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.1000a8ab
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x26c]
pop edi
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.1000a8ab
mov esp, ebp
pop ebp
ret