Function at 0x5515f0
Capabilities:
Enumerate files on windows

Disassembly:
sub esp, 0x108
mov edx, dword [0x6992ec]
push ebp
mov ebp, dword [esp + 0x110]
push edi
xor eax, eax
mov byte [esp + 0x10], 0
mov ecx, 0x3f
lea edi, [esp + 0x11]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor al, al
test dx, dx
mov dword [esp + 8], edx
mov byte [esp + 0xf], al
jl 0x551887
push ebx
push esi
nop
movsx esi, dx
mov eax, dword [esi*4 + 0x6993f0]
cmp eax, 0xffffffff
jne 0x5517a4
mov cx, word [0x6992ee]
lea edx, [esp + 0x18]
mov eax, 0x6992f0
call fcn.00551ab0
lea eax, [esp + 0x18]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x551660
sub eax, edx
lea ecx, [esp + eax + 0x18]
lea eax, [esp + 0x18]
cmp ecx, eax
je 0x55167c
mov byte [ecx], 0x5c
inc ecx
mov byte [ecx], 0
lea eax, [esp + 0x18]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x551683
sub eax, edi
mov edx, 0xff
sub edx, eax
push edx
push 0x66b908
push ecx
call fcn.0061f130
add esp, 0xc
push 0x699430
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x11f], 0
call dword [sym.imp.kernel32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esi*4 + 0x6993f0], eax
je 0x5517d1
test byte [0x699430], 0x10
je 0x5517e1
mov edi, 0x66b904
mov esi, 0x69945c
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5517ea
mov edi, 0x66b900
mov esi, 0x69945c
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5517ea
mov al, byte [0x6992e8]
test al, 2
je 0x55174b
mov dx, word [0x6992ee]
xor eax, eax
mov ecx, 0x43
mov edi, ebp
rep stosd dword es:[edi], eax
lea esi, [ebp + 8]
mov ebx, 0x6992f0
mov dword [ebp], 0x66696c6f
mov word [ebp + 6], dx
call fcn.005518a0
mov ebx, 0x69945c
call fcn.005518a0
mov al, byte [0x6992e8]
test al, 1
je 0x55176b
test al, 2
jne 0x551767
mov ebx, 0x69945c
mov esi, 0x6992f0
call fcn.005518a0
mov al, byte [0x6992e8]
inc dword [esp + 0x10]
test al, 2
je 0x5517ea
mov eax, dword [esp + 0x120]
test eax, eax
je 0x55178b
mov ecx, dword [0x699444]
mov dword [eax], ecx
mov edx, dword [0x699448]
mov dword [eax + 4], edx
mov cx, word [esp + 0x10]
pop esi
pop ebx
pop edi
mov al, 1
mov word [0x6992ec], cx
pop ebp
add esp, 0x108
ret
push 0x699430
push eax
call dword [sym.imp.kernel32.dll_FindNextFileA]
test eax, eax
jne 0x5516ca
mov ecx, dword [esi*4 + 0x6993f0]
push ecx
call dword [sym.imp.kernel32.dll_FindClose]
mov dword [esi*4 + 0x6993f0], 0xffffffff
mov ebx, 0x6992f0
call fcn.00551960
dec dword [esp + 0x10]
jmp 0x5517ea
test byte [0x6992e8], 2
je 0x55180d
mov edx, dword [esp + 0x10]
test dx, dx
jge 0x551630
mov al, byte [esp + 0x17]
pop esi
pop ebx
pop edi
mov word [0x6992ec], dx
pop ebp
add esp, 0x108
ret
mov dx, word [0x6992ee]
xor eax, eax
mov ecx, 0x43
mov edi, ebp
rep stosd dword es:[edi], eax
lea esi, [ebp + 8]
mov ebx, 0x6992f0
mov dword [ebp], 0x66696c6f
mov word [ebp + 6], dx
call fcn.005518a0
test byte [ebp + 4], 1
je 0x551844
mov ebx, esi
call fcn.00551960
mov ebx, 0x69945c
call fcn.005518a0
mov eax, dword [esp + 0x120]
or byte [ebp + 4], 1
test eax, eax
je 0x55186e
mov edx, dword [0x699444]
mov dword [eax], edx
mov ecx, dword [0x699448]
mov dword [eax + 4], ecx
mov dx, word [esp + 0x10]
pop esi
pop ebx
pop edi
mov al, 1
mov word [0x6992ec], dx
pop ebp
add esp, 0x108
ret
pop edi
mov word [0x6992ec], dx
pop ebp
add esp, 0x108
ret