Function at 0x446e40
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x60236c
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x6687b8]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6687b8]
xor eax, esp
push eax
lea eax, [esp + 0x10c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x11c]
mov esi, dword [eax + 0x38]
lea ebx, [eax + 0x30]
xor ebp, ebp
cmp dword [ebx + 4], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ebx
jbe 0x446eac
call fcn.005d29f1
mov edi, dword [ebx + 4]
cmp edi, dword [ebx + 8]
jbe 0x446eb9
call fcn.005d29f1
push esi
push ebx
push edi
push ebx
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.00449f40
xor edi, edi
mov dword [esp + 0x38], edi
mov edi, edi
mov esi, dword [esp + edi*4 + 0x40]
cmp esi, ebp
mov dword [esp + 0x2c], esi
je 0x4476f6
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4476f6
call fcn.0041a430
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebp
lea ecx, [esp + 0x84]
mov dword [esp + 0x114], ebp
call fcn.005ce210
push 0x628a74
push esi
mov byte [esp + 0x11c], 1
call fcn.005d48cd
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x447672
push 1
push esi
lea ecx, [esp + 0x8c]
call fcn.005ce2a0
push esi
mov bl, al
call fcn.005d4952
add esp, 4
test bl, bl
je 0x447672
lea ecx, [esp + 0x84]
call fcn.005cd730
push str.Skins
mov ecx, eax
call fcn.005cd6c0
cmp eax, ebp
mov dword [esp + 0x28], eax
je 0x447672
mov ecx, eax
call fcn.005cd690
cmp eax, ebp
mov dword [esp + 0x24], eax
je 0x4475e4
jmp 0x446f90
lea edi, [esp + 0x4c]
call fcn.00440680
mov dword [esp + 0x4c], vtable.SKIN_INFO_LISTEX.0
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x34]
mov byte [esp + 0x114], 2
jne 0x446fd0
mov dword [esp + 0x68], 1
jmp 0x446fda
cmp eax, dword [esp + 0x30]
jne 0x446fda
mov dword [esp + 0x68], ebp
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x4c]
add eax, 0x2c
cmp ecx, eax
je 0x4474c0
cmp ecx, ebp
mov dword [esp + 0x14], ecx
je 0x4474c0
jmp 0x447000
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
add ecx, 8
mov ebx, 0xf
xor ebp, ebp
mov eax, ecx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe0], ebp
mov byte [esp + 0xd0], 0
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x447030
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0xd4]
call fcn.00402990
mov byte [esp + 0x114], 3
mov ecx, dword [edi + 0x18]
add ecx, 8
mov eax, ecx
mov dword [esp + 0x100], ebx
mov dword [esp + 0xfc], ebp
mov byte [esp + 0xec], 0
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x447072
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0xf0]
call fcn.00402990
mov byte [esp + 0x114], 4
cmp dword [esp + 0x100], 0x10
jb 0x4470ac
mov esi, dword [esp + 0xec]
cmp esi, ebp
jne 0x4470b3
xor ebp, ebp
jmp 0x447107
lea esi, [esp + 0xec]
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
call ebx
mov edi, eax
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005d1ef5
mov ebp, eax
add esp, 4
lea eax, [edi + edi + 2]
push eax
push 0
push ebp
call fcn.005da970
add esp, 0xc
push edi
push ebp
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
call ebx
mov esi, dword [esp + 0xe0]
cmp esi, 8
mov eax, esi
jb 0x44711a
mov eax, 8
mov edx, dword [esp + 0xd0]
mov edi, 0x10
cmp dword [esp + 0xe4], edi
jae 0x447136
lea edx, [esp + 0xd0]
mov ecx, str.FileName
call fcn.00440300
test eax, eax
jne 0x447182
cmp esi, 8
jb 0x447187
cmp esi, 8
setne al
test eax, eax
jne 0x447182
test ebp, ebp
je 0x44716f
mov eax, ebp
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x447160
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x5c]
call fcn.004037a0
mov esi, dword [esp + 0xe0]
cmp esi, 8
jae 0x44718b
mov eax, esi
jmp 0x447190
mov eax, 8
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x4471a7
lea edx, [esp + 0xd0]
mov ecx, 0x628bcc
call fcn.00440300
test eax, eax
jne 0x4471f2
cmp esi, 8
jb 0x4471f7
cmp esi, 8
setne al
test eax, eax
jne 0x4471f2
test ebp, ebp
je 0x4471df
mov eax, ebp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4471d0
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x60]
call fcn.004037a0
mov esi, dword [esp + 0xe0]
cmp esi, 8
jae 0x4471fb
mov eax, esi
jmp 0x447200
mov eax, 8
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x447217
lea edx, [esp + 0xd0]
mov ecx, str.FilePath
call fcn.00440300
test eax, eax
jne 0x447262
cmp esi, 8
jb 0x447262
cmp esi, 8
setne al
test eax, eax
jne 0x447262
test ebp, ebp
je 0x44724f
mov eax, ebp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x447240
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x58]
call fcn.004037a0
mov esi, dword [esp + 0xe0]
cmp esi, 4
mov eax, esi
jb 0x44726e
mov eax, 4
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x447285
lea edx, [esp + 0xd0]
mov ecx, str.GUID
call fcn.00440300
test eax, eax
jne 0x4472d2
cmp esi, 4
jb 0x4472d2
cmp esi, 4
setne al
test eax, eax
jne 0x4472d2
test ebp, ebp
je 0x4472bf
mov eax, ebp
lea edx, [eax + 2]
jmp 0x4472b0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4472b0
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x54]
call fcn.004037a0
mov esi, dword [esp + 0xe0]
cmp esi, 7
mov eax, esi
jb 0x4472de
mov eax, 7
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x4472f5
lea edx, [esp + 0xd0]
mov ecx, str.IsFrame
call fcn.00440300
xor ebx, ebx
cmp eax, ebx
jne 0x44732d
cmp esi, 7
jb 0x44732d
xor eax, eax
cmp esi, 7
setne al
cmp eax, ebx
jne 0x44732d
push 0xa
push ebx
push ebp
call fcn.005d419b
mov esi, dword [esp + 0xec]
add esp, 0xc
mov dword [esp + 0x64], eax
cmp esi, 9
mov eax, esi
jb 0x447339
mov eax, 9
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x447350
lea edx, [esp + 0xd0]
mov ecx, str.EnableUse
call fcn.00440300
cmp eax, ebx
jne 0x447386
cmp esi, 9
jb 0x447386
xor eax, eax
cmp esi, 9
setne al
cmp eax, ebx
jne 0x447386
push 0xa
push ebx
push ebp
call fcn.005d419b
mov esi, dword [esp + 0xec]
add esp, 0xc
mov dword [esp + 0x60], eax
cmp esi, 0xa
mov eax, esi
jb 0x447392
mov eax, 0xa
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x4473a9
lea edx, [esp + 0xd0]
mov ecx, str.LastModify
call fcn.00440300
cmp eax, ebx
jne 0x4473df
cmp esi, 0xa
jb 0x4473df
xor eax, eax
cmp esi, 0xa
setne al
cmp eax, ebx
jne 0x4473df
push 0xa
push ebx
push ebp
call fcn.005d419b
mov esi, dword [esp + 0xec]
add esp, 0xc
mov dword [esp + 0x70], eax
cmp esi, 8
mov eax, esi
jb 0x4473eb
mov eax, 8
cmp dword [esp + 0xe4], edi
mov edx, dword [esp + 0xd0]
jae 0x447402
lea edx, [esp + 0xd0]
mov ecx, str.SkinType
call fcn.00440300
cmp eax, ebx
jne 0x447431
cmp esi, 8
jb 0x447431
xor eax, eax
cmp esi, 8
setne al
cmp eax, ebx
jne 0x447431
push 0xa
push ebx
push ebp
call fcn.005d419b
add esp, 0xc
mov dword [esp + 0x6c], eax
cmp ebp, ebx
je 0x44743e
push ebp
call fcn.005d28c2
add esp, 4
cmp dword [esp + 0x100], edi
jb 0x447457
mov ecx, dword [esp + 0xec]
push ecx
call fcn.005d2367
add esp, 4
mov esi, 0xf
mov byte [esp + 0x114], 2
cmp dword [esp + 0xe4], edi
mov dword [esp + 0x100], esi
mov dword [esp + 0xfc], ebx
mov byte [esp + 0xec], 0
jb 0x447493
mov edx, dword [esp + 0xd0]
push edx
call fcn.005d2367
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], ebx
mov byte [esp + 0xd0], 0
call fcn.005cd8b0
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x447000
xor ebp, ebp
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
call fcn.0040a210
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x114], 5
mov edi, dword [eax - 0xc]
cmp edi, ebp
jle 0x447540
lea ecx, [edi - 1]
cmp ecx, ebp
jl 0x447735
cmp ecx, edi
jg 0x447735
movzx ecx, word [eax + ecx*2]
cmp cx, 0x5c
je 0x447540
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
lea esi, [edi + 1]
sub ecx, esi
or ecx, edx
jge 0x447522
mov ecx, esi
lea eax, [esp + 0x14]
call fcn.00403540
mov eax, dword [esp + 0x14]
cmp esi, ebp
mov word [eax + edi*2], 0x5c
jl 0x447735
cmp esi, dword [eax - 8]
jg 0x447735
mov dword [eax - 0xc], esi
mov word [eax + esi*2], bp
mov eax, dword [esp + 0x58]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.0040aee0
mov ebx, dword [esp + 0x14]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x447572
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
push ecx
call fcn.00449ba0
jmp 0x44759a
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
lea edi, [eax + 4]
lea edx, [esp + 0x24]
push edx
push ecx
push eax
call fcn.0041a450
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.0041a490
mov dword [edi], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
lea eax, [ebx - 0x10]
mov byte [esp + 0x114], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4475be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x114], 1
call fcn.00440850
mov ecx, dword [esp + 0x24]
call fcn.005cd700
cmp eax, ebp
mov dword [esp + 0x24], eax
jne 0x446f90
cmp dword [esp + 0x20], ebp
jbe 0x447672
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov edi, dword [esp + 0x28]
cmp esi, eax
je 0x44761c
mov ecx, dword [esi + 8]
push ecx
mov ecx, edi
call fcn.005cd590
mov eax, dword [esp + 0x1c]
cmp esi, eax
jne 0x447618
call fcn.005d29f1
mov eax, dword [esp + 0x1c]
mov esi, dword [esi]
jmp 0x4475f8
mov ecx, dword [eax]
mov dword [eax], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], eax
cmp ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
je 0x447644
mov esi, dword [ecx]
push ecx
call fcn.005d2367
add esp, 4
cmp esi, dword [esp + 0x1c]
mov ecx, esi
jne 0x447631
mov edx, dword [esp + 0x2c]
push 0x628a7c
push edx
call fcn.005d48cd
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x447672
push esi
lea ecx, [esp + 0x88]
call fcn.005cd7c0
push esi
call fcn.005d4952
add esp, 4
mov byte [esp + 0x114], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0x677580
mov dword [esp + 0x84], vtable.TiXmlDocument.0
je 0x44769c
push eax
call fcn.005d28c2
add esp, 4
lea ecx, [esp + 0x84]
call fcn.005cddb0
mov dword [esp + 0x114], 0xffffffff
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x20], ebp
je 0x4476e5
mov edi, edi
mov esi, dword [eax]
push eax
call fcn.005d2367
mov ecx, dword [esp + 0x20]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x4476d0
push ecx
call fcn.005d2367
mov edi, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x1c], ebp
add edi, 1
cmp edi, 2
mov dword [esp + 0x38], edi
jl 0x446ed0
mov eax, 1
mov ecx, dword [esp + 0x10c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.005d28b3
add esp, 0x104
ret 4
push 0x80070057
call fcn.00403650
int3