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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52dea1
mov eax, dword fs:[0]
push eax
sub esp, 0x4bc
mov eax, dword [0x5c6150]
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 edi, ecx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
call fcn.004cf1b0
test eax, eax
jne 0x435a00
mov ecx, ebx
call fcn.00450c80
push 0x596f84
push 0x5971f4
push eax
call fcn.00450580
add esp, 0xc
xor al, al
jmp 0x43661e
push 0
push 0
push 0
push 0
push str.SGTool.exe
push dword [edi + 4]
lea ecx, [ebp - 0x37c]
call fcn.00451610
mov dword [ebp - 4], 0
lea eax, [ebp - 0x370]
cmp byte [ebp - 0x260], 0
cmove eax, dword [ebp - 0x374]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4365d4
shr eax, 4
not al
and al, 1
je 0x4365d4
lea ecx, [ebp - 0x258]
call fcn.0044fd40
push str.__appidGetEnvFunc
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 1
call fcn.00450150
cmp byte [ebp - 0x13c], 0
lea eax, [ebp - 0x24c]
push 0
cmove eax, dword [ebp - 0x250]
lea edx, [ebp - 0x4a8]
push ecx
add eax, 4
mov dword [ebp - 0x4a8], 0
push eax
push ecx
mov ecx, ebx
call fcn.00486ed0
add esp, 0x10
mov dword [ebp - 0x4c4], fcn.004e1b5b
mov dword [ebp - 0x4c0], fcn.004e1ae7
mov dword [ebp - 0x4bc], fcn.004e1b56
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x4b4], 0x8000
mov dword [ebp - method.allocator_unsigned_char__class_TAllocDefault_.virtual_0], vtable.t_heap.0
mov dword [ebp - 0x4b0], 0
mov byte [ebp - 0x4ac], 0
push 0
push 0
push 0
push 0
push 0
push str.tmpEnvInfo.ini
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 2
call fcn.00451610
push 0
push 0
mov byte [ebp - 4], 3
call fcn.004cf1b0
mov ecx, eax
call fcn.004cead0
push eax
lea eax, [ebp - 0x4a0]
push eax
push 4
push ebx
call fcn.004cfae0
add esp, 0x18
test al, al
jne 0x435b52
mov ecx, ebx
call fcn.00450c80
push str.pathexpandfailed
jmp 0x435bdc
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x134]
call fcn.0044fdf0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x128]
cmp byte [ebp - 0x18], 0
lea ecx, [ebp - 0x4c8]
push 0x3a8
cmove eax, dword [ebp - 0x12c]
add eax, 4
push eax
push ebx
call fcn.00455f50
test al, al
mov byte [ebp - 4], 3
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
sete cl
cmp byte [ebp - 0x18], 0
mov byte [ebp - 0x4a1], cl
jne 0x435bcc
mov eax, dword [ebp - 0x12c]
lea edx, [ebp - 0x128]
cmp eax, edx
je 0x435bcc
push eax
call fcn.004e1b56
mov cl, byte [ebp - 0x4a1]
add esp, 4
test cl, cl
je 0x435bf1
mov ecx, ebx
call fcn.00450c80
push str.parsefailed
push 0x5971f4
push eax
call fcn.00450580
add esp, 0xc
xor bl, bl
jmp 0x43656f
push str.SkinID
push str.SkinInfo
lea ecx, [ebp - 0x4c8]
call fcn.00455c90
push str.SkinMD5
push str.SkinInfo
lea ecx, [ebp - 0x4c8]
call fcn.00455c90
push str.ScdInfoStr
push str.ScdInfo
lea ecx, [ebp - 0x4c8]
mov dword [ebp - 0x4a8], eax
call fcn.00455c90
mov ecx, dword [edi + 0x14]
mov ebx, eax
push 0x5dc910
call fcn.0047aa60
mov ecx, esi
test al, al
je 0x435c5e
push dword [ebp - 0x4a8]
push str.SknMd5
call fcn.00474880
push ebx
jmp 0x435c72
push 0x5920ac
push str.SknMd5
call fcn.00474880
push 0x5920ac
push str.SknId
mov ecx, esi
call fcn.00474880
push ebx
push str.ClDct
mov ecx, esi
call fcn.00474880
lea eax, [ebp - 0x134]
mov ecx, 0x5db398
push eax
call fcn.004797b0
mov byte [ebp - 4], 5
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435caf
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5db398
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dade0
push eax
call fcn.004797b0
mov byte [ebp - 4], 6
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435cfa
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dade0
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d8f50
push eax
call fcn.004797b0
mov byte [ebp - 4], 7
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435d45
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d8f50
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dc4a8
push eax
call fcn.004797b0
mov byte [ebp - 4], 8
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435d90
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dc4a8
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dd1f8
push eax
call fcn.004797b0
mov byte [ebp - 4], 9
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435dd8
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dd1f8
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5daf60
push eax
call fcn.004797b0
mov byte [ebp - 4], 0xa
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435e23
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5daf60
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5daee8
push eax
call fcn.004797b0
mov byte [ebp - 4], 0xb
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435e6e
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5daee8
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5db0f8
push eax
call fcn.004797b0
mov byte [ebp - 4], 0xc
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435eb9
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5db0f8
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dba88
push eax
call fcn.004797b0
cmp byte [eax + 0x11c], 0
je 0x435eff
add eax, 0xc
jmp 0x435f02
mov eax, dword [eax + 8]
push 0
add eax, 4
mov ecx, esi
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5db038
push eax
call fcn.004797b0
mov byte [ebp - 4], 0xd
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435f3e
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5db038
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dd048
push eax
call fcn.004797b0
mov byte [ebp - 4], 0xe
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435f89
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dd048
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dd3f0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0xf
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x435fd4
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dd3f0
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5da018
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x10
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x43601f
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5da018
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dc538
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x11
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x43606a
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dc538
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dcbb0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x12
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4360b2
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dcbb0
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d8c20
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x13
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4360fa
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d8c20
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dd7b0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x14
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x436142
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dd7b0
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dc4d8
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x15
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x43618a
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dc4d8
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dbc98
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x16
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4361d2
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dbc98
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dbd88
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x17
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x43621a
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dbd88
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5da1e0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x18
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x436262
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5da1e0
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dcca0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x19
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4362aa
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dcca0
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d8ef0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x1a
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4362f2
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d8ef0
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d92b0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x1b
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x43633a
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d92b0
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dbc50
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x1c
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x436382
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dbc50
call fcn.0047aa00
push eax
lea eax, [ebx + 4]
mov ecx, esi
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d9490
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x1d
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4363ca
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d9490
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dbce0
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x1e
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x436415
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dbce0
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5dbf80
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x1f
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x436460
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5dbf80
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d95f8
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x20
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4364ab
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d95f8
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5d9238
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x21
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x4364f6
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5d9238
call fcn.0047aa60
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebx + 4]
push eax
call fcn.004747d0
lea ecx, [ebp - 0x134]
call fcn.00424a60
lea eax, [ebp - 0x134]
mov ecx, 0x5da558
push eax
call fcn.004797b0
mov byte [ebp - 4], 0x22
lea ebx, [eax + 0xc]
cmp byte [eax + 0x11c], 0
jne 0x436541
mov ebx, dword [eax + 8]
mov ecx, dword [edi + 0x14]
push 0x5da558
call fcn.0047aa00
dec eax
mov ecx, esi
neg eax
sbb eax, eax
neg eax
inc eax
push eax
lea eax, [ebx + 4]
push eax
call fcn.004745f0
lea ecx, [ebp - 0x134]
call fcn.00424a60
mov bl, 1
cmp byte [ebp - 0x384], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x43659b
mov eax, dword [ebp - 0x498]
lea ecx, [ebp - 0x494]
cmp eax, ecx
je 0x43659b
push eax
call fcn.004e1b56
add esp, 4
lea ecx, [ebp - 0x4c8]
call fcn.00455500
cmp byte [ebp - 0x13c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4365f0
mov eax, dword [ebp - 0x250]
lea ecx, [ebp - 0x24c]
cmp eax, ecx
je 0x4365f0
push eax
call fcn.004e1b56
add esp, 4
jmp 0x4365f0
mov ecx, ebx
call fcn.00450c80
push str.sgtool_not_exist
push 0x5971f4
push eax
call fcn.00450580
add esp, 0xc
xor bl, bl
cmp byte [ebp - 0x260], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x43661c
mov eax, dword [ebp - 0x374]
lea ecx, [ebp - 0x370]
cmp eax, ecx
je 0x43661c
push eax
call fcn.004e1b56
add esp, 4
mov al, bl
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.004d6cfd
mov esp, ebp
pop ebp
ret 0xc