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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x100a3b78]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0xc46e501e
lea eax, [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [0x100a4730]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
sub eax, 0x8e70ad2b
je 0x10031c89
jmp 0x100316b0
mov eax, dword [ebp - 0x2c]
sub eax, 0x94f39a9e
je 0x10031cce
jmp 0x100316c3
mov eax, dword [ebp - 0x2c]
sub eax, 0x9a1e4219
je 0x10031eb1
jmp 0x100316d6
mov eax, dword [ebp - 0x2c]
sub eax, 0x9e70f6ff
je 0x10031cc0
jmp 0x100316e9
mov eax, dword [ebp - 0x2c]
sub eax, 0xbb1aee11
je 0x10031d80
jmp 0x100316fc
mov eax, dword [ebp - 0x2c]
sub eax, 0xbe5deab9
je 0x10031ef3
jmp 0x1003170f
mov eax, dword [ebp - 0x2c]
sub eax, 0xc3909181
je 0x10031b39
jmp 0x10031722
mov eax, dword [ebp - 0x2c]
sub eax, 0xc46e501e
je 0x100318dc
jmp 0x10031735
mov eax, dword [ebp - 0x2c]
sub eax, 0xc7ac6279
je 0x10031adf
jmp 0x10031748
mov eax, dword [ebp - 0x2c]
sub eax, 0xccd8e655
je 0x10031ad1
jmp 0x1003175b
mov eax, dword [ebp - 0x2c]
sub eax, 0xda5a7e74
je 0x10031dc2
jmp 0x1003176e
mov eax, dword [ebp - 0x2c]
sub eax, 0xde42e2fa
je 0x10031c0b
jmp 0x10031781
mov eax, dword [ebp - 0x2c]
sub eax, 0xdecb0fd7
je 0x10031e8c
jmp 0x10031794
mov eax, dword [ebp - 0x2c]
sub eax, 0xe144ed2c
je 0x10031f3b
jmp 0x100317a7
mov eax, dword [ebp - 0x2c]
sub eax, 0xe82f7a64
je 0x10031b71
jmp 0x100317ba
mov eax, dword [ebp - 0x2c]
sub eax, 0xec1d338b
je 0x10031dd0
jmp 0x100317cd
mov eax, dword [ebp - 0x2c]
sub eax, 0x48644c6
je 0x10031e53
jmp 0x100317e0
mov eax, dword [ebp - 0x2c]
sub eax, 0x12717b1e
je 0x10031b01
jmp 0x100317f3
mov eax, dword [ebp - 0x2c]
sub eax, 0x1b8a5cfd
je 0x10031db4
jmp 0x10031806
mov eax, dword [ebp - 0x2c]
sub eax, 0x1d02a543
je 0x10031ebf
jmp 0x10031819
mov eax, dword [ebp - 0x2c]
sub eax, 0x2686fa88
je 0x10031c19
jmp 0x1003182c
mov eax, dword [ebp - 0x2c]
sub eax, 0x3677452e
je 0x10031a15
jmp 0x1003183f
mov eax, dword [ebp - 0x2c]
sub eax, 0x4142a4ca
je 0x10031e45
jmp 0x10031852
mov eax, dword [ebp - 0x2c]
sub eax, 0x4ae93837
je 0x100318f9
jmp 0x10031865
mov eax, dword [ebp - 0x2c]
sub eax, 0x59a2829c
je 0x10031c50
jmp 0x10031878
mov eax, dword [ebp - 0x2c]
sub eax, 0x5ce24657
je 0x10031ea3
jmp 0x1003188b
mov eax, dword [ebp - 0x2c]
sub eax, 0x6268ff0c
je 0x10031f24
jmp 0x1003189e
mov eax, dword [ebp - 0x2c]
sub eax, 0x6b37231b
je 0x10031d4c
jmp 0x100318b1
mov eax, dword [ebp - 0x2c]
sub eax, 0x709dea85
je 0x10031e06
jmp 0x100318c4
mov eax, dword [ebp - 0x2c]
sub eax, 0x7bd8a91f
je 0x10031e37
jmp 0x100318d7
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov ecx, 0x3677452e
mov edx, 0x4ae93837
cmp esi, 0
cmove ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov cl, byte [0x100a00ef]
xor cl, 0x36
mov byte [0x100a00f7], cl
mov cl, byte [0x100a00f0]
xor cl, 0xac
mov byte [0x100a00f8], cl
mov cl, byte [0x100a00f1]
xor cl, 0x41
mov byte [0x100a00f9], cl
mov cl, byte [0x100a00f2]
xor cl, 0x7a
mov byte [0x100a00fa], cl
mov cl, byte [0x100a00f3]
xor cl, 0xc6
mov byte [0x100a00fb], cl
mov cl, byte [0x100a00f4]
xor cl, 0x8c
mov byte [0x100a00fc], cl
mov cl, byte [0x100a00f5]
xor cl, 0x1f
mov byte [0x100a00ff], cl
mov cl, byte [0x100a00f6]
xor cl, 0xf0
mov byte [0x100a0100], cl
mov cl, byte [0x100a00da]
xor cl, 0x35
mov byte [0x100a00e4], cl
mov cl, byte [0x100a00db]
xor cl, 0xfc
mov byte [0x100a00e5], cl
mov cl, byte [0x100a00dc]
xor cl, 0x2f
mov byte [0x100a00e6], cl
mov cl, byte [0x100a00dd]
xor cl, 0xbf
mov byte [0x100a00e7], cl
mov cl, byte [0x100a00de]
xor cl, 0xba
mov byte [0x100a00e8], cl
mov cl, byte [0x100a00df]
xor cl, 0x6c
mov byte [0x100a00e9], cl
mov cl, byte [0x100a00e0]
xor cl, 0x47
mov byte [0x100a00ea], cl
mov cl, byte [0x100a00e1]
xor cl, 0xc5
mov byte [0x100a00eb], cl
mov cl, byte [0x100a00e2]
xor cl, 0xb
mov byte [0x100a00ec], cl
mov cl, byte [0x100a00e3]
xor cl, 0xe2
mov byte [0x100a00ed], cl
mov dword [eax], 0x3677452e
jmp 0x10031f58
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
mov dword [0x100a4730], 1
push eax
mov eax, esp
mov dword [ebp - 0x50], eax
push eax
mov ecx, esp
mov dword [ebp - 0x4c], ecx
push eax
mov edx, esp
mov dword [ebp - 0x48], edx
sub esp, 0x140
mov eax, esp
mov dword [ebp - 0x44], eax
push eax
mov ebx, esp
mov dword [ebp - 0x30], ebx
sub esp, 0xc8
mov ebx, esp
mov dword [ebp - 0x34], ebx
sub esp, 0x1f4
mov ebx, esp
mov dword [ebp - 0x40], ebx
sub esp, 0xc
mov ebx, esp
mov dword [ebp - 0x3c], ebx
sub esp, 0xc
mov ebx, esp
mov dword [ebp - 0x38], ebx
mov dword [ecx], edi
mov dword [edx], esi
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ecx, dword [ebp - 0x34]
mov edx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], edx
lea eax, str.Program_Files
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc8
call fcn.1004c640
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov esi, dword [ecx]
mov edi, 0xffffffff
mov ecx, 0x6268ff0c
mov edx, 0xccd8e655
cmp esi, edi
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0xc7ac6279
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x44]
mov esi, dword [ecx]
and esi, 0x10
mov ecx, 0x48644c6
mov edx, 0x12717b1e
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov ecx, dword [ebp - 0x44]
add ecx, 0x2c
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1009548c
call fcn.1006a580
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x4142a4ca
mov edx, 0xc3909181
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov ecx, dword [ebp - 0x44]
add ecx, 0x2c
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1009548e
call fcn.1006a580
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x4142a4ca
mov edx, 0xe82f7a64
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
lea eax, [0x10095491]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030750
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x40]
add esp, 8
mov edx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1006a480
mov ecx, dword [ebp - 0x40]
add esp, 8
mov eax, dword [ebp - 0x44]
add eax, 0x2c
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1006a490
mov ecx, dword [ebp - 0x40]
add esp, 8
lea eax, [0x10095493]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1006a490
add esp, 8
mov eax, dword [ebp - 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.10031100
add esp, 4
mov bl, al
mov eax, dword [ebp - 0x1c]
mov ecx, 0x2686fa88
mov edx, 0xde42e2fa
test bl, 1
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d02a543
jmp 0x10031f58
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
add eax, 0x64
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031f60
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x59a2829c
mov edx, 0x94f39a9e
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
add eax, 0x96
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031f60
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x8e70ad2b
mov edx, 0x94f39a9e
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
add eax, 0x32
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031f60
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x9e70f6ff
mov edx, 0x94f39a9e
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d02a543
jmp 0x10031f58
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov edi, dword [0x100a00e4]
mov dword [esi], edi
mov edi, dword [0x100a00e8]
mov dword [esi + 4], edi
mov di, word [0x100a00ec]
mov word [esi + 8], di
mov bl, byte [0x100a00ee]
mov byte [esi + 0xa], bl
mov esi, dword [0x100a00f7]
mov dword [edx], esi
mov esi, dword [0x100a00fb]
mov dword [edx + 4], esi
mov si, word [0x100a00ff]
mov word [edx + 8], si
add eax, 0x64
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031f60
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0xec1d338b
mov edx, 0x6b37231b
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031f60
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0xbb1aee11
mov edx, 0xda5a7e74
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031f60
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x1b8a5cfd
mov edx, 0xda5a7e74
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d02a543
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0xec1d338b
jmp 0x10031f58
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031660
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x7bd8a91f
mov edx, 0x709dea85
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
sub esp, 8
mov dword [esp], 5
mov dword [esp + 4], 8
call fcn.10007cd0
mov ecx, dword [ebp - 0x50]
add esp, 8
mov eax, dword [ebp - 0x1c]
mov dword [ecx], 1
mov dword [eax], 0xe144ed2c
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x4142a4ca
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x9a1e4219
jmp 0x10031f58
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
mov edx, dword [eax]
add ecx, 0x2c
sub esp, 8
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1006a580
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0x5ce24657
mov edx, 0xdecb0fd7
cmp esi, 0
cmove ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
mov dword [ecx], 1
mov dword [eax], 0xe144ed2c
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x9a1e4219
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1d02a543
jmp 0x10031f58
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0xbe5deab9
mov edx, 0xc7ac6279
cmp esi, 0
cmovne ecx, edx
mov dword [eax], ecx
jmp 0x10031f58
sub esp, 4
mov dword [esp], 5
call fcn.10011160
mov eax, dword [ebp - 0x30]
add esp, 4
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x6268ff0c
jmp 0x10031f58
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
mov dword [ecx], 0
mov dword [eax], 0xe144ed2c
jmp 0x10031f58
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004977f
mov eax, dword [ebp - 0x54]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x1003169a