Function at 0x10019e90
Capabilities:
Check for time delay via queryperformancecounter
Encode data using xor
Hash data with crc32
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x248
mov eax, dword [0x1007f098]
xor eax, esp
mov dword [esp + 0x244], eax
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [esp + 0x18]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x1c], xmm0
call edi
mov ecx, dword [esp + 0x18]
sub ecx, dword [0x100824a0]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x100824a4]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], eax
call fcn.100242a0
sub esp, 8
lea eax, [esp + 0x28]
movsd qword [esp], xmm0
push str._0.3lf
push 0x10
push eax
call fcn.10019b10
add esp, 0x14
lea edx, [esp + 0x20]
mov ecx, 0x100824a8
call fcn.10002460
mov edx, str.__INFO_
mov ecx, eax
call fcn.10002460
mov edx, str.PatchOriginalCode
mov ecx, eax
call fcn.10002460
push eax
call fcn.10002700
add esp, 4
lea eax, [esp + 0x40]
push 0x104
push 0
push eax
call fcn.1003e050
add esp, 0xc
lea eax, [esp + 0x40]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x100737ec
lea eax, [esp + 0x44]
mov dword [esp + 0x1c], 0
push eax
lea eax, [esp + 0x20]
push eax
call fcn.10044f3c
mov eax, dword [esp + 0x24]
add esp, 0xc
test eax, eax
je 0x10019ff2
or esi, 0xffffffff
push eax
push 0x100
lea eax, [esp + 0x150]
push 1
push eax
call fcn.1004515c
add esp, 0x10
xor edx, edx
test eax, eax
je 0x10019fbc
movzx ecx, byte [esp + edx + 0x148]
inc edx
xor ecx, esi
shr esi, 8
movzx ecx, cl
xor esi, dword [ecx*4 + 0x10072888]
cmp edx, eax
jb 0x10019fa0
push dword [esp + 0x18]
call fcn.10045297
add esp, 4
push dword [esp + 0x18]
test eax, eax
jne 0x1001a1c8
call fcn.100452c3
add esp, 4
test eax, eax
jne 0x10019fe6
mov eax, dword [esp + 0x18]
jmp 0x10019f82
push dword [esp + 0x18]
call fcn.10045414
add esp, 4
lea eax, [esp + 0x18]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x1c], xmm0
call edi
mov ecx, dword [esp + 0x18]
sub ecx, dword [0x100824a0]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x100824a4]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], eax
call fcn.100242a0
sub esp, 8
lea eax, [esp + 0x28]
movsd qword [esp], xmm0
push str._0.3lf
push 0x10
push eax
call fcn.10019b10
add esp, 0x14
lea edx, [esp + 0x20]
mov ecx, 0x100824f8
call fcn.10002460
mov edx, str.__ERROR_
mov ecx, eax
call fcn.10002460
mov edx, str.Could_not_get_the_executable_crc32
mov ecx, eax
call fcn.10002460
push eax
call fcn.10002700
add esp, 4
xor esi, esi
push esi
push str.0x_08x
lea eax, [esp + 0x38]
xorps xmm0, xmm0
push 0xf
push eax
movaps xmmword [esp + 0x40], xmm0
call fcn.10019b10
add esp, 0x10
lea eax, [esp + 0x18]
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
push eax
call edi
mov ecx, dword [esp + 0x18]
sub ecx, dword [0x100824a0]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x100824a4]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], eax
call fcn.100242a0
sub esp, 8
lea eax, [esp + 0x28]
movsd qword [esp], xmm0
push str._0.3lf
push 0x10
push eax
call fcn.10019b10
add esp, 0x14
lea edx, [esp + 0x20]
mov ecx, 0x100824a8
call fcn.10002460
mov edx, str.__INFO_
mov ecx, eax
call fcn.10002460
mov edx, str.image_crc32:
mov ecx, eax
call fcn.10002460
lea edx, [esp + 0x30]
mov ecx, eax
call fcn.10002460
push eax
call fcn.10002700
add esp, 4
cmp esi, 0x21a8959a
je 0x1001a1f0
cmp esi, 0xd1b38fcb
je 0x1001a1d7
lea eax, [esp + 0x18]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x1c], xmm0
call edi
mov ecx, dword [esp + 0x18]
sub ecx, dword [0x100824a0]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x100824a4]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], eax
call fcn.100242a0
sub esp, 8
lea eax, [esp + 0x28]
movsd qword [esp], xmm0
push str._0.3lf
push 0x10
push eax
call fcn.10019b10
add esp, 0x14
lea edx, [esp + 0x20]
mov ecx, 0x100824f8
call fcn.10002460
mov edx, str.__ERROR_
mov ecx, eax
call fcn.10002460
mov edx, str.Unknown_game_version
mov ecx, eax
call fcn.10002460
push eax
call fcn.10002700
add esp, 4
pop edi
pop esi
mov ecx, dword [esp + 0x244]
xor ecx, esp
call fcn.1003c0aa
mov esp, ebp
pop ebp
ret
call fcn.10045414
add esp, 4
not esi
jmp 0x1001a074
call fcn.1001a5a0
pop edi
pop esi
mov ecx, dword [esp + 0x244]
xor ecx, esp
call fcn.1003c0aa
mov esp, ebp
pop ebp
ret
call fcn.1001a9b0
mov ecx, dword [esp + 0x24c]
pop edi
pop esi
xor ecx, esp
call fcn.1003c0aa
mov esp, ebp
pop ebp
ret