Function at 0x42bde0
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x466810
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1e0
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], ebx
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
xor eax, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x50], 0x40
lea edx, [ebp - 0x60]
xor eax, eax
mov dword [ebp - 0x60], eax
push edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], 0x467b3c
mov dword [ebp - 0x48], eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov ebx, eax
test ebx, ebx
je 0x42c561
lea eax, [ebp - 0x1b0]
push 0x104
push 0
push eax
call fcn.00461ca0
add esp, 0xc
lea eax, [ebp - 0x1b0]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x1b0]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x42bea0
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x42be8b
dec eax
mov edi, dword [esi + 0x18]
mov dword [ebp - 0x1c], esi
mov ebx, eax
mov dword [ebp - 0x18], ecx
cmp edi, 0x10
mov dword [ebp - 0x14], ebx
jb 0x42bebf
mov eax, dword [esi + 4]
cmp ecx, eax
jb 0x42beca
jmp 0x42bf97
lea eax, [esi + 4]
cmp ecx, eax
jae 0x42bf97
xor eax, eax
test eax, eax
je 0x42bf3e
cmp edi, 0x10
jb 0x42beda
mov edx, dword [esi + 4]
jmp 0x42bedd
lea edx, [esi + 4]
mov dword [ebp - 0x28], esi
mov eax, esi
mov dword [ebp - 0x24], esi
sub ecx, edx
mov edx, dword [esi + 0x14]
cmp edx, ecx
mov dword [ebp - 0x20], ecx
jae 0x42bf02
call fcn.00461253
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov edx, dword [eax + 0x14]
sub edx, ecx
cmp ebx, edx
jb 0x42bf0a
mov ebx, edx
mov dword [ebp - 0x30], ebx
cmp esi, eax
je 0x42c1ea
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x42bf25
call fcn.00461214
mov ebx, dword [ebp - 0x40]
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x42c027
test ebx, ebx
je 0x42c004
test ebx, ebx
ja 0x42bfac
jmp 0x42bf69
mov dword [ebp - 0x2c], ebx
cmp ebx, 0xfffffffe
jbe 0x42bf51
call fcn.00461214
mov ebx, dword [ebp - 0x2c]
mov edi, dword [esi + 0x18]
cmp edi, ebx
jb 0x42c39e
test ebx, ebx
je 0x42c37e
test ebx, ebx
ja 0x42c33a
lea eax, [ebp - 0x1b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 1
je 0x42c318
xor eax, eax
push eax
push 0x467b50
push 0x467b5c
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x42be12
add eax, dword [esi + 0x14]
cmp eax, ecx
jbe 0x42beca
mov eax, 1
jmp 0x42becc
mov esi, dword [ebp - 0x28]
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x42bfbc
mov edi, dword [esi + 4]
jmp 0x42bfbf
lea edi, [esi + 4]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x42bfcf
mov edx, dword [edx + 4]
jmp 0x42bfd2
add edx, 4
add edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
push ebx
push edx
push ecx
push edi
call fcn.0044a80e
add esp, 0x10
mov eax, dword [esi + 0x18]
mov dword [esi + 0x14], ebx
cmp eax, 0x10
jb 0x42bff4
mov esi, dword [esi + 4]
jmp 0x42bff7
add esi, 4
xor eax, eax
mov byte [ebp - 0x7c], al
mov byte [esi + ebx], al
jmp 0x42bf69
mov eax, dword [esi + 0x18]
mov dword [esi + 0x14], 0
cmp eax, 0x10
jb 0x42c018
mov esi, dword [esi + 4]
jmp 0x42c01b
add esi, 4
xor eax, eax
mov byte [ebp - 0x80], al
mov byte [esi], al
jmp 0x42bf38
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xa4], esi
mov esi, ebx
mov dword [ebp - 0xa0], ebx
or esi, 0xf
cmp esi, 0xfffffffe
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xac], esi
jbe 0x42c056
mov dword [ebp - 0xac], ebx
mov esi, ebx
jmp 0x42c06b
mov ebx, ecx
shr ebx, 1
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
cmp ebx, edx
ja 0x42c1cd
mov dword [ebp - 4], 0
mov dword [ebp - 0xa8], 0
inc esi
jne 0x42c083
xor esi, esi
jmp 0x42c0c6
xor edx, edx
mov eax, 0xffffffff
div esi
cmp eax, 1
jae 0x42c0c6
mov dword [ebp - 0x1d4], 0
lea ebx, [ebp - 0x1ec]
mov ecx, ebx
lea eax, [ebp - 0x1d4]
push eax
call fcn.0044a5f3
mov dword [ebx], vtable.std::bad_alloc.0
lea eax, [ebp - 0x1ec]
push 0x475b08
push eax
call fcn.0044ab8b
push edi
mov dword [esp], esi
call fcn.0042e777
pop ecx
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xa8], eax
mov dword [ebp - 4], 0xffffffff
nop
mov esi, dword [ebp - 0x9c]
test esi, esi
ja 0x42c19a
mov edi, dword [ebp - 0xa4]
mov eax, dword [edi + 0x18]
mov ebx, edi
cmp eax, 0x10
jae 0x42c180
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xac]
mov dword [ebx + 0x18], 0xf
xor eax, eax
mov byte [ebp - 0x74], al
mov byte [ebp - 0x78], al
mov dword [ebx + 0x14], eax
mov byte [ebx + 4], al
mov ebx, dword [ebp - 0x40]
mov dword [edi + 4], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x14], esi
add edi, 4
cmp edx, 0x10
jae 0x42c13a
mov ecx, edi
mov byte [ecx + esi], al
jmp 0x42bf38
push dword [edi + 4]
call fcn.0042e7a2
pop ecx
mov edi, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x9c]
jmp 0x42c103
mov edi, dword [ebp - 0xa4]
mov eax, dword [edi + 0x18]
cmp eax, 0x10
jb 0x42c1ad
mov eax, dword [edi + 4]
jmp 0x42c1b0
lea eax, [edi + 4]
mov edx, dword [ebp - 0xac]
push esi
push eax
inc edx
push edx
push dword [ebp - 0xa8]
call fcn.0044a80e
add esp, 0x10
jmp 0x42c0f9
mov eax, ebx
neg eax
add eax, 0xfffffffe
cmp ecx, eax
ja 0x42c06b
lea esi, [ecx + ebx]
mov dword [ebp - 0xac], esi
jmp 0x42c06b
mov edi, esi
add ebx, ecx
cmp ebx, dword [esi + 0x14]
jbe 0x42c1fe
call fcn.00461253
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov edx, dword [edi + 0x14]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
jb 0x42c20f
mov eax, 0xffffffff
mov dword [ebp - 0x84], eax
test eax, eax
ja 0x42c27f
mov eax, dword [esi + 0x14]
cmp eax, ecx
jae 0x42c222
mov ecx, eax
test ecx, ecx
jbe 0x42bf69
mov ebx, dword [esi + 0x18]
cmp ebx, 0x10
jb 0x42c237
mov edi, dword [esi + 4]
jmp 0x42c23a
lea edi, [esi + 4]
mov dword [ebp - 0x1c8], ecx
lea edx, [ecx + edi]
sub eax, ecx
push eax
push edx
push ebx
push edi
call fcn.0044abd5
mov ecx, dword [ebp - 0x1c8]
add esp, 0x10
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
sub edx, ecx
mov dword [esi + 0x14], edx
cmp eax, 0x10
jb 0x42c26c
mov esi, dword [esi + 4]
jmp 0x42c26f
add esi, 4
xor eax, eax
mov byte [ebp - 0x1b8], al
mov byte [esi + edx], al
jmp 0x42bf69
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x1cc], eax
cmp eax, 0x10
jb 0x42c292
mov eax, dword [edi + 4]
jmp 0x42c295
lea eax, [edi + 4]
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c4], edi
mov dword [ebp - 0x1c0], esi
mov esi, dword [ebp - 0x1cc]
lea edi, [ebx + eax]
mov dword [ebp - 0x1bc], edi
sub esi, ebx
mov edi, dword [ebp - 0x84]
lea ecx, [ebx + edi]
add ecx, eax
neg edi
sub edi, ebx
add edi, edx
push edi
mov edi, dword [ebp - 0x1c4]
push ecx
push esi
mov esi, dword [ebp - 0x1c0]
push dword [ebp - 0x1bc]
call fcn.0044abd5
mov ecx, dword [ebp - 0x1c8]
add esp, 0x10
mov edx, dword [edi + 0x14]
sub edx, dword [ebp - 0x84]
mov eax, dword [edi + 0x18]
mov dword [edi + 0x14], edx
cmp eax, 0x10
jb 0x42c305
mov edi, dword [edi + 4]
jmp 0x42c308
add edi, 4
xor eax, eax
mov byte [ebp - 0x1b4], al
mov byte [edi + edx], al
jmp 0x42c219
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
jb 0x42c34a
mov edx, dword [ebx + 4]
jmp 0x42c34d
lea edx, [ebx + 4]
mov esi, dword [ebp - 0x14]
push esi
push dword [ebp - 0x18]
push eax
push edx
call fcn.0044a80e
add esp, 0x10
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x14], esi
cmp eax, 0x10
jb 0x42c36e
mov ebx, dword [ebx + 4]
jmp 0x42c371
add ebx, 4
xor eax, eax
mov byte [ebp - 0x64], al
mov byte [ebx + esi], al
jmp 0x42bf69
mov dword [esi + 0x14], 0
cmp edi, 0x10
jb 0x42c38f
mov esi, dword [esi + 4]
jmp 0x42c392
add esi, 4
xor eax, eax
mov byte [ebp - 0x70], al
mov byte [esi], al
jmp 0x42bf61
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x90], esi
mov esi, ebx
mov dword [ebp - 0x8c], ebx
or esi, 0xf
cmp esi, 0xfffffffe
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x98], esi
jbe 0x42c3cd
mov dword [ebp - 0x98], ebx
mov esi, ebx
jmp 0x42c3e2
mov ecx, edi
shr ecx, 1
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
cmp ecx, edx
ja 0x42c544
mov dword [ebp - 4], 4
mov dword [ebp - 0x94], 0
inc esi
jne 0x42c3fa
xor esi, esi
jmp 0x42c43d
xor edx, edx
mov eax, 0xffffffff
div esi
cmp eax, 1
jae 0x42c43d
mov dword [ebp - 0x1d0], 0
lea ebx, [ebp - 0x1e0]
mov ecx, ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.0044a5f3
mov dword [ebx], vtable.std::bad_alloc.0
lea eax, [ebp - 0x1e0]
push 0x475b08
push eax
call fcn.0044ab8b
push edi
mov dword [esp], esi
call fcn.0042e777
pop ecx
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x94], eax
mov dword [ebp - 4], 0xffffffff
nop
mov esi, dword [ebp - 0x88]
test esi, esi
ja 0x42c511
mov edi, dword [ebp - 0x90]
mov eax, dword [edi + 0x18]
mov ebx, edi
cmp eax, 0x10
jae 0x42c4f7
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
mov dword [ebx + 0x18], 0xf
xor eax, eax
mov byte [ebp - 0x6c], al
mov byte [ebp - 0x68], al
mov dword [ebx + 0x14], eax
mov byte [ebx + 4], al
mov ebx, dword [ebp - 0x2c]
mov dword [edi + 4], ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x14], esi
add edi, 4
cmp edx, 0x10
jae 0x42c4b1
mov ecx, edi
mov byte [ecx + esi], al
jmp 0x42bf61
push dword [edi + 4]
call fcn.0042e7a2
pop ecx
mov edi, dword [ebp - 0x90]
mov esi, dword [ebp - 0x88]
jmp 0x42c47a
mov edi, dword [ebp - 0x90]
mov eax, dword [edi + 0x18]
cmp eax, 0x10
jb 0x42c524
mov eax, dword [edi + 4]
jmp 0x42c527
lea eax, [edi + 4]
mov edx, dword [ebp - 0x98]
push esi
push eax
inc edx
push edx
push dword [ebp - 0x94]
call fcn.0044a80e
add esp, 0x10
jmp 0x42c470
mov eax, ecx
neg eax
add eax, 0xfffffffe
cmp edi, eax
ja 0x42c3e2
lea esi, [edi + ecx]
mov dword [ebp - 0x98], esi
jmp 0x42c3e2
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret