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

Disassembly:
push 0xffffffffffffffff
push 0x4bd76c
mov eax, dword fs:[0]
push eax
sub esp, 0x4d4
mov eax, dword [0x4f36a0]
xor eax, esp
mov dword [esp + 0x4cc], eax
push ebx
push ebp
push esi
mov eax, dword [0x4f36a0]
xor eax, esp
push eax
lea eax, [esp + 0x4e4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x4f4]
mov esi, ecx
push str.UserManager
mov dword [esp + 0x1c], esi
call fcn.00405590
xor ebx, ebx
add esp, 4
cmp eax, ebx
jne 0x41f04c
mov ecx, esi
call fcn.00447720
push 0x4dd8f0
push 0x4d65ac
mov edx, eax
call fcn.00448ff0
add esp, 8
xor al, al
jmp 0x41fcaf
mov eax, dword [ebp + 4]
push ebx
push ebx
push ebx
push ebx
push str.SGTool.exe
push eax
lea ecx, [esp + 0x17c]
call fcn.00443db0
mov dword [esp + 0x4ec], ebx
cmp byte [esp + 0x280], 0
lea eax, [esp + 0x170]
jne 0x41f084
mov eax, dword [esp + 0x16c]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41f09c
shr eax, 4
not al
and al, 1
jne 0x41f0ee
mov ecx, esi
call fcn.00447720
push str.sgtool_not_exist
push 0x4d65ac
mov edx, eax
call fcn.00448ff0
add esp, 8
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
cmp byte [esp + 0x280], 0
jne 0x41f0e7
mov eax, dword [esp + 0x16c]
lea ecx, [esp + 0x170]
cmp eax, ecx
je 0x41f0e7
push eax
call fcn.00498f5b
add esp, 4
xor al, al
jmp 0x41fcaf
lea ecx, [esp + 0x3b4]
call fcn.00448930
push str.__appidGetEnvFunc
lea eax, [esp + 0x3b8]
mov byte [esp + 0x4f0], 1
call fcn.00448d00
cmp byte [esp + 0x4d0], 0
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x3c0]
jne 0x41f12f
mov eax, dword [esp + 0x3bc]
push ebx
add eax, 4
push eax
push esi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x170]
call fcn.00446140
mov dword [esp + 0x24], fcn.00499078
mov dword [esp + 0x28], fcn.0049b4da
mov dword [esp + 0x2c], fcn.00498f5b
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0x8000
mov dword [esp + 0x20], vtable.t_heap.0
mov dword [esp + 0x38], ebx
mov byte [esp + 0x3c], 0
lea ecx, [esp + 0x28c]
call fcn.00448930
mov eax, 0x4dd970
xor edx, edx
mov dword [esp + 0x14], eax
cmp edx, eax
jne 0x41f19e
mov eax, 0x4d6464
mov dword [esp + 0x14], eax
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41f1a1
sub eax, edx
sar eax, 1
lea ebx, [eax + 1]
mov ecx, ebx
lea esi, [esp + 0x294]
mov dword [esp + 0x290], eax
call fcn.004495a0
cmp byte [esp + 0x3a8], 0
lea eax, [esp + 0x298]
jne 0x41f1e0
mov eax, dword [esp + 0x294]
mov edx, dword [esp + 0x14]
lea ecx, [ebx + ebx]
push ecx
add eax, 4
push edx
push eax
call fcn.0049c670
add esp, 0xc
push 0
push 0
push str.UserManager
mov byte [esp + 0x4f8], 4
call fcn.00405590
add esp, 4
mov ecx, eax
call fcn.004917e0
mov esi, dword [esp + 0x20]
push eax
lea eax, [esp + 0x298]
push eax
push 4
push esi
call fcn.00492ba0
add esp, 0x18
test al, al
jne 0x41f2ca
mov ecx, esi
call fcn.00447720
push str.pathexpandfailed
push 0x4d65ac
mov edx, eax
call fcn.00448ff0
add esp, 8
cmp byte [esp + 0x3a8], 0
mov esi, vtable.t_str.0
mov dword [esp + 0x28c], esi
jne 0x41f281
mov eax, dword [esp + 0x294]
lea ecx, [esp + 0x298]
cmp eax, ecx
je 0x41f281
push eax
call fcn.00498f5b
add esp, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0x4ec], 1
call fcn.0043f0d0
cmp byte [esp + 0x4d0], 0
mov dword [esp + 0x3b4], esi
jne 0x41f2be
mov eax, dword [esp + 0x3bc]
lea edx, [esp + 0x3c0]
cmp eax, edx
je 0x41f2be
push eax
call fcn.00498f5b
add esp, 4
mov dword [esp + 0x164], esi
jmp 0x41f0c2
lea edx, [esp + 0x28c]
push edx
lea esi, [esp + 0x44]
call fcn.00446ee0
mov byte [esp + 0x4ec], 5
cmp byte [eax + 0x11c], 0
je 0x41f2f1
add eax, 0xc
jmp 0x41f2f4
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x18]
push 0x3a8
add eax, 4
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.0044fc90
test al, al
mov byte [esp + 0x4ec], 4
sete bl
cmp byte [esp + 0x15c], 0
mov dword [esp + 0x40], vtable.t_str.0
jne 0x41f33f
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
cmp eax, ecx
je 0x41f33f
push eax
call fcn.00498f5b
add esp, 4
test bl, bl
je 0x41f38b
push str.parsefailed
mov ecx, esi
call fcn.004032e0
lea ecx, [esp + 0x28c]
call fcn.004444f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x4ec], 1
call fcn.0043f0d0
lea ecx, [esp + 0x3b4]
call fcn.004444f0
lea ecx, [esp + 0x164]
call fcn.004444f0
xor al, al
jmp 0x41fcaf
push str.SkinID
mov ecx, str.SkinInfo
lea eax, [esp + 0x24]
call fcn.0044fa50
push str.SkinMD5
mov ecx, str.SkinInfo
lea eax, [esp + 0x24]
call fcn.0044fa50
mov ebx, eax
push str.ScdInfoStr
mov ecx, str.ScdInfo
lea eax, [esp + 0x24]
call fcn.0044fa50
mov ecx, dword [ebp + 0x14]
push 0x4fef60
mov esi, eax
call fcn.00440450
test al, al
je 0x41f3e8
push ebx
push edi
mov ebx, str.SknMd5
call fcn.0045c6a0
push esi
jmp 0x41f3fd
push 0x4d6464
push edi
mov ebx, str.SknMd5
call fcn.0045c6a0
push 0x4d6464
push edi
mov ebx, str.SknId
call fcn.0045c6a0
push esi
push edi
mov ebx, str.ClDct
call fcn.0045c6a0
lea edx, [esp + 0x40]
mov ecx, 0x4fecd8
call fcn.0043f3f0
mov byte [esp + 0x4ec], 6
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f439
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x4fecd8
call fcn.00440450
movzx edx, al
lea ecx, [esi + 4]
push edx
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x5002f8
call fcn.0043f3f0
mov byte [esp + 0x4ec], 7
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f482
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x5002f8
call fcn.00440450
movzx eax, al
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500a90
call fcn.0043f3f0
mov byte [esp + 0x4ec], 8
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f4cb
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x500a90
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x5000d0
call fcn.0043f3f0
mov byte [esp + 0x4ec], 9
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f511
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x5000d0
call fcn.00440450
movzx ecx, al
push ecx
lea ecx, [esi + 4]
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500400
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0xa
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f55a
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500400
call fcn.00440450
movzx edx, al
lea ecx, [esi + 4]
push edx
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4fea50
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0xb
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f5a3
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x4fea50
call fcn.00440450
movzx eax, al
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500340
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0xc
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f5ec
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500340
call fcn.00440450
movzx ecx, al
push ecx
lea ecx, [esi + 4]
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ff770
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0xd
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f635
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x4ff770
call fcn.00440450
movzx edx, al
lea ecx, [esi + 4]
push edx
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500448
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0xe
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f67e
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500448
call fcn.00440450
movzx eax, al
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ff890
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0xf
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f6c7
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x4ff890
call fcn.00440450
movzx ecx, al
push ecx
lea ecx, [esi + 4]
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500958
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x10
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f710
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500958
call fcn.00440450
movzx edx, al
lea ecx, [esi + 4]
push edx
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500ca0
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x11
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f759
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500ca0
call fcn.00440450
movzx eax, al
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ff2d8
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x12
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f7a2
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff2d8
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ff608
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x13
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f7e8
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff608
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ff008
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x14
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f82e
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff008
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4fffe0
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x15
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f874
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fffe0
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ffe18
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x16
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f8ba
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffe18
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4fed98
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x17
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f900
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fed98
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500220
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x18
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f946
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x500220
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4fec90
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x19
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f98c
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fec90
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x5009d0
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x1a
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41f9d2
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x5009d0
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ffcc8
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x1b
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fa18
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffcc8
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4febb8
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x1c
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fa5e
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4febb8
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ffdd0
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x1d
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41faa4
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffdd0
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500520
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x1e
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41faea
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500520
call fcn.00440450
movzx ecx, al
push ecx
lea ecx, [esi + 4]
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ffba8
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x1f
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fb33
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x4ffba8
call fcn.00440450
movzx edx, al
lea ecx, [esi + 4]
push edx
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500b68
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x20
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fb7c
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500b68
call fcn.00440450
movzx eax, al
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500088
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x21
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fbc5
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x500088
call fcn.00440450
movzx ecx, al
push ecx
lea ecx, [esi + 4]
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x4ff740
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x22
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fc0e
mov esi, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push 0x4ff740
call fcn.00440450
movzx edx, al
lea ecx, [esi + 4]
push edx
mov esi, edi
call fcn.0045c5f0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea edx, [esp + 0x40]
mov ecx, 0x500838
call fcn.0043f3f0
mov byte [esp + 0x4ec], 0x23
cmp byte [eax + 0x11c], 0
lea esi, [eax + 0xc]
jne 0x41fc57
mov esi, dword [eax + 8]
mov ebx, dword [ebp + 0x14]
mov eax, 0x500838
call fcn.00440420
lea ecx, [esi + 4]
push eax
mov esi, edi
call fcn.0045c4b0
lea ecx, [esp + 0x40]
call fcn.004444f0
lea ecx, [esp + 0x28c]
call fcn.004444f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x4ec], 1
call fcn.0043f0d0
lea ecx, [esp + 0x3b4]
call fcn.004444f0
lea ecx, [esp + 0x164]
call fcn.004444f0
mov al, 1
mov ecx, dword [esp + 0x4e4]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4cc]
xor ecx, esp
call fcn.00497c58
add esp, 0x4e0
ret 4