Function at 0x10d0eb8
Capabilities:
Check for time delay via queryperformancecounter
Read file on windows
Write file on windows

Disassembly:
push 0x5c
mov eax, 0x11b9aa6
call fcn.010aa5f6
mov ebx, ecx
fldz
xor esi, esi
xor eax, eax
mov dword [ebp - 0x30], esi
lea edi, [ebp - 0x2c]
stosd dword es:[edi], eax
mov dword [ebp - 0x48], esi
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
mov dword [ebp - 0x40], esi
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
mov dword [ebp - 0x28], esi
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
mov dword [ebp - 0x38], esi
lea edi, [ebp - 0x34]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x10], esi
mov dword [ebx + 0x48], esi
mov dword [ebp - 0x18], esi
fstp qword [eax]
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
cmp eax, esi
je 0x10d1252
mov eax, dword [ebp - 0x28]
or eax, dword [ebp - 0x24]
je 0x10d1252
push dword [ebp - 0x24]
fild qword [ebp - 0x28]
lea ecx, [ebp - 0x68]
push dword [ebp - 0x28]
fstp qword [ebp - 0x50]
call fcn.010cf03a
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push eax
push edi
mov ecx, ebx
mov dword [ebp - 4], esi
call fcn.010cfa27
test al, al
je 0x10d1183
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov dword [ebp - 0x14], eax
cmp eax, esi
je 0x10d1183
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
je 0x10d10fc
mov eax, dword [ebx + 0x48]
cmp eax, dword [esi + 0xc]
jl 0x10d0f85
push dword [esi + 0x14]
lea ecx, [ebp - 0x68]
call fcn.010cf0ac
test al, al
je 0x10d1183
push dword [esi + 0xc]
mov ecx, ebx
push dword [ebp + 8]
call fcn.010cf201
test al, al
je 0x10d1183
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0xa
ja 0x10d1183
mov eax, dword [esi]
add eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
adc ecx, dword [ebp + 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x10]
xor edi, edi
mov dword [ebp - 0x34], ecx
test eax, eax
je 0x10d0fcd
cmp eax, 1
jne 0x10d0fe4
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebx + 8]
call fcn.010cef7a
mov edi, eax
test edi, edi
je 0x10d119b
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x10d100c
xor ecx, ecx
lea eax, [ebx + 0x48]
inc ecx
lock xadd dword [eax], ecx
push 0x10d02f2
push edi
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_ReadFileEx]
jmp 0x10d1040
cmp eax, 1
jne 0x10d1032
xor ecx, ecx
lea eax, [ebx + 0x48]
inc ecx
lock xadd dword [eax], ecx
push 0x10d02f2
push edi
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_WriteFileEx]
jmp 0x10d1040
cmp eax, 2
jne 0x10d1043
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x10d10eb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x20], eax
cmp eax, 0x3e5
je 0x10d10eb
test edi, edi
je 0x10d1071
push edi
lea ecx, [ebx + 8]
call fcn.010cefe2
mov eax, dword [ebp - 0x20]
cmp dword [esi + 0x10], 2
je 0x10d1081
lea ecx, [ebx + 0x48]
or edx, 0xffffffff
lock xadd dword [ecx], edx
cmp eax, 0x5ad
je 0x10d10a6
cmp eax, 0x5aa
je 0x10d10a6
cmp eax, 0x6f8
je 0x10d10a6
cmp eax, 0x718
je 0x10d10a6
cmp eax, 8
jne 0x10d11a5
mov eax, dword [ebx + 0x50]
cmp byte [eax], 0
je 0x10d10e3
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x10d10bd
lea edi, [eax + 0x90]
jmp 0x10d10bf
xor edi, edi
push 0x1ad
push 0x485
push 0x1015400
call fcn.010b32d2
push eax
push edi
call fcn.01084781
push eax
call fcn.010855f6
add esp, 0xc
inc dword [ebp - 0x1c]
jmp 0x10d0f9e
mov eax, dword [ebp + 0xc]
add esi, 0x18
cmp esi, dword [eax + 8]
jne 0x10d0f6a
mov edi, eax
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x40]
push eax
call esi
test eax, eax
je 0x10d1129
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
sbb ecx, dword [ebp - 0x2c]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
fild qword [ebp + 0x10]
mov eax, dword [ebp + 0x1c]
fdiv qword [ebp - 0x50]
fstp qword [eax]
push 0
push dword [ebp + 8]
mov ecx, ebx
call fcn.010cf201
test al, al
je 0x10d1183
lea eax, [ebp - 0x48]
push eax
call esi
test eax, eax
je 0x10d1183
mov ecx, edi
call fcn.010c5c27
imul eax, dword [ebp - 0x18]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
test eax, eax
jge 0x10d115e
fadd qword [0x1007b20]
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x44]
sbb ecx, dword [ebp - 0x2c]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
fild qword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
fdiv qword [ebp - 0x50]
fdivp st(1)
fmul qword [0x1007b18]
fstp qword [eax]
lea esi, [ebx + 0x48]
mov eax, dword [esi]
test eax, eax
jle 0x10d1220
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_CancelIo]
jmp 0x10d121a
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x10d1183
mov ecx, dword [ebx + 0x50]
cmp byte [ecx], 0
je 0x10d1183
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x10d11bb
mov ecx, 0x100bb60
jmp 0x10d11ca
mov ecx, 0x100bb6c
cmp esi, 1
je 0x10d11ca
mov ecx, 0x1015540
push eax
push ecx
push 0x1ae
push 0x491
push 0x1015400
call fcn.010b32f7
mov ecx, dword [ebx + 0x14]
add esp, 0x14
test ecx, ecx
je 0x10d11f2
add ecx, 0x90
jmp 0x10d11f4
xor ecx, ecx
push eax
push ecx
call fcn.01084781
push eax
call fcn.010855f6
add esp, 0xc
jmp 0x10d1183
push 1
push 0x2710
call dword [sym.imp.KERNEL32.dll_SleepEx]
test eax, eax
je 0x10d1220
mov eax, dword [esi]
test eax, eax
jg 0x10d1209
cmp dword [ebp - 0x10], 0
je 0x10d1236
push 0x8000
push 0
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10d124e
mov bl, 1
lea ecx, [ebp - 0x68]
call fcn.010cf088
mov al, bl
jmp 0x10d1254
xor bl, bl
jmp 0x10d1242
xor al, al
call fcn.010aa6e2
ret 0x18