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

Disassembly:
push 0xffffffffffffffff
push 0x1011e457
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x258
mov eax, dword [0x101267d4]
mov dword [esp + 8], eax
mov dword [esp + 0x260], 0
mov dword [esp], eax
mov cl, byte [0x1015d3a8]
mov byte [esp + 0x260], 1
test cl, 1
jne 0x1000237d
mov dl, cl
mov ecx, 0x1015d388
or dl, 1
mov byte [0x1015d3a8], dl
call fcn.1003ae20
push 0x10002630
call fcn.10061c9e
mov eax, dword [0x101267d4]
add esp, 4
mov cl, byte [0x1015d3a8]
test cl, 2
jne 0x100023aa
mov dl, cl
push 0x10002620
or dl, 2
mov dword [0x1015d384], eax
mov byte [0x1015d3a8], dl
call fcn.10061c9e
mov eax, dword [0x101267d4]
add esp, 4
mov cl, byte [0x1015d3a8]
test cl, 4
jne 0x100023d2
mov dl, cl
push 0x10002610
or dl, 4
mov dword [0x1015d380], eax
mov byte [0x1015d3a8], dl
call fcn.10061c9e
add esp, 4
push esi
push edi
push 1
push 0x1015d388
lea ecx, [esp + 0x20]
call fcn.1003b350
mov eax, dword [0x1015d384]
mov byte [esp + 0x268], 2
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x10002409
mov ecx, dword [0x1015d380]
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.1002c910
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, 0x1015d380
mov word [esp + 0x28], ax
call fcn.1002d330
mov eax, dword [0x1016f218]
test eax, eax
je 0x100024bb
mov edx, dword [0x1015d380]
push edx
push str.CSDDecryptMgr::GetVerifyDecryptFile_x1_bak___s_
push str.SDTransform
push 0xffffffffffffffff
push 0x1016e984
call fcn.100602c0
add esp, 0x14
push 0x5c
lea ecx, [esp + 0x10]
call fcn.1002e260
cmp eax, 0xffffffff
je 0x100024ff
inc eax
lea ecx, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1002f7f0
push eax
mov ecx, 0x1015d384
mov byte [esp + 0x26c], 4
call fcn.1002d240
lea ecx, [esp + 0x14]
mov byte [esp + 0x268], 3
call fcn.1002d0b0
mov eax, dword [0x1016f218]
test eax, eax
je 0x10002528
mov ecx, dword [0x1015d384]
push ecx
push str.CSDDecryptMgr::GetVerifyDecryptFile_x2_current___s_
push str.SDTransform
push 0xffffffffffffffff
push 0x1016e984
call fcn.100602c0
add esp, 0x14
lea ecx, [esp + 0xc]
mov byte [esp + 0x268], 2
call fcn.1002d0b0
push 0x1015d384
lea ecx, [esp + 0x14]
call fcn.1002d240
push 0x1015d380
lea ecx, [esp + 0xc]
call fcn.1002d240
lea ecx, [esp + 0x18]
mov byte [esp + 0x268], 1
call fcn.1003b3b0
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.10030030
mov eax, dword [0x1016f218]
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 0x1016e984
call fcn.100602c0
add esp, 0x14
lea ecx, [esp + 8]
mov byte [esp + 0x268], 0
call fcn.1002d0b0
lea ecx, [esp + 0x10]
mov dword [esp + 0x268], 0xffffffff
call fcn.1002d0b0
mov ecx, dword [esp + 0x260]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x264
ret 4