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

Disassembly:
push 0xffffffffffffffff
push 0x1011ed37
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x258
mov eax, dword [0x10127994]
mov dword [esp + 8], eax
mov dword [esp + 0x260], 0
mov dword [esp], eax
mov cl, byte [0x1015e4e8]
mov byte [esp + 0x260], 1
test cl, 1
jne 0x1000237d
mov dl, cl
mov ecx, 0x1015e4c8
or dl, 1
mov byte [0x1015e4e8], dl
call fcn.1003b790
push 0x10002630
call fcn.1006253e
mov eax, dword [0x10127994]
add esp, 4
mov cl, byte [0x1015e4e8]
test cl, 2
jne 0x100023aa
mov dl, cl
push 0x10002620
or dl, 2
mov dword [0x1015e4c4], eax
mov byte [0x1015e4e8], dl
call fcn.1006253e
mov eax, dword [0x10127994]
add esp, 4
mov cl, byte [0x1015e4e8]
test cl, 4
jne 0x100023d2
mov dl, cl
push 0x10002610
or dl, 4
mov dword [0x1015e4c0], eax
mov byte [0x1015e4e8], dl
call fcn.1006253e
add esp, 4
push esi
push edi
push 1
push 0x1015e4c8
lea ecx, [esp + 0x20]
call fcn.1003bcc0
mov eax, dword [0x1015e4c4]
mov byte [esp + 0x268], 2
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x10002409
mov ecx, dword [0x1015e4c0]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x10002539
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x5a]
mov word [esp + 0x58], 0
rep stosd dword es:[edi], eax
lea edx, [esp + 0x58]
push 0x103
push edx
push 0
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x10002539
lea eax, [esp + 0x58]
lea ecx, [esp + 0xc]
push eax
call fcn.1002d280
mov eax, dword [esp + 0xc]
mov byte [esp + 0x268], 3
mov ecx, dword [eax - 8]
cmp ecx, 3
jle 0x10002492
cmp word [eax + 2], 0x3a
jne 0x10002492
cmp word [eax + 4], 0x5c
jne 0x10002492
mov ecx, 0xc
mov esi, str.C:TECSDTransformBackup_
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x24]
movsw word es:[edi], word [esi]
mov ax, word [eax]
push ecx
mov ecx, 0x1015e4c0
mov word [esp + 0x28], ax
call fcn.1002dca0
mov eax, dword [0x10171568]
test eax, eax
je 0x100024bb
mov edx, dword [0x1015e4c0]
push edx
push str.CSDDecryptMgr::GetVerifyDecryptFile_x1_bak___s_
push str.SDTransform
push 0xffffffffffffffff
push 0x10170cd4
call fcn.10060b60
add esp, 0x14
push 0x5c
lea ecx, [esp + 0x10]
call fcn.1002ebd0
cmp eax, 0xffffffff
je 0x100024ff
inc eax
lea ecx, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.10030160
push eax
mov ecx, 0x1015e4c4
mov byte [esp + 0x26c], 4
call fcn.1002dbb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x268], 3
call fcn.1002da20
mov eax, dword [0x10171568]
test eax, eax
je 0x10002528
mov ecx, dword [0x1015e4c4]
push ecx
push str.CSDDecryptMgr::GetVerifyDecryptFile_x2_current___s_
push str.SDTransform
push 0xffffffffffffffff
push 0x10170cd4
call fcn.10060b60
add esp, 0x14
lea ecx, [esp + 0xc]
mov byte [esp + 0x268], 2
call fcn.1002da20
push 0x1015e4c4
lea ecx, [esp + 0x14]
call fcn.1002dbb0
push 0x1015e4c0
lea ecx, [esp + 0xc]
call fcn.1002dbb0
lea ecx, [esp + 0x18]
mov byte [esp + 0x268], 1
call fcn.1003bd20
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10002588
test al, 0x10
je 0x10002588
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
mov eax, dword [esp + 0xc]
push eax
jmp 0x10002594
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov esi, dword [esp + 0x278]
push str._sTEC__X.txt
push esi
call fcn.100309a0
mov eax, dword [0x10171568]
add esp, 0x10
test eax, eax
je 0x100025ce
mov edx, dword [esi]
push edx
push str.CSDDecryptMgr::GetVerifyDecryptFile_ret___s_
push str.SDTransform
push 0xffffffffffffffff
push 0x10170cd4
call fcn.10060b60
add esp, 0x14
lea ecx, [esp + 8]
mov byte [esp + 0x268], 0
call fcn.1002da20
lea ecx, [esp + 0x10]
mov dword [esp + 0x268], 0xffffffff
call fcn.1002da20
mov ecx, dword [esp + 0x260]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x264
ret 4