Function at 0x48c110
Capabilities:
Check if file exists
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x604cdc
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x6687b8]
xor eax, esp
mov dword [esp + 0xe0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6687b8]
xor eax, esp
push eax
lea eax, [esp + 0xfc]
mov dword fs:[0], eax
mov eax, dword [esp + 0x10c]
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 0x48c17c
call fcn.005d29f1
mov edi, dword [ebx + 4]
cmp edi, dword [ebx + 8]
jbe 0x48c189
call fcn.005d29f1
push esi
push ebx
push edi
push ebx
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.0048e8d0
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 0x48c99c
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x48c99c
call fcn.0041a430
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebp
lea ecx, [esp + 0x74]
mov dword [esp + 0x104], ebp
call fcn.005ce210
push 0x628a74
push esi
mov byte [esp + 0x10c], 1
call fcn.005d48cd
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x48c91e
push 1
push esi
lea ecx, [esp + 0x7c]
call fcn.005ce2a0
push esi
mov bl, al
call fcn.005d4952
add esp, 4
test bl, bl
je 0x48c91e
lea ecx, [esp + 0x74]
call fcn.005cd730
push str.Skins
mov ecx, eax
call fcn.005cd6c0
cmp eax, ebp
mov dword [esp + 0x28], eax
je 0x48c91e
mov ecx, eax
call fcn.005cd690
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x24], ebp
je 0x48c888
lea edi, [esp + 0x4c]
call fcn.00440680
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x34]
mov byte [esp + 0x104], 2
jne 0x48c276
mov dword [esp + 0x68], 1
jmp 0x48c284
cmp eax, dword [esp + 0x30]
jne 0x48c284
mov dword [esp + 0x68], 0
mov ecx, dword [ebp + 0x4c]
lea eax, [ebp + 0x2c]
cmp ecx, eax
je 0x48c762
test ecx, ecx
mov dword [esp + 0x14], ecx
je 0x48c762
mov edi, edi
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 + 0xd4], ebx
mov dword [esp + 0xd0], ebp
mov byte [esp + 0xc0], 0
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x48c2d0
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0xc4]
call fcn.00402990
mov byte [esp + 0x104], 3
mov ecx, dword [edi + 0x18]
add ecx, 8
mov eax, ecx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xec], ebp
mov byte [esp + 0xdc], 0
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x48c312
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0xe0]
call fcn.00402990
mov byte [esp + 0x104], 4
cmp dword [esp + 0xf0], 0x10
jb 0x48c34c
mov esi, dword [esp + 0xdc]
cmp esi, ebp
jne 0x48c353
xor ebp, ebp
jmp 0x48c3a7
lea esi, [esp + 0xdc]
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 + 0xd0]
cmp esi, 8
mov eax, esi
jb 0x48c3ba
mov eax, 8
mov edx, dword [esp + 0xc0]
mov edi, 0x10
cmp dword [esp + 0xd4], edi
jae 0x48c3d6
lea edx, [esp + 0xc0]
mov ecx, str.FileName
call fcn.00440300
test eax, eax
jne 0x48c422
cmp esi, 8
jb 0x48c427
cmp esi, 8
setne al
test eax, eax
jne 0x48c422
test ebp, ebp
je 0x48c40f
mov eax, ebp
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x48c400
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x5c]
call fcn.004037a0
mov esi, dword [esp + 0xd0]
cmp esi, 8
jae 0x48c42b
mov eax, esi
jmp 0x48c430
mov eax, 8
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c447
lea edx, [esp + 0xc0]
mov ecx, 0x628bcc
call fcn.00440300
test eax, eax
jne 0x48c492
cmp esi, 8
jb 0x48c497
cmp esi, 8
setne al
test eax, eax
jne 0x48c492
test ebp, ebp
je 0x48c47f
mov eax, ebp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x48c470
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x60]
call fcn.004037a0
mov esi, dword [esp + 0xd0]
cmp esi, 8
jae 0x48c49b
mov eax, esi
jmp 0x48c4a0
mov eax, 8
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c4b7
lea edx, [esp + 0xc0]
mov ecx, str.FilePath
call fcn.00440300
test eax, eax
jne 0x48c502
cmp esi, 8
jb 0x48c502
cmp esi, 8
setne al
test eax, eax
jne 0x48c502
test ebp, ebp
je 0x48c4ef
mov eax, ebp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x48c4e0
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x58]
call fcn.004037a0
mov esi, dword [esp + 0xd0]
cmp esi, 4
mov eax, esi
jb 0x48c50e
mov eax, 4
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c525
lea edx, [esp + 0xc0]
mov ecx, str.GUID
call fcn.00440300
test eax, eax
jne 0x48c572
cmp esi, 4
jb 0x48c572
cmp esi, 4
setne al
test eax, eax
jne 0x48c572
test ebp, ebp
je 0x48c55f
mov eax, ebp
lea edx, [eax + 2]
jmp 0x48c550
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x48c550
sub eax, edx
sar eax, 1
mov ebx, eax
push ebp
lea eax, [esp + 0x54]
call fcn.004037a0
mov esi, dword [esp + 0xd0]
cmp esi, 7
mov eax, esi
jb 0x48c57e
mov eax, 7
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c595
lea edx, [esp + 0xc0]
mov ecx, str.IsFrame
call fcn.00440300
xor ebx, ebx
cmp eax, ebx
jne 0x48c5cd
cmp esi, 7
jb 0x48c5cd
xor eax, eax
cmp esi, 7
setne al
cmp eax, ebx
jne 0x48c5cd
push 0xa
push ebx
push ebp
call fcn.005d419b
mov esi, dword [esp + 0xdc]
add esp, 0xc
mov dword [esp + 0x64], eax
cmp esi, 9
mov eax, esi
jb 0x48c5d9
mov eax, 9
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c5f0
lea edx, [esp + 0xc0]
mov ecx, str.EnableUse
call fcn.00440300
cmp eax, ebx
jne 0x48c626
cmp esi, 9
jb 0x48c626
xor eax, eax
cmp esi, 9
setne al
cmp eax, ebx
jne 0x48c626
push 0xa
push ebx
push ebp
call fcn.005d419b
mov esi, dword [esp + 0xdc]
add esp, 0xc
mov dword [esp + 0x60], eax
cmp esi, 0xa
mov eax, esi
jb 0x48c632
mov eax, 0xa
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c649
lea edx, [esp + 0xc0]
mov ecx, str.LastModify
call fcn.00440300
cmp eax, ebx
jne 0x48c67f
cmp esi, 0xa
jb 0x48c67f
xor eax, eax
cmp esi, 0xa
setne al
cmp eax, ebx
jne 0x48c67f
push 0xa
push ebx
push ebp
call fcn.005d419b
mov esi, dword [esp + 0xdc]
add esp, 0xc
mov dword [esp + 0x70], eax
cmp esi, 8
mov eax, esi
jb 0x48c68b
mov eax, 8
cmp dword [esp + 0xd4], edi
mov edx, dword [esp + 0xc0]
jae 0x48c6a2
lea edx, [esp + 0xc0]
mov ecx, str.SkinType
call fcn.00440300
cmp eax, ebx
jne 0x48c6d1
cmp esi, 8
jb 0x48c6d1
xor eax, eax
cmp esi, 8
setne al
cmp eax, ebx
jne 0x48c6d1
push 0xa
push ebx
push ebp
call fcn.005d419b
add esp, 0xc
mov dword [esp + 0x6c], eax
cmp ebp, ebx
je 0x48c6de
push ebp
call fcn.005d28c2
add esp, 4
cmp dword [esp + 0xf0], edi
jb 0x48c6f7
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.005d2367
add esp, 4
mov esi, 0xf
mov byte [esp + 0x104], 2
cmp dword [esp + 0xd4], edi
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], 0
jb 0x48c733
mov edx, dword [esp + 0xc0]
push edx
call fcn.005d2367
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], 0
call fcn.005cd8b0
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x48c2a0
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
call fcn.0040a210
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x104], 5
mov edi, dword [eax - 0xc]
test edi, edi
jle 0x48c7e4
lea ecx, [edi - 1]
test ecx, ecx
jl 0x48c9db
cmp ecx, edi
jg 0x48c9db
movzx ecx, word [eax + ecx*2]
cmp cx, 0x5c
je 0x48c7e4
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
lea esi, [edi + 1]
sub ecx, esi
or ecx, edx
jge 0x48c7c4
mov ecx, esi
lea eax, [esp + 0x14]
call fcn.00403540
mov eax, dword [esp + 0x14]
test esi, esi
mov word [eax + edi*2], 0x5c
jl 0x48c9db
cmp esi, dword [eax - 8]
jg 0x48c9db
mov dword [eax - 0xc], esi
mov word [eax + esi*2], 0
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 0x48c816
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
push ecx
call fcn.0048e4d0
jmp 0x48c83e
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 + 0x104], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x48c862
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x104], 1
call fcn.00440770
mov ecx, ebp
call fcn.005cd700
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x24], ebp
jne 0x48c251
cmp dword [esp + 0x20], 0
jbe 0x48c91e
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov edi, dword [esp + 0x28]
lea ecx, [ecx]
cmp esi, eax
je 0x48c8c4
mov ecx, dword [esi + 8]
push ecx
mov ecx, edi
call fcn.005cd590
mov eax, dword [esp + 0x1c]
cmp esi, eax
jne 0x48c8c0
call fcn.005d29f1
mov eax, dword [esp + 0x1c]
mov esi, dword [esi]
jmp 0x48c8a0
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], 0
je 0x48c8f3
lea ecx, [ecx]
mov esi, dword [ecx]
push ecx
call fcn.005d2367
add esp, 4
cmp esi, dword [esp + 0x1c]
mov ecx, esi
jne 0x48c8e0
mov edx, dword [esp + 0x2c]
push 0x628a7c
push edx
call fcn.005d48cd
mov esi, eax
add esp, 8
test esi, esi
je 0x48c91e
push esi
lea ecx, [esp + 0x78]
call fcn.005cd7c0
push esi
call fcn.005d4952
add esp, 4
mov byte [esp + 0x104], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0x677580
mov dword [esp + 0x74], vtable.TiXmlDocument.0
je 0x48c945
push eax
call fcn.005d28c2
add esp, 4
lea ecx, [esp + 0x74]
call fcn.005cddb0
mov dword [esp + 0x104], 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]
xor ebp, ebp
cmp eax, ecx
mov dword [esp + 0x20], ebp
je 0x48c98b
mov esi, dword [eax]
push eax
call fcn.005d2367
mov ecx, dword [esp + 0x20]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x48c976
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 0x48c1a0
mov eax, 1
mov ecx, dword [esp + 0xfc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.005d28b3
add esp, 0xf4
ret 4
push 0x80070057
call fcn.00403650
int3