Function at 0x4511a0
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x519ca9
mov eax, dword fs:[0]
push eax
sub esp, 0xa24
mov eax, dword [0x55b098]
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 edi, ecx
mov dword [ebp - 0x9b8], edi
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x958], ebx
mov dword [ebp - 0x994], esi
mov dword [ebp - 0x97c], 0xf
mov dword [ebp - 0x980], ebx
mov byte [ebp - 0x990], bl
cmp byte [esi], bl
jne 0x451205
xor ecx, ecx
jmp 0x451219
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451210
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x990]
call fcn.004488b0
push 5
push 0
push str.Soul
lea ecx, [ebp - 0x990]
call fcn.0044d540
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x97c]
setne byte [ebp - 0x951]
cmp eax, 0x10
jb 0x451262
inc eax
lea ecx, [ebp - 0x990]
push eax
push dword [ebp - 0x990]
call fcn.00448ce0
cmp byte [ebp - 0x951], bl
jne 0x4512ac
push esi
lea eax, [ebp - 0x810]
push str._s.
push eax
call fcn.00450b70
add esp, 0xc
lea eax, [ebp - 0x950]
push eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x998], eax
cmp eax, 0xffffffff
jne 0x4512b3
push esi
push str.Path_not_found:___s__n
call fcn.004474f0
add esp, 8
xor al, al
jmp 0x4519cc
mov ecx, 0x550a08
lea eax, [ebp - 0x924]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4512e0
test dl, dl
je 0x4512dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4512e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4512c0
xor eax, eax
jmp 0x4512e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4519a3
mov ecx, 0x550a70
lea eax, [ebp - 0x924]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x451318
test dl, dl
je 0x451314
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x451318
add eax, 2
add ecx, 2
test dl, dl
jne 0x4512f8
xor eax, eax
jmp 0x45131d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4519a3
lea eax, [ebp - 0x924]
push eax
push esi
lea eax, [ebp - 0x810]
push str._s_s
push eax
call fcn.00450b70
add esp, 0x10
mov dword [ebp - 0x97c], 0xf
cmp byte [ebp - 0x810], 0
mov dword [ebp - 0x980], 0
mov byte [ebp - 0x990], 0
jne 0x451369
xor ecx, ecx
jmp 0x45137b
lea ecx, [ebp - 0x810]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451372
sub ecx, edx
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x990]
call fcn.004488b0
push 5
push 0
push str.Soul
lea ecx, [ebp - 0x990]
call fcn.0044d540
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x97c]
setne byte [ebp - 0x951]
cmp eax, 0x10
jb 0x4513ca
inc eax
lea ecx, [ebp - 0x990]
push eax
push dword [ebp - 0x990]
call fcn.00448ce0
cmp byte [ebp - 0x951], 0
jne 0x4519a3
test byte [ebp - 0x950], 0x10
je 0x4513ee
lea eax, [ebp - 0x810]
mov ecx, edi
push eax
call fcn.004511a0
cmp byte [ebp - 0x924], 0
mov dword [ebp - 0x97c], 0xf
mov dword [ebp - 0x980], 0
mov byte [ebp - 0x990], 0
jne 0x451416
xor ecx, ecx
jmp 0x451429
lea ecx, [ebp - 0x924]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451420
sub ecx, edx
push ecx
lea eax, [ebp - 0x924]
push eax
lea ecx, [ebp - 0x990]
call fcn.004488b0
mov dword [ebp - 4], 0
or ebx, 1
mov ah, 0x53
mov dword [ebp - 0x968], ebx
mov dword [ebp - 0x958], ebx
mov al, 0x3b
mov bl, 0x7d
mov byte [ebp - 0x96b], 0
mov cl, 0x37
mov byte [ebp - 0x970], ah
mov dl, 0x21
mov byte [ebp - 0x96b], 0
xor bl, ah
xor al, ah
xor cl, ah
mov byte [ebp - 0x96f], bl
xor dl, ah
mov byte [ebp - 0x96e], al
mov byte [ebp - 0x96d], cl
mov byte [ebp - 0x96c], dl
test bl, bl
jne 0x451498
xor ecx, ecx
jmp 0x4514aa
lea ecx, [ebp - 0x96f]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4514a1
sub ecx, edx
push ecx
push 0
lea eax, [ebp - 0x96f]
push eax
lea ecx, [ebp - 0x990]
call fcn.0044d540
cmp eax, 0xffffffff
jne 0x4516cc
lea eax, [ebp - 0x924]
push eax
lea ecx, [ebp - 0xa30]
call fcn.0044b480
mov esi, eax
mov dword [ebp - 4], 1
mov ah, 0x63
mov ecx, dword [ebp - 0x968]
xor al, al
or ecx, 2
mov byte [ebp - 0x973], al
mov dword [ebp - 0x968], ecx
mov bl, 0x4d
mov dword [ebp - 0x958], ecx
mov dl, 0x11
mov cl, 0x10
mov byte [ebp - 0x978], ah
xor bl, ah
mov byte [ebp - 0x973], 0
xor cl, ah
mov byte [ebp - 0x977], bl
xor dl, ah
mov byte [ebp - 0x976], cl
xor al, ah
mov byte [ebp - 0x975], dl
mov byte [ebp - 0x974], al
test bl, bl
jne 0x45153d
xor ecx, ecx
jmp 0x45154f
lea ecx, [ebp - 0x977]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451546
sub ecx, edx
push ecx
push 0
lea eax, [ebp - 0x977]
mov ecx, esi
push eax
call fcn.0044d540
cmp eax, 0xffffffff
jne 0x4516cc
lea eax, [ebp - 0x924]
push eax
lea ecx, [ebp - 0xa18]
call fcn.0044b480
mov dword [ebp - 4], 2
mov dl, 0x35
mov ebx, dword [ebp - 0x968]
mov cl, 0x1b
xor cl, dl
mov byte [ebp - 0x962], 0
push ecx
mov byte [ebp - 0x963], cl
or ebx, 4
lea ecx, [ebp - 0x963]
mov dword [ebp - 0x958], ebx
push ecx
mov ecx, eax
mov byte [ebp - 0x964], dl
mov byte [ebp - 0x962], 0
call fcn.00454230
cmp eax, 0xffffffff
je 0x4516d2
lea eax, [ebp - 0x924]
push eax
lea ecx, [ebp - 0xa00]
call fcn.0044b480
mov esi, eax
mov al, 0x2e
mov dword [ebp - 4], 3
or ebx, 8
mov byte [ebp - 0x95c], al
xor cl, cl
mov dword [ebp - 0x958], ebx
xor cl, al
mov byte [ebp - 0x95a], 0
mov byte [ebp - 0x95b], cl
jne 0x45160c
xor ecx, ecx
jmp 0x45161e
lea ecx, [ebp - 0x95b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451615
sub ecx, edx
cmp dword [esi + 0x14], 0x10
lea edx, [esi + 0x10]
jb 0x451629
mov esi, dword [esi]
mov edx, dword [edx]
lea eax, [ebp - 0x95b]
push ecx
push eax
mov ecx, esi
call fcn.0044d4b0
add esp, 8
test eax, eax
je 0x4516d2
lea eax, [ebp - 0x924]
push eax
lea ecx, [ebp - 0x9e8]
call fcn.0044b480
mov dl, 2
mov byte [ebp - 0x95d], 0
mov esi, eax
mov byte [ebp - 0x95d], 0
mov al, 0x2c
mov cl, dl
xor dl, al
mov byte [ebp - 0x960], al
xor cl, al
mov byte [ebp - 0x95f], dl
or ebx, 0x10
mov byte [ebp - 0x95e], cl
test dl, dl
jne 0x45168e
xor ecx, ecx
jmp 0x4516a0
lea ecx, [ebp - 0x95f]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451697
sub ecx, edx
cmp dword [esi + 0x14], 0x10
lea edx, [esi + 0x10]
jb 0x4516ab
mov esi, dword [esi]
mov edx, dword [edx]
lea eax, [ebp - 0x95f]
push ecx
push eax
mov ecx, esi
call fcn.0044d4b0
add esp, 8
test eax, eax
je 0x4516d2
mov byte [ebp - 0x951], 1
jmp 0x4516d9
mov ebx, dword [ebp - 0x968]
mov byte [ebp - 0x951], 0
test bl, 0x10
je 0x45171a
mov eax, dword [ebp - 0x9d4]
and ebx, 0xffffffef
cmp eax, 0x10
jb 0x4516ff
inc eax
lea ecx, [ebp - 0x9e8]
push eax
push dword [ebp - 0x9e8]
call fcn.00448ce0
mov dword [ebp - 0x9d4], 0xf
mov dword [ebp - 0x9d8], 0
mov byte [ebp - 0x9e8], 0
test bl, 8
je 0x45175b
mov eax, dword [ebp - 0x9ec]
and ebx, 0xfffffff7
cmp eax, 0x10
jb 0x451740
inc eax
lea ecx, [ebp - 0xa00]
push eax
push dword [ebp - 0xa00]
call fcn.00448ce0
mov dword [ebp - 0x9ec], 0xf
mov dword [ebp - 0x9f0], 0
mov byte [ebp - 0xa00], 0
test bl, 4
je 0x45179c
mov eax, dword [ebp - 0xa04]
and ebx, 0xfffffffb
cmp eax, 0x10
jb 0x451781
inc eax
lea ecx, [ebp - 0xa18]
push eax
push dword [ebp - 0xa18]
call fcn.00448ce0
mov dword [ebp - 0xa04], 0xf
mov dword [ebp - 0xa08], 0
mov byte [ebp - 0xa18], 0
test bl, 2
je 0x4517dd
mov eax, dword [ebp - 0xa1c]
and ebx, 0xfffffffd
cmp eax, 0x10
jb 0x4517c2
inc eax
lea ecx, [ebp - 0xa30]
push eax
push dword [ebp - 0xa30]
call fcn.00448ce0
mov dword [ebp - 0xa1c], 0xf
mov dword [ebp - 0xa20], 0
mov byte [ebp - 0xa30], 0
mov dword [ebp - 4], 0xffffffff
and ebx, 0xfffffffe
mov eax, dword [ebp - 0x97c]
cmp eax, 0x10
jb 0x451805
inc eax
lea ecx, [ebp - 0x990]
push eax
push dword [ebp - 0x990]
call fcn.00448ce0
cmp byte [ebp - 0x951], 0
je 0x45199d
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x9d0]
call fcn.0044b480
mov esi, dword [ebp - 0x930]
mov dword [ebp - 4], 4
mov dword [ebp - 0x9a0], 0xf
mov dword [ebp - 0x9a4], 0
mov byte [ebp - 0x9b4], 0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x9d0]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x9b4]
call fcn.004489b0
mov eax, dword [ebp - 0x9bc]
mov dword [ebp - 0x99c], esi
cmp eax, 0x10
jb 0x45188a
inc eax
lea ecx, [ebp - 0x9d0]
push eax
push dword [ebp - 0x9d0]
call fcn.00448ce0
mov dword [ebp - 0x9bc], 0xf
mov dword [ebp - 0x9c0], 0
mov byte [ebp - 0x9d0], 0
lea esi, [edi + 8]
mov dword [ebp - 4], 6
mov edi, dword [esi + 4]
lea eax, [ebp - 0x9b4]
cmp eax, edi
jae 0x451928
mov eax, dword [esi]
lea ecx, [ebp - 0x9b4]
cmp eax, ecx
ja 0x451928
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x958], eax
cmp edi, dword [esi + 8]
jne 0x4518fa
push ecx
mov ecx, esi
call fcn.00454900
mov eax, dword [ebp - 0x958]
mov edi, dword [esi + 4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esi]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x958], eax
test edi, edi
je 0x451953
push eax
mov ecx, edi
call fcn.0044b400
mov ecx, dword [ebp - 0x958]
mov eax, dword [ecx + 0x18]
jmp 0x451950
cmp edi, dword [esi + 8]
jne 0x451935
push ecx
mov ecx, esi
call fcn.00454900
mov edi, dword [esi + 4]
test edi, edi
je 0x451953
lea eax, [ebp - 0x9b4]
mov ecx, edi
push eax
call fcn.0044b400
mov eax, dword [ebp - 0x99c]
mov dword [edi + 0x18], eax
add dword [esi + 4], 0x1c
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x9a0]
cmp eax, 0x10
jb 0x45197c
inc eax
lea ecx, [ebp - 0x9b4]
push eax
push dword [ebp - 0x9b4]
call fcn.00448ce0
mov edi, dword [ebp - 0x9b8]
mov dword [ebp - 0x9a0], 0xf
mov dword [ebp - 0x9a4], 0
mov byte [ebp - 0x9b4], 0
mov esi, dword [ebp - 0x994]
lea eax, [ebp - 0x950]
push eax
push dword [ebp - 0x998]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4512b3
push dword [ebp - 0x998]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov al, 1
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.004d7d33
mov esp, ebp
pop ebp
ret 4