Function at 0x10008870
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x724
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x6f0], 0x208
test byte [0x100407a0], 8
jne 0x10008b28
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
test esi, esi
sete dl
test edi, edi
sete al
or dl, al
jne 0x100088b6
test ebx, ebx
jne 0x100088b6
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0x58
je 0x100088c8
xor esi, esi
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret 0x14
cmp dword [eax + 4], 0x300
jne 0x100088b6
lea esi, [ebp - 0x6f0]
lea ebx, [ebp - 0x66c]
test byte [0x100407a0], 8
jne 0x10008c00
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], 0
call sym._GetColorDirectoryW_12.part.0
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x10008b78
mov eax, dword [ebp - 0x6f0]
lea edx, [eax + 6]
xor eax, eax
cmp edx, 0x104
ja 0x10008b78
lea esi, [esi]
movzx edx, word [ebx + eax]
mov word [ebp + eax - 0x464], dx
add eax, 2
test dx, dx
jne 0x10008928
cmp word [ebp - 0x464], 0
lea edx, [ebp - 0x464]
je 0x10008959
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x10008950
xor eax, eax
mov ecx, 0x5c
jmp 0x1000896f
movzx ecx, word [eax + str.icm]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x10008968
lea eax, [ebp - 0x25c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x464]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x6f4], eax
sub esp, 8
cmp eax, 0xffffffff
je 0x100088b6
mov dword [esp + 4], 5
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
mov dword [ebp - 0x6fc], eax
test eax, eax
je 0x10008e5b
lea edi, [ebp - 0x230]
lea edx, [ebp - 0x6ec]
mov eax, edi
call sym._header_from_file
mov esi, eax
test eax, eax
jne 0x10008d62
mov dword [ebp - 0x70c], 0
mov dword [ebp - 0x6f8], 0
lea esi, [esi]
lea eax, [ebp - 0x25c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x6f4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
mov esi, eax
test eax, eax
je 0x10008c38
lea edx, [ebp - 0x6ec]
mov eax, edi
call sym._header_from_file
mov esi, eax
test eax, eax
je 0x10008a00
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x6ec]
call sym._match_profile
test eax, eax
je 0x10008a00
mov eax, dword [ebp - 0x6f8]
inc eax
mov dword [ebp - 0x704], eax
shl eax, 2
mov dword [ebp - 0x708], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x6fc]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_realloc]
mov dword [ebp - 0x700], eax
test eax, eax
je 0x10008ce4
movzx edx, word [ebp - 0x230]
test dx, dx
je 0x10008e51
mov ebx, edi
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x10008a98
sub ebx, edi
add ebx, 2
mov dword [ebp - 0x6fc], edx
mov dword [ebp - 0x6f0], ebx
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, dword [ebp - 0x708]
mov ecx, eax
mov eax, dword [ebp - 0x700]
mov dword [eax + edx - 4], ecx
test ecx, ecx
je 0x10008e66
test byte [0x100407a0], 8
mov edx, dword [ebp - 0x6fc]
jne 0x10008bb0
xor eax, eax
jmp 0x10008af4
movzx edx, word [edi + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x10008af0
mov eax, dword [ebp - 0x704]
add dword [ebp - 0x70c], ebx
mov dword [ebp - 0x6f8], eax
mov eax, dword [ebp - 0x700]
mov dword [ebp - 0x6fc], eax
jmp 0x10008a00
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.___p___p___p___p___p___n
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 8], str.EnumColorProfilesW
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], 0x100407a0
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], 3
mov dword [esp + 0x14], eax
call sym._wine_dbg_log.constprop.0_2
jmp 0x10008896
test byte [0x100407a0], 4
je 0x100088b6
mov dword [esp + 0xc], str.Cant_retrieve_color_directory_n
mov dword [esp + 8], str.EnumColorProfilesW
mov dword [esp + 4], 0x100407a0
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_2
jmp 0x100088b6
mov eax, edi
mov dword [ebp - 0x6f8], ecx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.matching_profile:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.EnumColorProfilesW
mov dword [esp + 4], 0x100407a0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
mov ebx, dword [ebp - 0x6f0]
movzx edx, word [ebp - 0x230]
mov ecx, dword [ebp - 0x6f8]
jmp 0x10008ae8
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.___p___p___n
mov dword [esp + 8], str.GetColorDirectoryW
mov dword [esp + 4], 0x100407a0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x100088ea
mov edi, dword [ebp - 0x70c]
mov ebx, dword [ebp + 0x10]
inc edi
test ebx, ebx
je 0x10008d50
mov eax, dword [ebp + 0x14]
cmp dword [eax], edi
jb 0x10008d50
mov eax, dword [ebp - 0x6f8]
test eax, eax
je 0x10008cc0
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x700], edi
mov edi, dword [ebp + 0x10]
mov ebx, ecx
lea esi, [ecx + eax*4]
lea esi, [esi]
nop
mov ecx, dword [ebx]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x10008c80
cmp word [ecx], 0
je 0x10008e47
mov eax, ecx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x10008ca0
sub eax, ecx
add eax, 2
add ebx, 4
add edi, eax
cmp esi, ebx
jne 0x10008c78
mov dword [ebp + 0x10], edi
mov edi, dword [ebp - 0x700]
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov esi, 1
mov word [eax], cx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov dword [eax], edi
test edx, edx
je 0x10008ce4
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x6f8]
mov dword [eax], edi
mov eax, dword [ebp - 0x6f8]
test eax, eax
je 0x10008e5b
mov eax, dword [ebp - 0x6fc]
mov ecx, dword [ebp - 0x6f8]
mov dword [ebp - 0x6f8], esi
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, eax
lea eax, [eax + ecx*4]
mov esi, edi
mov edi, eax
lea esi, [esi]
nop
mov edx, dword [esi]
add esi, 4
mov dword [esp], edx
call ebx
cmp edi, esi
jne 0x10008d18
mov esi, dword [ebp - 0x6f8]
mov eax, dword [ebp - 0x6fc]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x6f4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
jmp 0x100088b8
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x7a
jmp 0x10008ccd
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x6ec]
call sym._match_profile
test eax, eax
je 0x100089e6
movzx ebx, word [ebp - 0x230]
mov eax, edi
test bx, bx
je 0x10008d99
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x10008d90
sub eax, edi
add eax, 2
mov dword [ebp - 0x70c], eax
mov dword [ebp - 0x6f0], eax
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, eax
mov eax, dword [ebp - 0x6fc]
mov dword [eax], edx
test edx, edx
je 0x10008e5b
test byte [0x100407a0], 8
jne 0x10008df7
xor eax, eax
jmp 0x10008ddc
movzx ebx, word [edi + eax]
mov word [edx + eax], bx
add eax, 2
test bx, bx
jne 0x10008dd8
mov dword [ebp - 0x6f8], 1
jmp 0x10008a00
mov eax, edi
mov dword [ebp - 0x6f8], edx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.matching_profile:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.EnumColorProfilesW
mov dword [esp + 4], 0x100407a0
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
mov eax, dword [ebp - 0x6f0]
movzx ebx, word [ebp - 0x230]
mov edx, dword [ebp - 0x6f8]
mov dword [ebp - 0x70c], eax
jmp 0x10008dce
mov eax, 2
jmp 0x10008cae
mov ebx, 2
jmp 0x10008aa6
mov ebx, dword [sym.imp.ucrtbase.dll_free]
jmp 0x10008d2c
mov eax, dword [ebp - 0x700]
mov dword [ebp - 0x6fc], eax
jmp 0x10008ce4