Function at 0x460110
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x52fa08
mov eax, dword fs:[0]
push eax
sub esp, 0x898
mov eax, dword [0x56b1dc]
xor eax, esp
mov dword [esp + 0x890], eax
push ebx
push esi
push edi
mov eax, dword [0x56b1dc]
xor eax, esp
push eax
lea eax, [esp + 0x8a8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
call fcn.00460690
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call fcn.00402550
mov dword [esp + 0x8b0], ebx
mov edx, dword [esp + 0x10]
push edx
call dword [0x5313c0]
test eax, eax
je 0x4601a2
mov eax, dword [esp + 0x10]
push eax
mov esi, eax
call dword [0x5312d0]
and eax, 0xfffffffe
push eax
push esi
call dword [0x531100]
test edi, edi
je 0x4601c4
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.00402550
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
mov ebx, 1
mov byte [esp + 0x17], 0
jne 0x4601c9
mov byte [esp + 0x17], 1
test bl, 1
je 0x4601ee
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4601ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x460283
mov ecx, dword [esp + 0x10]
push ecx
call dword [0x5312b0]
call fcn.0044d100
mov esi, dword [0x57668c]
push str.SkinGUID
mov edx, str.10000000_0000_0000_0000_000000000001
mov ecx, str.SOFTWARETencentQQPinyin
mov dword [0x576688], 1
call fcn.0045d680
add esp, 4
push str.SkinFileName
mov edx, 0x535ef0
mov ecx, str.SOFTWARETencentQQPinyin
call fcn.0045d680
add esp, 4
push esi
call dword [0x5312b4]
mov dword [esp + 0x8b0], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x460279
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x46065f
push edi
call dword [0x5313c0]
test eax, eax
je 0x460632
lea esi, [esp + 0x4c]
call fcn.0045ee80
push 1
mov ecx, esi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0045ff70
test eax, eax
mov esi, dword [0x531148]
je 0x4604a2
lea edi, [esp + 0x1c]
call fcn.0045e680
mov edx, edi
push edx
lea eax, [esp + 0x1c]
push eax
mov ebx, str.Skin2.0_
mov byte [esp + 0x8b8], 1
call fcn.004036c0
mov eax, dword [eax]
add esp, 8
push 0
push eax
push 0
call dword [0x5313a8]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46030a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x5759e8]
mov eax, dword [edx + 0xc]
mov ecx, 0x5759e8
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x8b0], 2
call fcn.004607e0
push eax
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x50]
call fcn.00460a40
test eax, eax
je 0x46034e
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jne 0x46044e
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.00402550
mov edi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ebx, str.Skin2.0_
mov byte [esp + 0x8b8], 3
call fcn.004036c0
lea edx, [esp + 0x40]
push edi
push edx
mov ebx, eax
mov byte [esp + 0x8c0], 4
call fcn.0040d230
push eax
lea eax, [esp + 0x44]
push eax
mov ebx, str..skn
mov byte [esp + 0x8c8], 5
call fcn.004036c0
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
add esp, 0x18
push 0
push eax
push ecx
call esi
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4603d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8b0], 4
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4603fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8b0], 3
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x460426
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8b0], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46044e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8b0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x460476
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8b0], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46049e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x28]
call fcn.0044d100
mov ecx, dword [esp + 0x10]
mov ebx, dword [0x57668c]
push 0
push ecx
push edi
mov dword [0x576688], 1
call esi
test eax, eax
je 0x460632
mov edx, dword [esp + 0x10]
push 0
push 0
push 3
push 0
push 1
push pe_nt_image_headers32
push edx
call dword [0x531334]
mov esi, eax
cmp esi, 0xffffffff
je 0x46051c
lea eax, [esp + 0x3c]
push eax
call dword [0x5310f8]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x40]
push edx
call dword [0x5312ec]
lea eax, [esp + 0x20]
push eax
push 0
push 0
push esi
call dword [0x5310fc]
push esi
call dword [0x531378]
push ebx
call dword [0x5312b4]
lea esi, [esp + 0x4c]
call fcn.0045ee80
push 1
mov ecx, esi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0045ff70
test eax, eax
je 0x460548
mov edx, dword [esp + 0x34]
push edx
call fcn.0045f270
push str.SkinGUID
lea edx, [esp + 0x50]
mov ecx, str.SOFTWARETencentQQPinyin
call fcn.0045d680
add esp, 4
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00402550
mov bl, 6
mov byte [esp + 0x8b0], bl
mov ecx, dword [esp + 0x18]
push 0x5c
push ecx
call fcn.00501f75
add esp, 8
test eax, eax
jne 0x46058b
or eax, 0xffffffff
jmp 0x460591
sub eax, dword [esp + 0x18]
sar eax, 1
lea ecx, [eax + 1]
lea esi, [esp + 0x20]
lea edx, [esp + 0x18]
call fcn.0040d210
mov byte [esp + 0x8b0], 7
mov eax, dword [eax]
push str.SkinFileName
mov edx, eax
mov ecx, str.SOFTWARETencentQQPinyin
call fcn.0045d680
mov byte [esp + 0x8b4], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4605e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x8b0], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46060e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x8b0], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x46026d
mov dword [esp + 0x8b0], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46065d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x8a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x890]
xor ecx, esp
call fcn.004ff939
mov esp, ebp
pop ebp
ret 4