Function at 0x417570
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x602235
mov eax, dword fs:[0]
push eax
sub esp, 0x218
mov eax, dword [0x7f206c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea edi, [ecx + 4]
xor eax, eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], eax
mov eax, dword [edi]
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], edi
cmp byte [eax], 0
je 0x417c97
mov edx, edi
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x54]
call fcn.00418480
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0xffffffff
je 0x417c97
mov edx, edi
lea ecx, [ebp - 0x54]
call fcn.00418480
lea ecx, [ebp - 0x34]
push ecx
push 0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x417611
mov eax, dword [ebp - 0x18]
xor esi, esi
or esi, dword [ebp - 0x14]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x4c], eax
jmp 0x417625
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x60], eax
push 0x2e
mov ecx, edi
call fcn.00518740
push 0x5c
mov ecx, edi
mov esi, eax
call fcn.00518740
cmp esi, eax
jle 0x41764e
push esi
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
call fcn.00526f80
mov esi, dword [ebp - 0x44]
jmp 0x417656
mov esi, 0x7a135c
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x58], 0x20
push ecx
mov eax, esp
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x44]
mov dword [eax], 0x7acc00
lea eax, [ebp - 0x5c]
push eax
call fcn.00516aa0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 2
push ecx
mov ecx, eax
call fcn.00517650
mov ecx, dword [ebp - 0x5c]
or edi, 0xffffffff
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x4176ac
mov eax, edi
lock xadd dword [ecx], eax
test eax, eax
jne 0x4176ac
push ecx
call fcn.004a8172
add esp, 4
add esi, 0xfffffff8
cmp esi, 0x7a1354
je 0x4176ca
mov eax, edi
lock xadd dword [esi], eax
test eax, eax
jne 0x4176ca
push esi
call fcn.004a8172
add esp, 4
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 6
call fcn.00418480
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov byte [ebp - 4], 5
test al, 0x10
je 0x41770e
cmp eax, 0xffffffff
je 0x41770e
push str.vnd.android.document_directory
lea ecx, [ebp - 0x50]
call fcn.0041d340
add esp, 4
mov esi, dword [ebp - 0x50]
lea eax, [ebp - 0x50]
mov ecx, 0x22
mov dword [ebp - 0x5c], esi
jmp 0x41776e
call fcn.00416750
lea ecx, [ebp - 0x70]
mov edx, eax
push ecx
lea ecx, [ebp - 0x84]
call fcn.004167f0
add esp, 4
lea ecx, [ebp - 0x84]
push 0
call fcn.00514a00
mov esi, dword [eax]
mov dword [ebp - 0x5c], esi
lea ecx, [esi - 8]
cmp ecx, 0x7a1354
je 0x41774d
mov eax, 1
lock xadd dword [ecx], eax
lea ecx, [ebp - 0x84]
call fcn.00403a20
push dword [ebp - 0x84]
call fcn.004c2bdc
add esp, 4
lea eax, [ebp - 0x6c]
mov ecx, 0xe4
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x74], esi
mov dword [eax], 0x7a135c
mov dword [ebp - 4], 8
test cl, 4
je 0x4177b0
mov edx, dword [ebp - 0x6c]
and ecx, 0xfffffffb
add edx, 0xfffffff8
mov dword [ebp - 0x44], ecx
cmp edx, 0x7a1354
je 0x4177b0
mov eax, edi
lock xadd dword [edx], eax
test eax, eax
jne 0x4177b0
push edx
call fcn.004a8172
mov ecx, dword [ebp - 0x44]
add esp, 4
test cl, 2
je 0x4177dc
and ecx, 0xfffffffd
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x4177dc
mov eax, edi
lock xadd dword [ecx], eax
test eax, eax
jne 0x4177dc
push ecx
call fcn.004a8172
add esp, 4
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
mov edi, 0x7a135c
mov word [ebp - 0x14], 0
mov esi, edi
mov dword [ebp - 0x40], edi
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x3c], esi
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x30], 0
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x28], xmm0
mov byte [ebp - 0x20], 0
mov ecx, dword [ebp - 0x60]
mov eax, ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x4c]
or eax, edx
lea eax, [ebp - 0x94]
mov dword [ebp - 0x60], eax
je 0x417841
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], edx
mov byte [ebp - 0x8c], 1
jmp 0x417848
movups xmmword [ebp - 0x94], xmm0
mov ecx, dword [ebp - 0x68]
push 0x5c
call fcn.00518740
mov ecx, dword [ebp - 0x68]
inc eax
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00526f80
mov ecx, dword [ebp - 0x44]
lea edx, [edi - 8]
or ecx, 0x100
mov edi, 1
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x58], ecx
cmp edx, 0x7a1354
je 0x417885
mov eax, edi
lock xadd dword [edx], eax
mov dword [ebp - 0x100], esi
add esi, 0xfffffff8
cmp esi, 0x7a1354
je 0x41789c
mov eax, edi
lock xadd dword [esi], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xdc], 0
mov word [ebp - 0xd8], 0
mov dword [ebp - 0x104], eax
movups xmm0, xmmword [ebp - 0x38]
movups xmmword [ebp - 0xfc], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [ebp - 0xec], xmm0
cmp edx, 0x7a1354
je 0x4178ed
or eax, 0xffffffff
lock xadd dword [edx], eax
test eax, eax
jne 0x4178ed
push edx
call fcn.004a8172
mov ecx, dword [ebp - 0x44]
add esp, 4
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0
je 0x41791d
lea esi, [edx - 8]
mov dword [ebp - 0x54], edx
cmp esi, 0x7a1354
je 0x41790d
mov eax, edi
lock xadd dword [esi], eax
mov edi, dword [ebp - 0x4c]
or ecx, 8
mov dword [ebp - 0x44], ecx
mov esi, edx
mov dword [ebp - 0x58], ecx
jmp 0x41793e
push str.application_octet_stream
lea ecx, [ebp - 0x4c]
call fcn.0041d340
add esp, 4
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x4c]
or eax, 0x10
mov dword [ebp - 0x44], eax
mov esi, edi
mov dword [ebp - 0x58], eax
lea ecx, [esi - 8]
cmp ecx, 0x7a1354
je 0x417952
mov eax, 1
lock xadd dword [ecx], eax
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x134]
call fcn.00416a20
mov ecx, dword [ebp - 0x130]
add ecx, 0xfffffff8
mov dword [ebp - 0x130], esi
cmp ecx, 0x7a1354
je 0x41798f
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x41798f
push ecx
call fcn.004a8172
add esp, 4
mov esi, dword [ebp - 0x68]
mov edx, bind
mov ecx, esi
mov dword [ebp - 4], 0xe
call fcn.00501fd0
test al, al
mov ecx, 0x80
mov eax, 0
cmovne eax, ecx
mov ecx, esi
mov dword [ebp - 0x50], eax
call fcn.00501df0
test al, al
je 0x4179c9
or dword [ebp - 0x50], 0x14e
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x224]
call fcn.00416a20
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x1fc], eax
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xf
push eax
mov ecx, esi
call fcn.00523940
mov byte [ebp - 0x9c], 1
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x224]
mov dword [ebp - 0xa4], ecx
lea ecx, [ebp - 0x1f4]
push eax
call fcn.00416a20
movups xmm0, xmmword [ebp - 0xa4]
movups xmmword [ebp - 0x1dc], xmm0
mov eax, ecx
lea ecx, [ebp - 0x1c4]
push eax
call fcn.00416a20
mov eax, dword [ebp - 0x60]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1bc], xmm0
mov edx, bind
mov byte [ebp - 4], 0x11
mov ecx, esi
call fcn.00501fd0
mov byte [ebp - 0x45], al
lea ecx, [ebp - 0x194]
lea eax, [ebp - 0x1c4]
push eax
call fcn.00416a20
mov al, byte [ebp - 0x45]
mov byte [ebp - 0x168], al
mov ecx, esi
mov byte [ebp - 4], 0x12
call fcn.00501df0
mov byte [ebp - 0x45], al
lea ecx, [ebp - 0x164]
lea eax, [ebp - 0x194]
push eax
call fcn.00416a20
mov al, byte [ebp - 0x45]
mov byte [ebp - 0x137], al
mov eax, ecx
push eax
lea ecx, [ebp - 0xd4]
call fcn.00416a20
mov eax, dword [ebp - 0xd4]
mov ecx, 1
mov esi, dword [ebp - 0x64]
lea edx, [eax - 8]
mov dword [esi], eax
mov dword [ebp - 0x6c], edx
cmp edx, 0x7a1354
je 0x417acf
mov eax, ecx
lock xadd dword [edx], eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + 4], eax
lea edx, [eax - 8]
cmp edx, 0x7a1354
je 0x417ae7
lock xadd dword [edx], ecx
mov eax, dword [ebp - 0xbc]
xor ecx, ecx
cmp byte [ebp - 0xa7], cl
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xc8]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0xac]
mov dword [esi + 0x18], eax
mov eax, 0x10
cmovne ecx, eax
mov dword [ebp - 0x64], 8
xor eax, eax
cmp byte [ebp - 0xa8], al
cmovne eax, dword [ebp - 0x64]
or ecx, eax
mov dword [ebp - 0x64], 4
xor eax, eax
cmp byte [ebp - 0xc4], al
cmovne eax, dword [ebp - 0x64]
or ecx, eax
xor eax, eax
cmp byte [ebp - 0xb4], al
setne al
lea eax, [eax*2 + 1]
or ecx, eax
mov dword [esi + 0x1c], ecx
cmp edx, 0x7a1354
je 0x417b81
or eax, 0xffffffff
lock xadd dword [edx], eax
test eax, eax
jne 0x417b81
push edx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0x7a1354
je 0x417ba0
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x417ba0
push ecx
call fcn.004a8172
add esp, 4
or dword [ebp - 0x44], 1
lea ecx, [ebp - 0x164]
call fcn.004169d0
lea ecx, [ebp - 0x194]
call fcn.004169d0
lea ecx, [ebp - 0x1c4]
call fcn.004169d0
lea ecx, [ebp - 0x1f4]
call fcn.004169d0
lea ecx, [ebp - 0x224]
call fcn.004169d0
lea ecx, [ebp - 0x134]
call fcn.004169d0
mov ecx, dword [ebp - 0x44]
test cl, 0x10
je 0x417c1a
lea edx, [edi - 8]
and ecx, 0xffffffef
or edi, 0xffffffff
mov dword [ebp - 0x44], ecx
cmp edx, 0x7a1354
je 0x417c1d
mov eax, edi
lock xadd dword [edx], eax
test eax, eax
jne 0x417c1d
push edx
call fcn.004a8172
mov ecx, dword [ebp - 0x44]
add esp, 4
jmp 0x417c1d
or edi, 0xffffffff
test cl, 8
je 0x417c43
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x417c43
mov eax, edi
lock xadd dword [ecx], eax
test eax, eax
jne 0x417c43
push ecx
call fcn.004a8172
add esp, 4
lea ecx, [ebp - 0x104]
call fcn.004169d0
lea ecx, [ebp - 0x40]
call fcn.004169d0
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x417c77
mov eax, edi
lock xadd dword [ecx], eax
test eax, eax
jne 0x417c77
push ecx
call fcn.004a8172
add esp, 4
mov eax, dword [ebp - 0x70]
add eax, 0xfffffff8
cmp eax, 0x7a1354
je 0x417cd8
lock xadd dword [eax], edi
test edi, edi
jne 0x417cd8
push eax
call fcn.004a8172
add esp, 4
jmp 0x417cd8
xorps xmm0, xmm0
movups xmmword [esi], xmm0
movups xmmword [esi + 0x10], xmm0
mov dword [esi], 0x7a135c
mov dword [esi + 4], 0x7a135c
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a7e5e
mov esp, ebp
pop ebp
ret 4