Function at 0xf0111a7
Capabilities:
Allocate thread local storage
Get common file path
Get file size
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0xf061038]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
push 4
mov ebx, 0x714
mov edi, eax
lea eax, [ebp - 0x210]
push eax
push ebx
call fcn.0f00f2ed
and word [ebp - 0x210], 0xfbef
push dword [ebp - 0x210]
push ebx
call fcn.0f00f2c1
call fcn.0f015a79
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0xf09b5e4], eax
call fcn.0f019a41
call fcn.0f009cd9
call fcn.0f03ddd8
lea eax, [ebp - 0x230]
push eax
call fcn.0f0133e5
test eax, eax
je 0xf01122c
lea eax, [ebp - 0x230]
push eax
call fcn.0f05b961
push esi
push dword [ebp + 8]
call fcn.0f00e026
push 4
lea eax, [ebp - 0x21c]
push eax
push ebx
call fcn.0f00f2ed
mov eax, dword [ebp - 0x21c]
or dword [ebp - 0x210], eax
mov esi, 0x208
push esi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0xf01126b
cmp eax, esi
jb 0xf01127e
push 0xf00212c
push 1
push 1
call fcn.0f03411f
call fcn.0f034856
movzx eax, di
sub eax, 0x404
je 0xf0112fa
sub eax, 0xd
je 0xf0112e4
dec eax
je 0xf0112ce
sub eax, 0x3f2
je 0xf0112b8
sub eax, 0x400
je 0xf0112b8
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0xf0112a5
mov esi, 0xf002120
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0xf011312
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0xf0112bf
mov esi, 0xf002110
jmp 0xf01130e
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0xf0112d5
mov esi, 0xf002100
jmp 0xf01130e
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0xf0112eb
mov esi, 0xf0020f0
jmp 0xf01130e
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0xf011301
mov esi, 0xf0020e0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0xf0113f4
lea eax, [ebp - 0x214]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, edi
mov dword [ebp - 0x218], eax
je 0xf0113f4
cmp dword [ebp - 0x214], edi
jne 0xf0113f4
mov eax, dword [0xf09b5dc]
push edi
lea ecx, [ebp - 0x214]
push ecx
push dword [ebp - 0x218]
add eax, 0x700
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0xf0113e2
mov eax, dword [ebp - 0x218]
cmp eax, dword [ebp - 0x214]
jne 0xf0113e2
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x210]
push ebx
call fcn.0f00f2c1
push 0x70
call sym.ntvdm.exe_setCS
push edi
call sym.ntvdm.exe_setIP
cmp dword [0xf06bb04], edi
je 0xf0113c2
push 0x20
jmp 0xf0113d6
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetPriorityClass]
cmp eax, 0x100
jne 0xf0113de
push 0x80
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
xor eax, eax
jmp 0xf011413
lea eax, [ebp - 0x20c]
push eax
push 1
push 9
call fcn.0f03411f
jmp 0xf011409
lea eax, [ebp - 0x20c]
push eax
push 1
push 9
call fcn.0f03411f
cmp esi, 0xffffffff
je 0xf011410
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0f01b45c
leave
ret 8