Function at 0x10002c50
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1019407d
mov eax, dword fs:[0]
push eax
sub esp, 0x18c
mov eax, dword [0x10200e34]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x178], 0
cmp dword [eax + 0x14], 0x10
jb 0x10002c9e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x17c]
call fcn.10004300
mov dword [ebp - 4], 0
cmp dword [esi + 0x14], 0x10
jb 0x10002cb9
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x188]
call fcn.10004300
mov byte [ebp - 4], 1
or esi, 0xffffffff
mov eax, dword [ebp - 0x17c]
cmp dword [eax - 0xc], 0
je 0x10003127
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x10002cff
cmp ecx, dword [esi]
jne 0x10002cff
mov edi, esi
lock inc dword [eax]
jmp 0x10002d30
mov eax, dword [ecx]
push 1
push dword [esi + 4]
mov eax, dword [eax]
call eax
mov edi, eax
test edi, edi
je 0x1000318f
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
lea eax, [esi + 0x10]
mov ecx, dword [esi + 4]
inc ecx
push ecx
push eax
push ecx
lea eax, [edi + 0x10]
push eax
call fcn.100045a0
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x184], edi
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x17c]
mov edx, dword [eax - 0xc]
lea ecx, [edx - 1]
test ecx, ecx
js 0x10003185
cmp ecx, edx
jg 0x10003185
mov al, byte [ecx + eax]
cmp al, 0x5c
je 0x10002e08
mov esi, dword [edi - 0xc]
mov eax, 0x101db2a8
sub eax, edi
mov dword [ebp - 0x170], esi
push 1
push 0x101db2a8
mov dword [ebp - 0x16c], eax
call fcn.101706af
mov edx, eax
mov ecx, SysReAllocString
sub ecx, edx
mov dword [ebp - 0x174], edx
add esp, 8
cmp ecx, esi
jl 0x10003185
add esi, edx
js 0x10003185
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x10002dd1
push esi
lea ecx, [ebp - 0x184]
call fcn.10004500
mov edi, dword [ebp - 0x184]
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x16c]
cmp ecx, eax
ja 0x10002de5
add ecx, edi
jmp 0x10002dea
mov ecx, 0x101db2a8
push edx
push ecx
push edx
add eax, edi
push eax
call fcn.100045a0
add esp, 0x10
cmp esi, dword [edi - 8]
jg 0x10003185
mov dword [edi - 0xc], esi
mov byte [esi + edi], 0
lea eax, [edi - 0x10]
mov byte [ebp - 4], 3
mov ecx, dword [eax]
mov dword [ebp - 0x198], eax
test ecx, ecx
je 0x10002e28
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
test ecx, ecx
jne 0x10002e40
call fcn.100212a7
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
mov ecx, eax
test ecx, ecx
je 0x10003194
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x178], 1
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x170], esi
mov ecx, dword [eax - 0xc]
mov eax, dword [edi - 0xc]
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x16c], eax
lea edx, [eax + ecx]
test edx, edx
js 0x10003185
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x10002ea6
push edx
lea ecx, [ebp - 0x170]
call fcn.10004500
mov esi, dword [ebp - 0x170]
mov eax, dword [ebp - 0x16c]
push eax
push edi
push eax
push esi
call fcn.100045a0
mov eax, dword [ebp - 0x174]
push eax
push dword [ebp - 0x180]
push eax
mov eax, dword [ebp - 0x16c]
add eax, esi
push eax
call fcn.100045a0
mov eax, dword [ebp - 0x16c]
add esp, 0x20
add eax, dword [ebp - 0x174]
cmp eax, dword [esi - 8]
jg 0x10003185
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
lea eax, [ebp - 0x168]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x170], eax
add esi, 0xfffffff0
mov byte [ebp - 4], 2
or ecx, 0xffffffff
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x10002f20
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x170]
cmp esi, 0xffffffff
je 0x100030ff
xor esi, esi
mov dword [ebp - 0x16c], esi
mov dword [ebp - 0x178], esi
nop dword [eax]
test byte [ebp - 0x168], 0x10
mov dword [ebp - 0x194], esi
jne 0x100030de
mov byte [ebp - 4], 4
mov ecx, dword [edi - 0x10]
test ecx, ecx
je 0x10002f6b
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
test ecx, ecx
jne 0x10002f83
call fcn.100212a7
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
mov ecx, eax
test ecx, ecx
je 0x10003194
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea ecx, [ebp - 0x13c]
lea edx, [ecx + 1]
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x16c]
or eax, 2
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x178], eax
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10002fb0
mov eax, dword [edi - 0xc]
sub ecx, edx
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x16c], eax
lea edx, [ecx + eax]
mov dword [ebp - 0x18c], edx
test edx, edx
js 0x10003185
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x10002ffc
push edx
lea ecx, [ebp - 0x174]
call fcn.10004500
mov esi, dword [ebp - 0x174]
mov eax, dword [ebp - 0x16c]
push eax
push edi
push eax
push esi
call fcn.100045a0
mov eax, dword [ebp - 0x180]
lea ecx, [ebp - 0x13c]
push eax
push ecx
push eax
mov eax, dword [ebp - 0x16c]
add eax, esi
push eax
call fcn.100045a0
mov eax, dword [ebp - 0x18c]
add esp, 0x20
cmp eax, dword [esi - 8]
jg 0x10003185
mov dword [esi - 0xc], eax
lea ecx, [ebp - 0x28]
push esi
mov byte [eax + esi], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10003640
mov ecx, dword [ebp - 0x190]
mov byte [ebp - 4], 5
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x10003085
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [eax + 0x10], xmm0
add dword [ecx + 4], 0x18
jmp 0x100030a7
lea edx, [ebp - 0x28]
push edx
push eax
call fcn.10003ae0
cmp dword [ebp - 0x14], 0x10
jb 0x100030a7
push dword [ebp - 0x28]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x194]
add esi, 0xfffffff0
and eax, 0xfffffffd
mov byte [ebp - 4], 2
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x178], eax
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100030d8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
push eax
push dword [ebp - 0x170]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x10002f40
mov esi, dword [ebp - 0x170]
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [ebp - 0x198]
or esi, 0xffffffff
mov byte [ebp - 4], 1
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10003127
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x188]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10003148
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x17c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x1000316a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10152612
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.10004620
call fcn.100044b0
push 0x80004005
call fcn.10004620
int3