Function at 0x100a91a0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1012b8fc
mov eax, dword fs:[0]
push eax
sub esp, 0x300
mov eax, dword [0x10167c60]
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, ecx
mov dword [ebp - 0x2c0], edi
lea eax, [ebp - 0x2c8]
push eax
call fcn.100a7030
push dword [ebp - 0x2c8]
mov dword [ebp - 4], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
or ebx, 0xffffffff
test eax, eax
je 0x100a995b
mov dword [ebp - 0x2c4], 0
lea eax, [ebp - 0x2b4]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x2c4]
mov dword [ebp - 0x2b4], 0
push eax
push dword [ebp - 0x2c8]
call fcn.100aaa40
mov esi, dword [ebp - 0x2c4]
add esp, 0xc
test eax, eax
je 0x100a994a
test esi, esi
je 0x100a994a
cmp dword [ebp - 0x2b4], 0
jle 0x100a994a
push esi
call fcn.10097680
mov edi, eax
add esp, 4
mov dword [ebp - 0x2bc], edi
test edi, edi
je 0x100a9944
mov dword [ebp - 0x30c], edi
push edi
mov byte [ebp - 4], 2
call fcn.100975a0
add esp, 4
mov dword [ebp - 0x2d4], eax
xor ebx, ebx
test eax, eax
jle 0x100a9938
or esi, 0xffffffff
push ebx
push edi
call fcn.10097580
mov edi, eax
add esp, 8
test edi, edi
je 0x100a991f
push 0x10130784
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10032280
push str.m_strLocalPath
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10032280
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.10098930
add esp, 0x10
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 5
jb 0x100a9311
mov eax, dword [eax]
push 0xfde9
push eax
lea ecx, [ebp - 0x1a4]
call fcn.100078d0
push dword [eax]
lea ecx, [ebp - 0x2b4]
mov byte [ebp - 4], 6
call fcn.100079a0
mov eax, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x1a0]
cmp eax, ecx
je 0x100a934c
push eax
call fcn.100e9f68
add esp, 4
lea ecx, [ebp - 0x58]
call fcn.10007e60
lea ecx, [ebp - 0x28]
call fcn.10007e60
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xb
call fcn.10007e60
push dword [ebp - 0x2b4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x100a98fe
lea ecx, [ebp - 0x308]
call fcn.100b44c0
push 0x10130784
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10032280
push str.m_strPicID
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10032280
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.10098930
add esp, 0x10
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0xf
jb 0x100a93f2
mov eax, dword [eax]
push 0xfde9
push eax
lea ecx, [ebp - 0x1a4]
call fcn.100078d0
push dword [eax]
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x10
call fcn.100079a0
mov eax, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x1a0]
cmp eax, ecx
je 0x100a942d
push eax
call fcn.100e9f68
add esp, 4
lea ecx, [ebp - 0x70]
call fcn.10007e60
lea ecx, [ebp - 0x40]
call fcn.10007e60
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x15
call fcn.10007e60
push 0x10130784
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call fcn.10032280
push str.m_strPicUrl
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
call fcn.10032280
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.10098930
add esp, 0x10
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x18
jb 0x100a94bc
mov eax, dword [eax]
push 0xfde9
push eax
lea ecx, [ebp - 0x2a8]
call fcn.100078d0
push dword [eax]
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 0x19
call fcn.100079a0
mov eax, dword [ebp - 0x2a8]
lea ecx, [ebp - 0x2a4]
cmp eax, ecx
je 0x100a94f7
push eax
call fcn.100e9f68
add esp, 4
lea ecx, [ebp - 0xa0]
call fcn.10007e60
lea ecx, [ebp - 0x88]
call fcn.10007e60
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
call fcn.10007e60
mov eax, dword [ebp - 0x2ac]
cmp dword [eax - 0xc], 0
jl 0x100a95c8
push 0x1013da94
push eax
call fcn.100e6a12
add esp, 8
test eax, eax
je 0x100a95c8
mov ecx, dword [ebp - 0x2ac]
sub eax, ecx
sar eax, 1
jne 0x100a95c8
mov eax, dword [ebp - 0x2b0]
cmp dword [eax - 0xc], 0
jl 0x100a957c
push 0x1013da94
push eax
call fcn.100e6a12
add esp, 8
test eax, eax
je 0x100a9576
sub eax, dword [ebp - 0x2b0]
sar eax, 1
cmp eax, 0xffffffff
jne 0x100a95c8
mov ecx, dword [ebp - 0x2ac]
add ecx, 0xfffffff0
push ecx
call fcn.10008570
add eax, 0x10
add esp, 4
mov dword [ebp - 0x2b8], eax
lea eax, [ebp - 0x2b0]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x2ac]
call fcn.10008310
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x2b0]
call fcn.10008310
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0x1e
call fcn.10007df0
mov eax, dword [ebp - 0x2c0]
mov ecx, eax
add eax, 4
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
lea ecx, [ebp - 0x308]
call fcn.1000fde0
push dword [ebp - 0x2ac]
lea ecx, [ebp - 0x308]
call fcn.100b4aa0
push dword [ebp - 0x2b0]
lea ecx, [ebp - 0x308]
call fcn.100b4be0
push dword [ebp - 0x2b4]
lea ecx, [ebp - 0x308]
call fcn.100b4a50
push 0x10130784
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10032280
push str.m_strCID
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10032280
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x21
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.10098930
add esp, 0x10
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x22
jb 0x100a967f
mov eax, dword [eax]
push 0xfde9
push eax
lea ecx, [ebp - 0x1a4]
call fcn.100078d0
push dword [eax]
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x23
call fcn.100b49e0
mov eax, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x1a0]
cmp eax, ecx
je 0x100a96ba
push eax
call fcn.100e9f68
add esp, 4
lea ecx, [ebp - 0x70]
call fcn.10007e60
lea ecx, [ebp - 0x40]
call fcn.10007e60
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1e
call fcn.10007e60
push 0x10130784
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10032280
push str.m_strTag
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x24
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10032280
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x25
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.10098930
add esp, 0x10
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x26
jb 0x100a973d
mov eax, dword [eax]
push 0xfde9
push eax
lea ecx, [ebp - 0x1a4]
call fcn.100078d0
push dword [eax]
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x27
call fcn.100b4b90
mov eax, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x1a0]
cmp eax, ecx
je 0x100a9778
push eax
call fcn.100e9f68
add esp, 4
lea ecx, [ebp - 0x70]
call fcn.10007e60
lea ecx, [ebp - 0x40]
call fcn.10007e60
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1e
call fcn.10007e60
push 0x10130784
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10032280
push str.m_strSid
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x28
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10032280
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x29
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.10098930
add esp, 0x10
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x2a
jb 0x100a97fb
mov eax, dword [eax]
push 0xfde9
push eax
lea ecx, [ebp - 0x1a4]
call fcn.100078d0
push dword [eax]
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x2b
call fcn.100b4b40
mov eax, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x1a0]
cmp eax, ecx
je 0x100a9836
push eax
call fcn.100e9f68
add esp, 4
lea ecx, [ebp - 0x70]
call fcn.10007e60
lea ecx, [ebp - 0x40]
call fcn.10007e60
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1e
call fcn.10007e60
lea eax, [ebp - 0x2cc]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.100b0c70
push dword [eax]
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x2c
call fcn.100b4990
push dword [ebp - 0x2cc]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0x1e
call edi
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.100b0c70
push dword [eax]
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x2d
call fcn.100b4af0
push dword [ebp - 0x2d0]
mov byte [ebp - 4], 0x1e
call edi
push 1
lea ecx, [ebp - 0x308]
call fcn.100b4a30
mov ecx, dword [ebp - 0x2c0]
lea eax, [ebp - 0x308]
push eax
add ecx, 0x98
call fcn.100acda0
lea ecx, [ebp - 0x2b0]
call fcn.10007df0
lea ecx, [ebp - 0x2ac]
call fcn.10007df0
lea ecx, [ebp - 0x308]
call fcn.100b4580
mov edx, dword [ebp - 0x2b4]
mov eax, esi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100a991f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x2bc]
inc ebx
cmp ebx, dword [ebp - 0x2d4]
jl 0x100a9296
mov esi, dword [ebp - 0x2c4]
push edi
call fcn.10097510
add esp, 4
or ebx, 0xffffffff
mov edi, dword [ebp - 0x2c0]
mov byte [ebp - 4], 0
test esi, esi
je 0x100a995b
push esi
call fcn.100c49a1
add esp, 4
lea eax, [ebp - 0x2ac]
mov ecx, edi
push eax
call fcn.100a7170
push dword [ebp - 0x2ac]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x100a99db
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2bc], 0
lea eax, [ebp - 0x2b8]
mov byte [ebp - 4], 0x2f
push eax
lea eax, [ebp - 0x2bc]
push eax
push dword [ebp - 0x2ac]
call fcn.100aaa40
mov esi, dword [ebp - 0x2bc]
add esp, 0xc
test eax, eax
je 0x100a99ce
test esi, esi
je 0x100a99db
cmp dword [ebp - 0x2b8], 0
jle 0x100a99ce
push esi
mov ecx, edi
call fcn.100a8f00
jmp 0x100a99d2
test esi, esi
je 0x100a99db
push esi
call fcn.100c49a1
add esp, 4
mov edx, dword [ebp - 0x2ac]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100a99fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c8]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x100a9a1e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
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.100c495f
mov esp, ebp
pop ebp
ret