Function at 0x10020de0
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d53ce
mov eax, dword fs:[0]
push eax
sub esp, 0x34c
mov eax, dword [0x10109610]
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, edx
xor ebx, ebx
xor eax, eax
mov esi, ecx
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x50], 7
mov dword [ebp - 0x54], ebx
mov word [ebp - 0x64], ax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x33c], ebx
mov dword [ebp - 0x338], ebx
mov dword [ebp - 0x334], ebx
mov byte [ebp - 4], 1
push 8
mov dword [ebp - 0x308], ebx
call fcn.100b33f2
add esp, 4
cmp eax, ebx
je 0x10021447
mov dword [ebp - 0x308], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x308]
lea ecx, [ebp - 0x308]
mov dword [edx], ecx
mov dword [ebp - 0x304], ebx
mov dword [ebp - 0x300], ebx
mov dword [ebp - 0x2fc], ebx
mov dword [ebp - 0x2f8], ebx
xor eax, eax
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
lea ecx, [ebp - 0x64]
push ecx
mov byte [ebp - 4], 3
push esi
mov dword [ebp - 0x318], ebx
mov dword [ebp - 0x314], ebx
mov dword [edi], ebx
mov dword [edi + 4], ebx
call fcn.1002aeb0
add esp, 8
test al, al
jne 0x10020f56
push str.Failed_to_convert_multibyte_path_to_wide_char
call fcn.10006760
mov ecx, 0x100dcd70
call fcn.10006b20
mov edi, 8
add esp, 4
cmp dword [ebp - 0x18], edi
jb 0x10020ef7
mov edx, dword [ebp - 0x2c]
push edx
call fcn.100b2e51
add esp, 4
xor eax, eax
lea esi, [ebp - 0x308]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
call fcn.100253c0
mov ecx, dword [ebp - 0x308]
push ecx
call fcn.100b2e51
add esp, 4
mov dword [ebp - 0x308], ebx
cmp dword [ebp - 0x50], edi
jb 0x10020f38
mov edx, dword [ebp - 0x64]
push edx
call fcn.100b2e51
add esp, 4
xor al, al
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.100b2e5c
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x64]
mov esi, 8
cmp dword [ebp - 0x50], esi
jae 0x10020f66
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x10020fe8
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x50], esi
jae 0x10020f7c
lea eax, [ebp - 0x64]
push eax
push str.Path:_s_is_not_a_directory
call fcn.10006760
mov ecx, 0x100dcd14
call fcn.10006de0
add esp, 8
cmp dword [ebp - 0x18], esi
jb 0x10020fa5
mov eax, dword [ebp - 0x2c]
push eax
call fcn.100b2e51
add esp, 4
xor ecx, ecx
lea esi, [ebp - 0x308]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], cx
call fcn.100253c0
mov edx, dword [ebp - 0x308]
push edx
call fcn.100b2e51
add esp, 4
cmp dword [ebp - 0x50], 8
mov dword [ebp - 0x308], ebx
jb 0x10020f38
mov eax, dword [ebp - 0x64]
push eax
jmp 0x10020f30
xor ecx, ecx
push ebx
lea edx, [ebp - 0x64]
mov word [ebp - 0x80], cx
push edx
or eax, 0xffffffff
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x6c], 7
mov dword [ebp - 0x70], ebx
call fcn.100017f0
lea eax, [ebp - 0x80]
push eax
lea esi, [ebp - 0x308]
mov byte [ebp - 4], 4
call fcn.100252e0
cmp dword [ebp - 0x2f8], ebx
je 0x10021350
lea eax, [ebp - 0x358]
lea edx, [ebp - 0x308]
call fcn.100acf30
mov esi, eax
lea eax, [ebp - 0x34c]
call fcn.100255b0
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x1002104f
xor ecx, ecx
jmp 0x10021051
mov ecx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [ecx + 8]
cmp edx, eax
ja 0x1002105d
sub eax, edx
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax*4]
push ebx
push eax
or eax, 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.100017f0
push 0x100dc9f4
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp - 0x9c]
push eax
call fcn.1001b600
add esp, 0xc
push eax
mov edx, 0x100e3f60
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 5
call fcn.10001fd0
add esp, 4
mov edi, eax
lea esi, [ebp - 0x2c]
mov byte [ebp - 4], 6
call fcn.10002040
mov edi, 8
cmp dword [ebp - 0x34], edi
jb 0x100210c1
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.100b2e51
add esp, 4
xor edx, edx
mov byte [ebp - 4], 4
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x48], dx
cmp dword [ebp - 0x88], edi
jb 0x100210ec
mov eax, dword [ebp - 0x9c]
push eax
call fcn.100b2e51
add esp, 4
mov eax, dword [ebp - 0x2f8]
cmp eax, ebx
je 0x10021142
mov ecx, dword [ebp - 0x2fc]
lea eax, [eax + ecx - 1]
mov ecx, dword [ebp - 0x300]
cmp ecx, eax
ja 0x1002110c
sub eax, ecx
mov edx, dword [ebp - 0x304]
mov esi, dword [edx + eax*4]
cmp dword [esi + 0x14], edi
jb 0x10021125
mov eax, dword [esi]
push eax
call fcn.100b2e51
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
mov word [esi], ax
dec dword [ebp - 0x2f8]
jne 0x10021142
mov dword [ebp - 0x2fc], ebx
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], edi
jae 0x1002114d
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x2f0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov dword [ebp - 0x31c], esi
cmp esi, 0xffffffff
je 0x10021480
lea esp, [esp]
mov ecx, 0x100e3f64
lea eax, [ebp - 0x2c4]
jmp 0x10021180
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100211a6
cmp dx, bx
je 0x100211a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100211a6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10021180
xor eax, eax
jmp 0x100211ab
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x10021312
mov ecx, 0x100e3f68
lea eax, [ebp - 0x2c4]
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100211e6
cmp dx, bx
je 0x100211e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100211e6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x100211c0
xor eax, eax
jmp 0x100211eb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x10021312
test byte [ebp - 0x2f0], 0x10
push 0x100dc9f4
je 0x100213ab
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp - 0x9c]
push eax
call fcn.1001b600
add esp, 0xc
push eax
lea edx, [ebp - 0x2c4]
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 7
call fcn.10001fd0
add esp, 4
mov edi, eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x2f8]
mov eax, dword [ebp - 0x300]
inc ecx
cmp eax, ecx
ja 0x10021257
lea edx, [ebp - 0x308]
push edx
call fcn.10025460
mov eax, dword [ebp - 0x300]
mov esi, dword [ebp - 0x2f8]
add esi, dword [ebp - 0x2fc]
cmp eax, esi
ja 0x10021269
sub esi, eax
mov eax, dword [ebp - 0x304]
cmp dword [eax + esi*4], ebx
jne 0x1002128f
push 0x1c
call fcn.100b33f2
add esp, 4
cmp eax, ebx
je 0x10021447
mov ecx, dword [ebp - 0x304]
mov dword [ecx + esi*4], eax
mov edx, dword [ebp - 0x304]
mov esi, dword [edx + esi*4]
mov dword [ebp - 0x30c], esi
mov dword [ebp - 0x340], esi
mov byte [ebp - 4], 9
cmp esi, ebx
je 0x100212c0
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
mov word [esi], ax
call fcn.10002040
inc dword [ebp - 0x2f8]
mov esi, 8
cmp dword [ebp - 0x34], esi
jb 0x100212dc
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.100b2e51
add esp, 4
xor edx, edx
mov byte [ebp - 4], 4
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x48], dx
cmp dword [ebp - 0x88], esi
jb 0x10021307
mov eax, dword [ebp - 0x9c]
push eax
call fcn.100b2e51
add esp, 4
mov esi, dword [ebp - 0x31c]
mov edi, 8
lea edx, [ebp - 0x2f0]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x10021170
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
cmp eax, 0x12
jne 0x1002147a
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x2f8], ebx
jne 0x10021027
mov edi, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x318]
mov edx, dword [ebp - 0x314]
lea esi, [ebp - 0x80]
mov dword [edi], ecx
mov dword [edi + 4], edx
call fcn.10006640
lea esi, [ebp - 0x2c]
call fcn.10006640
lea esi, [ebp - 0x308]
call fcn.100253c0
mov eax, dword [ebp - 0x308]
push eax
call fcn.100b2e51
add esp, 4
lea esi, [ebp - 0x33c]
mov dword [ebp - 0x308], ebx
call fcn.10019990
lea esi, [ebp - 0x64]
call fcn.10006640
mov al, 1
jmp 0x10020f3a
lea ecx, [ebp - 0x80]
push ecx
lea edx, [ebp - 0x9c]
push edx
call fcn.1001b600
add esp, 0xc
push eax
lea edx, [ebp - 0x2c4]
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0xa
call fcn.10001fd0
add esp, 4
lea ecx, [ebp - 0x33c]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.10004e10
cmp dword [ebp - 0x34], edi
jb 0x100213f7
mov edx, dword [ebp - 0x48]
push edx
call fcn.100b2e51
add esp, 4
xor eax, eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x48], ax
cmp dword [ebp - 0x88], edi
jb 0x10021422
mov ecx, dword [ebp - 0x9c]
push ecx
call fcn.100b2e51
add esp, 4
mov edx, dword [ebp - 0x2d4]
neg edx
xor eax, eax
xor edi, edi
add edx, dword [ebp - 0x2d0]
adc eax, edi
add dword [ebp - 0x318], edx
adc dword [ebp - 0x314], eax
jmp 0x1002130d
lea ecx, [ebp - 0x30c]
push ecx
lea ecx, [ebp - 0x328]
mov dword [ebp - 0x30c], ebx
call fcn.100b2f04
push 0x10100900
lea edx, [ebp - 0x328]
push edx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.100b6335
call dword [sym.imp.KERNEL32.dll_FindClose]
lea esi, [ebp - 0x80]
call fcn.10006640
lea esi, [ebp - 0x2c]
call fcn.10006640
lea esi, [ebp - 0x308]
call fcn.100253c0
mov eax, dword [ebp - 0x308]
push eax
call fcn.100b2e51
add esp, 4
lea esi, [ebp - 0x33c]
mov dword [ebp - 0x308], ebx
call fcn.10019990
lea esi, [ebp - 0x64]
call fcn.10006640
jmp 0x10020f38