Function at 0x559510
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6a5d08
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x75868c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0xa4], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0xac], edi
call fcn.00559ca0
mov dword [ebp - 0x28], 0
mov ecx, esi
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xffffffff
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x559580
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00479ba0
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 4], 1
test esi, esi
je 0x5596e2
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x28]
cmp ebx, 0x10
cmovae eax, ecx
setae dl
mov al, byte [esi + eax - 1]
cmp al, 0x5c
je 0x5596e2
cmp esi, ebx
jae 0x5595e0
lea eax, [esi + 1]
test dl, dl
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovne eax, ecx
mov word [eax + esi], 0x5c
jmp 0x5596dc
mov ecx, SysReAllocString
mov eax, ecx
sub eax, esi
cmp eax, 1
jb 0x559c88
lea edi, [esi + 1]
or edi, 0xf
cmp edi, ecx
jbe 0x55960e
mov eax, connect
mov edi, ecx
push eax
call fcn.0047b730
add esp, 4
jmp 0x55965a
mov eax, ebx
shr eax, 1
sub ecx, eax
cmp ebx, ecx
jbe 0x55962d
mov eax, connect
mov edi, SysReAllocString
push eax
call fcn.0047b730
add esp, 4
jmp 0x55965a
add eax, ebx
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x559649
push eax
call fcn.0047b730
add esp, 4
jmp 0x55965a
test eax, eax
je 0x559658
push eax
call fcn.00617a38
add esp, 4
jmp 0x55965a
xor eax, eax
mov dword [ebp - 0x14], edi
lea ecx, [esi + 1]
mov dword [ebp - 0xa8], eax
lea edi, [eax + esi]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xb0], edi
push esi
cmp ebx, 0x10
jb 0x5596bb
mov edi, dword [ebp - 0x28]
push edi
push eax
call fcn.00645880
mov eax, dword [ebp - 0xb0]
inc ebx
add esp, 0xc
mov word [eax], 0x5c
cmp ebx, 0x1000
jb 0x5596af
mov ecx, dword [edi - 4]
add ebx, 0x23
sub edi, ecx
lea eax, [edi - 4]
cmp eax, 0x1f
ja 0x559c8d
mov edi, ecx
push ebx
push edi
call fcn.00617a75
add esp, 8
jmp 0x5596cd
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.00645880
add esp, 0xc
mov word [edi], 0x5c
mov eax, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xac]
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp ebx, 0x10
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push esi
push eax
cmp esi, 0xf
ja 0x559726
lea eax, [ebp - 0x40]
mov dword [ebp - 0x30], esi
push eax
call fcn.00645880
add esp, 0xc
mov byte [ebp + esi - 0x40], 0
jmp 0x559735
push dword [ebp - 0xb0]
lea ecx, [ebp - 0x40]
push esi
call fcn.0047b3c0
mov edx, dword [ebp - 0x2c]
mov eax, edx
mov ecx, dword [ebp - 0x30]
sub eax, ecx
push 3
push 0x6f2260
cmp eax, 3
jb 0x55976c
cmp edx, 0x10
lea esi, [ebp - 0x40]
lea eax, [ecx + 3]
cmovae esi, dword [ebp - 0x40]
add esi, ecx
mov dword [ebp - 0x30], eax
push esi
call fcn.00645880
add esp, 0xc
mov byte [esi + 3], 0
jmp 0x55977c
push dword [ebp - 0xb0]
lea ecx, [ebp - 0x40]
push 3
call fcn.0047b3c0
mov ecx, dword [ebp - 0xa4]
lea eax, [ebp - 0x40]
add ecx, 4
push ecx
or dword [ecx], 0x10
cmp dword [ebp - 0x2c], 0x10
cmovae eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, dword [ebp - 0xa4]
mov dword [esi + 0x144], eax
cmp eax, 0xffffffff
je 0x559bee
lea ebx, [esi + 0x30]
mov dword [ebp - 0xa8], ebx
nop dword [eax]
cmp byte [ebx], 0x2e
je 0x559bd6
mov ecx, esi
call fcn.00559cf0
test al, al
je 0x559802
mov ecx, dword [ebp - 0xa4]
cmp dword [ebp - 0x14], 0x10
push ebx
mov eax, dword [ecx]
mov edx, dword [eax + 4]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push edi
call edx
test al, al
je 0x559c5a
mov esi, dword [ebp - 0xa4]
jmp 0x559bd6
push 0x2e
push ebx
call fcn.00645190
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x559bd3
cmp dword [ebp + 0x10], 0
je 0x559b3b
mov dword [ebp - 0x70], 0
mov ecx, edi
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov byte [ebp - 4], 3
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x559843
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x70]
call fcn.00479ba0
cmp dword [ebp - 0x5c], 0x10
lea edi, [ebp - 0x70]
mov eax, dword [ebp - 0x60]
cmovae edi, dword [ebp - 0x70]
test eax, eax
je 0x55987e
push eax
push 0x3b
push edi
call fcn.00645f60
mov esi, eax
add esp, 0xc
test esi, esi
je 0x55987e
sub esi, edi
jmp 0x559881
or esi, 0xffffffff
test esi, esi
jle 0x559b6e
mov dword [ebp - 0x58], 0
mov edi, dword [ebp - 0xac]
mov ecx, edi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov byte [ebp - 4], 5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5598b1
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x58]
call fcn.00479ba0
push esi
push 0
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x58]
call fcn.004a99e0
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x559912
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559908
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov dword [ebp - 0x58], 0
mov ecx, edi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov byte [ebp - 4], 9
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x559934
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x58]
call fcn.00479ba0
mov ecx, edi
mov byte [ebp - 4], 0xb
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x559950
sub ecx, edx
lea eax, [esi + 1]
push ecx
push eax
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x58]
call fcn.004a99e0
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x5599a5
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x55999b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
lea esi, [ebx + 1]
push esi
lea ecx, [ebp - 0xa0]
call fcn.0048bc30
test eax, eax
je 0x559a8e
push esi
lea ecx, [ebp - 0x88]
call fcn.0048bc30
test eax, eax
je 0x559a8e
mov edx, dword [ebp - 0x74]
cmp edx, 0x10
jb 0x559a07
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5599fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov edx, dword [ebp - 0x8c]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x559a45
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559a3b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x559a7d
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559a73
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov esi, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xa8]
jmp 0x559bd6
mov edx, dword [ebp - 0x74]
cmp edx, 0x10
jb 0x559ac5
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559abb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov edx, dword [ebp - 0x8c]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x559b03
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559af9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x559b3b
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559b31
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov ecx, dword [ebp - 0xa4]
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ecx]
lea ebx, [ecx + 0x30]
push ebx
mov edx, dword [eax + 8]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call edx
test al, al
je 0x559c5a
mov edi, dword [ebp - 0xac]
mov esi, dword [ebp - 0xa4]
jmp 0x559bd6
mov edi, dword [ebp - 0xac]
lea eax, [ebx + 1]
push edi
push eax
call fcn.00654754
add esp, 8
test eax, eax
je 0x559b03
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x559a7d
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559bbb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
mov esi, dword [ebp - 0xa4]
add esp, 8
mov ebx, dword [ebp - 0xa8]
jmp 0x559bd6
lea ebx, [esi + 0x30]
lea eax, [esi + 4]
push eax
push dword [esi + 0x144]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x5597c0
mov bl, 1
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x559c20
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559c16
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
push edx
push ecx
call fcn.00617a75
add esp, 8
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 0x10
jb 0x559c68
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x559c5e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x559c8d
jmp 0x559c5e
xor bl, bl
jmp 0x559bf0
push edx
push ecx
call fcn.00617a75
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00617a25
mov esp, ebp
pop ebp
ret 0xc
call fcn.00475380
call fcn.006533c4
int3