Function at 0x410817
Capabilities:
Enumerate files on windows

Disassembly:
push 0x324
mov eax, 0x48ec1a
call fcn.00458f67
mov esi, dword [ebp + 8]
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2f4], esi
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x2dc], ebx
cmp dword [0x4c12e0], ebx
je 0x41086e
lea eax, [ebp - 0x2dc]
push eax
push dword [0x4c3630]
push ebx
push str.Common
push str.Installer
call fcn.0040f1ff
mov ebx, dword [ebp - 0x2dc]
add esp, 0x14
mov eax, dword [esi]
sub eax, 0x10
push eax
call fcn.0040d923
pop ecx
lea esi, [eax + 0x10]
mov dword [ebp - 0x300], esi
and dword [ebp - 4], 0
lea eax, [ebp - 0x2cc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
mov dword [ebp - 0x2fc], edi
xor eax, eax
inc eax
mov dword [ebp - 0x2f0], eax
mov byte [ebp - 4], al
cmp edi, 0xffffffff
je 0x4110e6
test edi, edi
je 0x4110e6
lea eax, [ebp - 0x2a0]
push eax
call fcn.00461890
pop ecx
lea esi, [eax - 6]
test esi, esi
jg 0x4108fd
test ebx, ebx
je 0x4110bd
cmp dword [0x4c12e0], 0
je 0x4110bd
mov eax, dword [ebx]
lea ecx, [ebp - 0x2a0]
push ecx
push str.Internal_error_determining_destination_folder_suffix_for__s
push ebx
call dword [eax + 0x14]
add esp, 0xc
jmp 0x4110bd
lea ecx, [ebp - 0x2dc]
call fcn.0040d837
mov byte [ebp - 4], 2
call fcn.004032e3
push eax
lea eax, [ebp - 0x2a0]
push 2
add eax, esi
lea ecx, [ebp - 0x2ec]
push eax
call fcn.0040ea7f
mov eax, dword [ebp - 0x2f4]
mov byte [ebp - 4], 3
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
add ecx, 0xfffffffc
add edx, ecx
mov dword [ebp - 0x118], 0xf
and dword [ebp - 0x11c], 0
mov ecx, edx
mov byte [ebp - 0x12c], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410959
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x12c]
call fcn.0040a9d0
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 4
push eax
call fcn.0040e947
cmp dword [ebp - 0x118], 0x10
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x11c]
pop ecx
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x2d0], eax
cmovae ecx, eax
mov dword [ebp - 0x2e0], ecx
cmp edx, 3
jb 0x410a06
lea eax, [edx - 2]
add eax, ecx
mov dword [ebp - 0x2d4], eax
sub eax, ecx
push eax
push 0x63
push ecx
jmp 0x4109e1
push 3
push 0x494e48
push esi
call fcn.0045c09d
add esp, 0xc
test eax, eax
je 0x4109f1
mov eax, dword [ebp - 0x2d4]
inc esi
sub eax, esi
push eax
push 0x63
push esi
call fcn.0045bff0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4109c0
jmp 0x410a00
sub esi, dword [ebp - 0x2e0]
cmp esi, 0xffffffff
jne 0x410aa9
mov eax, dword [ebp - 0x2d0]
cmp dword [ebp - 0x118], 0x10
lea ecx, [ebp - 0x12c]
cmovae ecx, eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x2d4], ecx
cmp eax, 3
jb 0x410a69
add eax, 0xfffffffe
add eax, ecx
mov dword [ebp - 0x2e0], eax
sub eax, ecx
push eax
push 0x70
push ecx
jmp 0x410a5b
push 3
push 0x494e44
push esi
call fcn.0045c09d
add esp, 0xc
test eax, eax
je 0x410a9e
mov eax, dword [ebp - 0x2e0]
inc esi
sub eax, esi
push eax
push 0x70
push esi
call fcn.0045bff0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x410a3a
test ebx, ebx
je 0x411036
cmp dword [0x4c12e0], 0
je 0x411036
mov eax, dword [ebx]
lea ecx, [ebp - 0x2a0]
push ecx
push str.Destination_folder_for__s_is_undefined._Unable_to_extract
push ebx
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x12c]
add esp, 0xc
jmp 0x41103c
sub esi, dword [ebp - 0x2d4]
cmp esi, 0xffffffff
je 0x410a69
mov esi, dword [ebp - 0x2ec]
push 0x494f58
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410aca
mov eax, 0x4c3494
jmp 0x410b92
push 0x494f5c
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410ae5
mov eax, 0x4c3498
jmp 0x410b92
push 0x494f60
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410b00
mov eax, 0x4c349c
jmp 0x410b92
push 0x494f64
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410b18
mov eax, 0x4c34a0
jmp 0x410b92
push 0x494f68
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410b30
mov eax, 0x4c34a4
jmp 0x410b92
push 0x494f6c
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410b48
mov eax, 0x4c34a8
jmp 0x410b92
push 0x494f70
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410b60
mov eax, 0x4c34ac
jmp 0x410b92
push 0x494f74
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410b78
mov eax, 0x4c34b0
jmp 0x410b92
push 0x494f78
push esi
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
jne 0x410fc0
mov eax, 0x4c34b4
push eax
lea ecx, [ebp - 0x2dc]
call fcn.0040d89a
lea eax, [ebp - 0x2e1]
mov byte [ebp - 0x2d5], 0
push eax
lea eax, [ebp - 0x2d5]
push eax
lea ecx, [ebp - 0x330]
call fcn.0040eb44
mov edi, dword [ebp - 0x2dc]
mov byte [ebp - 4], 5
lea eax, [edi - 0x10]
cmp dword [eax + 4], 0
mov dword [ebp - 0x2e0], eax
je 0x410eff
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.0045b1d0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2f8]
push dword [eax]
mov eax, 0x104
push str._sFactory_s
push eax
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00412c03
mov ecx, edi
mov dword [ebp - 0x130], 0xf
add esp, 0x24
mov byte [ebp - 0x144], 0
and dword [ebp - 0x134], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410c35
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x144]
call fcn.0040a9d0
push 1
push 0x494bbc
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 6
call fcn.0040bcb5
test ebx, ebx
je 0x410ca3
cmp dword [0x4c12e0], 0
je 0x410ca3
cmp dword [0x4c3630], 0
je 0x410ca3
mov eax, dword [ebx]
cmp dword [ebp - 0x130], 0x10
mov ecx, dword [eax + 0x10]
lea eax, [ebp - 0x144]
cmovae eax, dword [ebp - 0x144]
push eax
lea eax, [ebp - 0x114]
push eax
push str.Extracting__s_to__s
push ebx
call ecx
add esp, 0x10
cmp dword [ebp - 0x118], 0x10
lea ecx, [ebp - 0x12c]
mov eax, dword [ebp - 0x11c]
cmovae ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x2d0], ecx
cmp eax, 3
jb 0x410d03
add eax, 0xfffffffd
or edi, 0xffffffff
cmp eax, edi
cmovb edi, eax
add edi, ecx
cmp byte [edi], 0x70
jne 0x410cf4
push 3
push 0x494e44
push edi
call fcn.0045c09d
add esp, 0xc
test eax, eax
je 0x410cfb
mov ecx, dword [ebp - 0x2d0]
cmp edi, ecx
je 0x410d03
dec edi
jmp 0x410cd5
sub edi, dword [ebp - 0x2d0]
jmp 0x410d06
or edi, 0xffffffff
lea eax, [ebp - 0x144]
cmp edi, 0xffffffff
je 0x410e4e
push eax
lea eax, [ebp - 0x18c]
push eax
call fcn.0040fdc9
pop ecx
pop ecx
mov edi, eax
and dword [ebp - 0x14c], 0
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 7
lea edx, [ecx + 1]
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410d4b
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [ebp - 0x15c]
call fcn.0040a9d0
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.0040fdc9
push edi
push eax
mov byte [ebp - 4], 9
call fcn.0040d55a
add esp, 0x10
lea ecx, [ebp - 0x174]
neg al
sbb al, al
inc al
mov byte [ebp - 0x2d5], al
call fcn.00403bdf
mov eax, dword [ebp - 0x148]
cmp eax, 0x10
jb 0x410df2
mov ecx, dword [ebp - 0x15c]
inc eax
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2d4], ecx
cmp eax, 0x1000
jb 0x410de9
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x2d4]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x2d0]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d4]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
and dword [ebp - 0x14c], 0
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
mov byte [ebp - 4], 6
call fcn.00403bdf
cmp byte [ebp - 0x2d5], 0
je 0x410eae
test ebx, ebx
je 0x410eae
cmp dword [0x4c12e0], 0
je 0x410eae
mov eax, dword [ebx]
lea ecx, [ebp - 0x114]
push ecx
push str.Failed_to_extract:__s
push ebx
call dword [eax + 0x14]
add esp, 0xc
jmp 0x410eae
cmp dword [ebp - 0x130], 0x10
lea ecx, [ebp - 0x2e8]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.0040d7d2
mov eax, dword [ebp - 0x2e8]
mov dword [ebp - 0x30c], eax
lea eax, [ebp - 0x330]
mov dword [ebp - 0x308], eax
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0xa
push eax
mov byte [ebp - 0x304], 1
call fcn.00412992
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2e8]
lea ecx, [ecx - 0x10]
call fcn.0040c5fb
mov eax, dword [ebp - 0x130]
cmp eax, 0x10
jb 0x410f21
mov ecx, dword [ebp - 0x144]
inc eax
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], ecx
cmp eax, 0x1000
jb 0x410ef4
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x2d4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d0]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
jmp 0x410f21
test ebx, ebx
je 0x410f21
cmp dword [0x4c12e0], 0
je 0x410f21
mov eax, dword [ebx]
lea ecx, [ebp - 0x2a0]
push ecx
push str.Destination_directory_for__s_is_not_set._Unable_to_extract
push ebx
call dword [eax + 0x14]
add esp, 0xc
lea ecx, [ebp - 0x320]
call fcn.00403aee
lea ecx, [ebp - 0x328]
call fcn.00412101
mov eax, dword [ebp - 0x118]
cmp eax, 0x10
jb 0x410f86
mov ecx, dword [ebp - 0x12c]
inc eax
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], ecx
cmp eax, 0x1000
jb 0x410f7d
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x2d4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d0]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
and dword [ebp - 0x11c], 0
lea ecx, [esi - 0x10]
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.0040c5fb
mov ecx, dword [ebp - 0x2e0]
mov byte [ebp - 4], 1
call fcn.0040c5fb
mov edi, dword [ebp - 0x2fc]
jmp 0x4110bd
test ebx, ebx
je 0x410fe2
cmp dword [0x4c12e0], 0
je 0x410fe2
mov eax, dword [ebx]
lea ecx, [ebp - 0x2a0]
push ecx
push str.Destination_folder_for__s_is_undefined._Unable_to_extract
push ebx
call dword [eax + 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x118]
cmp eax, 0x10
jb 0x411031
mov ecx, dword [ebp - 0x12c]
inc eax
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], ecx
cmp eax, 0x1000
jb 0x411028
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x2d4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d0]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
lea ecx, [esi - 0x10]
jmp 0x41108e
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x118]
cmp eax, 0x10
jb 0x411085
inc eax
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2d4], eax
cmp eax, 0x1000
jb 0x41107c
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x2d4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2d0]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2ec]
lea ecx, [ecx - 0x10]
and dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
call fcn.0040c5fb
mov ecx, dword [ebp - 0x2dc]
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.0040c5fb
lea eax, [ebp - 0x2cc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4108ba
test ebx, ebx
je 0x4110de
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
mov esi, dword [ebp - 0x300]
jmp 0x411117
call dword [sym.imp.KERNEL32.dll_GetLastError]
test ebx, ebx
je 0x411110
cmp dword [0x4c12e0], 0
je 0x411109
mov ecx, dword [ebx]
push eax
push esi
push str.Unable_to_extract_CAB_based_on_search_pattern___s_._Error:__d
push ebx
call dword [ecx + 0x18]
add esp, 0x10
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
mov byte [ebp - 0x2f0], 0
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esi - 0x10]
call fcn.0040c5fb
mov al, byte [ebp - 0x2f0]
call fcn.00458f11
ret