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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6f7d73
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x7e6410]
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 eax, dword [ebp + 0x10]
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x3c], 0
call fcn.004374f0
mov edi, dword [0x7e7970]
mov dword [ebp - 0x44], edi
push 0xc
mov byte [ebp - 4], 4
call fcn.006b6815
mov ebx, eax
add esp, 4
mov dword [ebp - 0x40], ebx
test ebx, ebx
jne 0x43e9fe
mov byte [ebp - 0x35], al
lea eax, [ebp - 0x35]
push 0x7da8d8
push eax
call fcn.006b4394
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebp - 0x48], ebx
mov byte [ebp - 4], 5
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
cmp ecx, 0xffffffff
je 0x43eae1
test cl, 0x10
jne 0x43eae1
push 0
push dword [ebp + 8]
mov ecx, ebx
call fcn.00474320
cmp eax, 1
jne 0x43edbb
mov ecx, dword [ebx]
test ecx, ecx
je 0x43edbb
mov eax, dword [ecx]
push dword [ebp + 0xc]
call dword [eax + 0x14]
cmp eax, 1
jne 0x43edbb
mov ecx, dword [ebx]
test ecx, ecx
je 0x43edbb
mov eax, dword [ecx]
call dword [eax + 0x18]
mov dword [ebp - 0x30], eax
test eax, eax
jle 0x43edbb
push eax
call fcn.006b6815
mov esi, eax
add esp, 4
test esi, esi
je 0x43edbb
mov ecx, dword [ebx]
test ecx, ecx
je 0x43edae
push dword [ebp - 0x30]
mov eax, dword [ecx]
push esi
push dword [ebp + 0xc]
call dword [eax + 0x1c]
test eax, eax
je 0x43edae
lea ecx, [ebp - 0x8c]
call fcn.00437a50
push 0
push dword [ebp - 0x30]
lea ecx, [ebp - 0x8c]
push esi
call fcn.004377c0
test eax, eax
je 0x43edae
mov dword [ebp - 0x3c], 1
jmp 0x43ebc6
mov eax, dword [0x7e7970]
mov dword [ebp - 0x30], eax
push ecx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
call fcn.0047e110
add esp, 8
mov esi, eax
mov byte [ebp - 4], 7
cmp dword [esi + 0x14], 8
jb 0x43eb0d
mov esi, dword [esi]
test esi, esi
jne 0x43eb15
xor eax, eax
jmp 0x43eb1c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [ebp - 0x30]
call fcn.00428920
mov byte [ebp - 4], 6
cmp dword [ebp - 0x14], 8
jb 0x43eb3b
push dword [ebp - 0x28]
call fcn.006b31f8
add esp, 4
mov esi, dword [ebp - 0x30]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43eee9
test al, 0x10
jne 0x43eee9
push esi
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x3c], 1
call fcn.00437680
test eax, eax
lea eax, [esi - 0xc]
jne 0x43eba2
cmp eax, 0x7e8698
je 0x43edbb
lea eax, [esi - 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push eax
mov dword [ebp - 0x30], eax
call esi
test eax, eax
jg 0x43edc1
push dword [ebp - 0x30]
call fcn.006b31f8
add esp, 4
jmp 0x43edc1
mov byte [ebp - 4], 5
cmp eax, 0x7e8698
je 0x43ebc4
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43ebc4
push esi
call fcn.006b31f8
add esp, 4
xor esi, esi
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x43edae
lea ecx, [ebp - 0x30]
push ecx
mov ecx, eax
call fcn.004394c0
push str.GXSkin
push eax
call fcn.004292e0
lea ecx, [ebp - 0x30]
mov bl, al
call fcn.00428810
test bl, bl
jne 0x43edab
push 0
push ecx
mov ecx, esp
push str.SkinInfo
call fcn.00428840
mov ecx, dword [ebp - 0x2c]
call fcn.00439a70
mov ebx, eax
test ebx, ebx
je 0x43edab
push dword [ebp - 0x34]
push ecx
mov eax, esp
lea ecx, [ebp + 0x14]
push ecx
push str.SkinName
push eax
call fcn.00428c80
mov ecx, ebx
call fcn.00439650
test eax, eax
jne 0x43ec54
push dword [ebp - 0x34]
push ecx
mov ecx, esp
push str.SkinName
call fcn.00428840
mov ecx, ebx
call fcn.00439650
mov eax, dword [ebp - 0x34]
add eax, 0x18
push eax
push ecx
mov dword [ebp - 0x2c], eax
lea ecx, [ebp + 0x14]
mov eax, esp
push ecx
push str.Description
push eax
call fcn.00428c80
mov ecx, ebx
call fcn.00439650
test eax, eax
jne 0x43ec92
push dword [ebp - 0x2c]
push ecx
mov ecx, esp
push str.Description
call fcn.00428840
mov ecx, ebx
call fcn.00439650
push 0x790eb0
push ecx
mov ecx, esp
push str.SkinFileName
call fcn.00428840
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004397e0
mov ecx, dword [ebp - 0x34]
push eax
mov byte [ebp - 4], 8
lea ecx, [ecx + 4]
call fcn.004289a0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00428810
push 0x790eb0
push ecx
mov ecx, esp
push str.SkinVersion
call fcn.00428840
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004397e0
mov ecx, dword [ebp - 0x34]
push eax
mov byte [ebp - 4], 9
lea ecx, [ecx + 8]
call fcn.004289a0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00428810
push 0x790eb0
push ecx
mov ecx, esp
push str.Author
call fcn.00428840
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004397e0
mov ecx, dword [ebp - 0x34]
push eax
mov byte [ebp - 4], 0xa
lea ecx, [ecx + 0xc]
call fcn.004289a0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00428810
push 0x790eb0
push ecx
mov ecx, esp
push str.LastUpdate
call fcn.00428840
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004397e0
mov ecx, dword [ebp - 0x34]
push eax
mov byte [ebp - 4], 0xb
lea ecx, [ecx + 0x10]
call fcn.004289a0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00428810
push 0x790eb0
push ecx
mov ecx, esp
push str.ScreenShot
call fcn.00428840
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004397e0
mov ecx, dword [ebp - 0x34]
push eax
mov byte [ebp - 4], 0xc
lea ecx, [ecx + 0x14]
call fcn.004289a0
lea ecx, [ebp - 0x2c]
call fcn.00428810
mov ebx, dword [ebp - 0x40]
test esi, esi
je 0x43edbb
push esi
call fcn.006b31f8
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov byte [ebp - 4], 4
mov ecx, dword [ebx]
test ecx, ecx
je 0x43edd0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebx + 4], 0
mov ecx, dword [ebx]
test ecx, ecx
je 0x43ede2
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebx
mov dword [ebx + 4], 0
call fcn.004741c0
push ebx
call fcn.006b31f8
lea eax, [edi - 0xc]
add esp, 4
cmp eax, 0x7e8698
je 0x43ee16
add edi, 0xfffffff4
push edi
call esi
test eax, eax
jg 0x43ee16
push edi
call fcn.006b31f8
add esp, 4
mov dword [ebp - 0x8c], vtable.Gul::GXmp.0
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xd
call fcn.00437a50
mov ecx, dword [ebp - 0x6c]
lea eax, [ecx - 0xc]
cmp eax, 0x7e8698
je 0x43ee55
lea eax, [ecx - 0xc]
push eax
call esi
test eax, eax
jg 0x43ee55
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff4
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp + 8]
lea ecx, [eax - 0xc]
cmp ecx, 0x7e8698
je 0x43ee7c
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43ee7c
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp + 0xc]
lea ecx, [eax - 0xc]
cmp ecx, 0x7e8698
je 0x43eea3
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43eea3
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp + 0x14]
lea ecx, [eax - 0xc]
cmp ecx, 0x7e8698
je 0x43eeca
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43eeca
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff4
push ecx
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp - 0x3c]
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.006b3266
mov esp, ebp
pop ebp
ret
lea eax, [esi - 0xc]
mov dword [ebp - 0x3c], 0
cmp eax, 0x7e8698
je 0x43edbb
lea eax, [esi - 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push eax
mov dword [ebp - 0x2c], eax
call esi
test eax, eax
jg 0x43edc1
push dword [ebp - 0x2c]
call fcn.006b31f8
add esp, 4
jmp 0x43edc1