Function at 0x559500
Capabilities:
Enumerate files on windows

Disassembly:
sub esp, 0x108
mov edx, dword [0x63a964]
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 0x559797
push ebx
push esi
nop
movsx esi, dx
mov eax, dword [esi*4 + 0x63aa68]
cmp eax, 0xffffffff
jne 0x5596b4
mov cx, word [0x63a966]
lea edx, [esp + 0x18]
mov eax, 0x63a968
call fcn.005599c0
lea eax, [esp + 0x18]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x559570
sub eax, edx
lea ecx, [esp + eax + 0x18]
lea eax, [esp + 0x18]
cmp ecx, eax
je 0x55958c
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 0x559593
sub eax, edi
mov edx, 0xff
sub edx, eax
push edx
push 0x6116fc
push ecx
call fcn.005c8ba0
add esp, 0xc
push 0x63aaa8
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 + 0x63aa68], eax
je 0x5596e1
test byte [0x63aaa8], 0x10
je 0x5596f1
mov edi, 0x5fe730
mov esi, 0x63aad4
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5596fa
mov edi, 0x6116f8
mov esi, 0x63aad4
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5596fa
mov al, byte [0x63a960]
test al, 2
je 0x55965b
mov dx, word [0x63a966]
xor eax, eax
mov ecx, 0x43
mov edi, ebp
rep stosd dword es:[edi], eax
lea esi, [ebp + 8]
mov ebx, 0x63a968
mov dword [ebp], 0x66696c6f
mov word [ebp + 6], dx
call fcn.005597b0
mov ebx, 0x63aad4
call fcn.005597b0
mov al, byte [0x63a960]
test al, 1
je 0x55967b
test al, 2
jne 0x559677
mov ebx, 0x63aad4
mov esi, 0x63a968
call fcn.005597b0
mov al, byte [0x63a960]
inc dword [esp + 0x10]
test al, 2
je 0x5596fa
mov eax, dword [esp + 0x120]
test eax, eax
je 0x55969b
mov ecx, dword [0x63aabc]
mov dword [eax], ecx
mov edx, dword [0x63aac0]
mov dword [eax + 4], edx
mov cx, word [esp + 0x10]
pop esi
pop ebx
pop edi
mov al, 1
mov word [0x63a964], cx
pop ebp
add esp, 0x108
ret
push 0x63aaa8
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x5595da
mov ecx, dword [esi*4 + 0x63aa68]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [esi*4 + 0x63aa68], 0xffffffff
mov ebx, 0x63a968
call fcn.00559870
dec dword [esp + 0x10]
jmp 0x5596fa
test byte [0x63a960], 2
je 0x55971d
mov edx, dword [esp + 0x10]
test dx, dx
jge 0x559540
mov al, byte [esp + 0x17]
pop esi
pop ebx
pop edi
mov word [0x63a964], dx
pop ebp
add esp, 0x108
ret
mov dx, word [0x63a966]
xor eax, eax
mov ecx, 0x43
mov edi, ebp
rep stosd dword es:[edi], eax
lea esi, [ebp + 8]
mov ebx, 0x63a968
mov dword [ebp], 0x66696c6f
mov word [ebp + 6], dx
call fcn.005597b0
test byte [ebp + 4], 1
je 0x559754
mov ebx, esi
call fcn.00559870
mov ebx, 0x63aad4
call fcn.005597b0
mov eax, dword [esp + 0x120]
or byte [ebp + 4], 1
test eax, eax
je 0x55977e
mov edx, dword [0x63aabc]
mov dword [eax], edx
mov ecx, dword [0x63aac0]
mov dword [eax + 4], ecx
mov dx, word [esp + 0x10]
pop esi
pop ebx
pop edi
mov al, 1
mov word [0x63a964], dx
pop ebp
add esp, 0x108
ret
pop edi
mov word [0x63a964], dx
pop ebp
add esp, 0x108
ret