Function at 0x499ad0
Capabilities:
Enumerate files on windows
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54378a
mov eax, dword fs:[0]
push eax
sub esp, 0x3c8
mov eax, dword [0x595c60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov dword [ebp - 0x2a4], ebx
mov edi, ecx
mov eax, dword [0x59e598]
mov dword [ebp - 0x298], edi
mov dword [ebp - 0x29c], ebx
test al, 1
jne 0x499b48
or eax, 1
mov dword [0x59e598], eax
mov dword [ebp - 4], 0
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x596f88]
test byte [eax + 0x1c], 2
je 0x499b5d
cmp byte [eax + 0x19], 6
jb 0x499b5d
mov al, 1
jmp 0x499b5f
xor al, al
cmp byte [0x59e5a8], 0
jne 0x499b79
cmp byte [0x59e5a9], 0
jne 0x499b79
test al, al
je 0x499ce9
sub esp, 8
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x33c]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x33c]
call fcn.0047eed0
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0x100
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a46c
mov ecx, eax
call fcn.0047f130
mov edx, str.FindTheUninstallXMLFiles
mov ecx, eax
call fcn.0047f130
mov edx, 0x570fc8
mov ecx, eax
call fcn.0047f130
mov edx, str._in_directory
mov ecx, eax
call fcn.0047f130
mov edx, edi
mov ecx, eax
call fcn.004a0e50
mov byte [ebp - 4], 2
cmp dword [ebp - 0x18], 0x10
jb 0x499c2e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x499c2e
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0047b6a0
mov esi, eax
mov byte [ebp - 4], 4
cmp dword [esi + 0x14], 0x10
jb 0x499c4b
mov esi, dword [esi]
mov eax, dword [0x59e598]
test al, 1
jne 0x499c76
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 5
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 4
push esi
push 6
mov ecx, 0x59e5a8
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x499c99
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x499c99
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 1
call fcn.0047b620
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2ec], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
mov dword [ebp - 4], 0xffffffff
jmp 0x499ce9
test edi, edi
jne 0x499cf5
lea eax, [edi + 0x57]
jmp 0x49a356
push dword [ebp - 0x29c]
mov edx, dword [ebx + 4]
push ecx
mov ecx, dword [ebx]
call fcn.004802e0
mov eax, dword [ebx]
lea ecx, [ebp - 0x2a0]
add esp, 8
mov dword [ebx + 4], eax
mov dword [ebp - 0x298], 0
push 0x104
push edi
call fcn.00483d00
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [ebp - 0x29c]
mov esi, eax
test ecx, ecx
je 0x499d46
push ecx
call fcn.005074d4
add esp, 4
cmp esi, 0xffffffff
je 0x49a01a
push edi
lea ecx, [ebp - 0x44]
call fcn.0047b000
mov dword [ebp - 4], 7
mov eax, dword [ebp - 0x34]
lea ecx, [eax - 1]
cmp eax, ecx
ja 0x499d73
push str.invalid_string_position
call fcn.005289ed
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x499d7f
lea eax, [ebp - 0x44]
cmp word [eax + ecx*2], 0x5c
je 0x499d92
push 0x5c
push 1
lea ecx, [ebp - 0x44]
call fcn.00481ab0
push 3
push 0x5717bc
lea ecx, [ebp - 0x44]
call fcn.00482560
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x499dad
lea eax, [ebp - 0x44]
push 0x104
push eax
lea ecx, [ebp - 0x2a0]
call fcn.00483d00
lea ecx, [ebp - 0x294]
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ecx, dword [ebp - 0x29c]
mov esi, eax
test ecx, ecx
je 0x499de2
push ecx
call fcn.005074d4
add esp, 4
cmp esi, 0xffffffff
je 0x499efa
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
test byte [ebp - 0x294], 0x10
jne 0x499eb7
xor eax, eax
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], ax
cmp word [ebp - 0x268], ax
jne 0x499e1f
xor ecx, ecx
jmp 0x499e3f
lea ecx, [ebp - 0x268]
lea edx, [ecx + 2]
jmp 0x499e30
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x499e30
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0047c530
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.00499670
mov byte [ebp - 4], 7
mov bl, al
cmp dword [ebp - 0x18], 8
jb 0x499e77
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x499e77
push ecx
call fcn.005074d4
add esp, 4
test bl, bl
je 0x499eb7
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0047b000
mov ecx, dword [ebp - 0x2a4]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 9
call fcn.0049fc80
mov byte [ebp - 4], 7
cmp dword [ebp - 0x18], 8
jb 0x499eb7
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x499eb7
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x294]
push eax
push esi
call edi
test eax, eax
jne 0x499df1
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x30], 8
jb 0x49a18a
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x49a18a
push eax
call fcn.005074d4
add esp, 4
jmp 0x49a18a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x298], eax
call fcn.004a0950
mov ecx, dword [0x596f88]
test byte [ecx + 0x1c], 2
je 0x499f21
cmp byte [ecx + 0x19], 2
jb 0x499f21
mov cl, 1
jmp 0x499f23
xor cl, cl
cmp byte [eax], 0
jne 0x499f32
cmp byte [eax + 1], 0
jne 0x499f32
test cl, cl
je 0x499ed0
sub esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x33c]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x33c]
call fcn.0047eed0
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0x122
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, str.FindFirstFile___returned_INVALID_HANDLE_VALUE_in_directory
mov ecx, eax
call fcn.0047f130
lea edx, [ebp - 0x44]
mov ecx, eax
call fcn.004a0d80
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
call fcn.0047ac60
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0047b6a0
mov esi, eax
mov byte [ebp - 4], 0xd
cmp dword [esi + 0x14], 0x10
jb 0x499fd0
mov esi, dword [esi]
call fcn.004a0950
push esi
push 2
mov ecx, eax
call fcn.004a0b40
lea ecx, [ebp - 0x2c]
call fcn.0047ac60
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 0xa
call fcn.0047b620
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2ec], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
jmp 0x499ed0
mov eax, dword [0x59e598]
test al, 1
jne 0x49a04a
or dword [0x59e598], 1
mov dword [ebp - 4], 0xf
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x596f88]
test byte [ecx + 0x1c], 2
je 0x49a060
cmp byte [ecx + 0x19], 2
jb 0x49a060
mov al, 1
jmp 0x49a062
xor al, al
cmp byte [0x59e5a8], 0
jne 0x49a07c
cmp byte [0x59e5a9], 0
jne 0x49a07c
test al, al
je 0x49a18a
sub esp, 8
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0x33c]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x11
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x33c]
call fcn.0047eed0
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0x127
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, str.Path
mov ecx, eax
call fcn.0047f130
mov edx, edi
mov ecx, eax
call fcn.004a0e50
mov edx, str._Not_Found
mov ecx, eax
call fcn.0047f130
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x18], 0x10
jb 0x49a119
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x49a119
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x33c]
call fcn.0047b6a0
mov esi, eax
mov byte [ebp - 4], 0x13
cmp dword [esi + 0x14], 0x10
jb 0x49a136
mov esi, dword [esi]
call fcn.004a0950
push esi
push 2
mov ecx, eax
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x49a15b
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x49a15b
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 0x10
call fcn.0047b620
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2ec], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x59e598]
test al, 1
jne 0x49a1ba
or dword [0x59e598], 1
mov dword [ebp - 4], 0x15
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x596f88]
test byte [ecx + 0x1c], 2
je 0x49a1d6
cmp byte [ecx + 0x19], 6
jb 0x49a1d6
mov al, 1
jmp 0x49a1d8
xor al, al
cmp byte [0x59e5a8], 0
jne 0x49a1f2
cmp byte [0x59e5a9], 0
jne 0x49a1f2
test al, al
je 0x49a350
sub esp, 8
mov dword [ebp - 4], 0x16
lea ecx, [ebp - 0x3d4]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x17
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x3d4]
call fcn.0047eed0
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0x12a
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a498
mov ecx, eax
call fcn.0047f130
mov edx, str.FindTheUninstallXMLFiles
mov ecx, eax
call fcn.0047f130
mov edx, 0x570fc8
mov ecx, eax
call fcn.0047f130
mov edx, str._with_result
mov ecx, eax
call fcn.0047f130
push dword [ebp - 0x298]
mov ecx, eax
call fcn.0047b350
mov byte [ebp - 4], 0x17
cmp dword [ebp - 0x18], 0x10
jb 0x49a2ab
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x49a2ab
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x3d4]
call fcn.0047b6a0
mov esi, eax
mov byte [ebp - 4], 0x19
cmp dword [esi + 0x14], 0x10
jb 0x49a2c8
mov esi, dword [esi]
mov eax, dword [0x59e598]
test al, 1
jne 0x49a2f3
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 0x1a
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 0x19
push esi
push 6
mov ecx, 0x59e5a8
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x49a316
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x49a316
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x384]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0x16
call fcn.0047b620
lea eax, [ebp - 0x384]
mov dword [ebp - 0x384], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00506c7d
mov esp, ebp
pop ebp
ret