Function at 0x100b46a0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a8005
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x1020c6f4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x34], ecx
mov ecx, 0x103b3339
call fcn.1000602d
mov eax, dword [0x10224b4c]
mov esi, dword [ebp - 0x3c]
mov dword [0x10224b44], eax
mov dword [0x10224b50], 0
mov dword [ebp - 4], 0
nop word [eax + eax]
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0x15], 0
jne 0x100b4b7e
mov ecx, dword [0x10224b38]
call fcn.1000313e
test eax, eax
jle 0x100b4b5d
mov ecx, dword [0x10224ca8]
call fcn.100041a1
mov ecx, dword [0x10224b38]
call fcn.10001c35
mov ecx, dword [0x10224ca8]
mov dword [ebp - 0x18], eax
call fcn.10001fb9
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x100b4b5d
mov ecx, dword [eax + 0x20]
mov edi, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 0x24]
mov al, byte [eax]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x12], al
test edi, edi
je 0x100b4700
test edx, edx
je 0x100b4700
mov ecx, dword [0x10224c48]
call fcn.100041a1
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x10224b44]
mov dword [ecx + 0x14], eax
cmp dword [0x10224b44], 0
jg 0x100b47d8
mov ecx, dword [ebp - 0x20]
imul eax, esi, 0xd818
push dword [eax + 0x10233458]
mov eax, dword [ebp - 0x24]
shrd ecx, eax, 9
push edi
shr eax, 9
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str._ERR__TDiskThread::Execute__Error__d___LastError:_d___llu__dwRead:_ld__Handle:_ld
call fcn.100021df
add esp, 0x1c
push str._ERR__TDiskThread::Execute__m_bClonCanceled__true
call fcn.100021df
add esp, 4
mov byte [0x10224b62], 1
mov ecx, dword [0x10224c48]
call fcn.10001fb9
xor al, al
mov byte [ebp - 0x11], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [ebp - 0x12], 0
mov dword [ebp - 0x30], eax
je 0x100b4942
xor esi, esi
mov dword [ebp - 0x28], esi
cmp esi, dword [0x10224b4c]
jge 0x100b4b26
imul eax, esi, 0xd818
mov dword [ebp - 0x2c], eax
cmp byte [eax + 0x1023fbf8], 0
jne 0x100b493c
cmp byte [eax + 0x1023fbf9], 0
jne 0x100b493c
mov eax, dword [ebp - 0x18]
xorps xmm0, xmm0
push 0x10006e10
movzx ecx, byte [eax + 0xc]
imul eax, esi, 0x1b03
add ecx, eax
mov eax, dword [ebp - 0x28]
mov edi, dword [ecx*8 + 0x1023fc00]
mov edx, dword [ecx*8 + 0x1023fc04]
add edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
adc edx, dword [ebp - 0x24]
add ecx, 0x28
shl eax, 5
add ecx, eax
mov eax, dword [ebp - 0x18]
push ecx
push dword [ebp - 0x1c]
push dword [ebp - 0x38]
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ecx + 0x18], esi
mov dword [eax + 0x1023fcd8], edi
mov dword [eax + 0x1023fcdc], edx
mov dword [ecx + 8], edi
mov edi, eax
mov eax, dword [edi + 0x1023fcdc]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x1023345c]
mov dword [ecx + 0x10], eax
push dword [edi + 0x10233458]
call dword [sym.imp.KERNEL32.dll_WriteFileEx]
test eax, eax
jne 0x100b491f
mov ecx, dword [0x10224c48]
call fcn.100041a1
inc dword [0x10224b54]
cmp byte [edi + 0x1023fbf8], 0
jne 0x100b490b
push dword [edi + 0x10233458]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x1c]
shrd ecx, eax, 9
shr eax, 9
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str._ERR__TDiskThread::Execute__WriteDisk_Error__d___LastError__d___llu__dwRead__ld__Handle__ld
call fcn.100021df
add esp, 0x1c
push esi
call fcn.1000255e
add esp, 4
mov ecx, dword [0x10224c48]
call fcn.10001fb9
inc dword [ebp - 0x28]
inc esi
jmp 0x100b4800
mov eax, dword [ebp - 0x1c]
add dword [edi + 0x1023fcd0], eax
mov byte [ebp - 0x11], 1
adc dword [edi + 0x1023fcd4], 0
inc dword [0x10224b58]
inc dword [ebp - 0x28]
inc esi
jmp 0x100b4800
mov eax, edi
mov dword [ebp - 0x2c], 0
imul eax, dword [0x10224b4c]
push eax
call fcn.100015f0
mov edx, dword [ebp - 0x18]
add esp, 4
mov dword [edx + 8], eax
test eax, eax
jne 0x100b49a0
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
inc ecx
mov dword [ebp - 0x2c], ecx
cmp eax, 0xa
jge 0x100b4ad9
push 1
push dword [0x1020c1f0]
call fcn.100063cf
mov eax, edi
imul eax, dword [0x10224b4c]
push eax
call fcn.100015f0
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov dword [edx + 8], eax
test eax, eax
je 0x100b4965
xor esi, esi
mov dword [ebp - 0x28], esi
nop word [eax + eax]
cmp esi, dword [0x10224b4c]
jge 0x100b4b26
imul eax, esi, 0xd818
mov dword [ebp - 0x2c], eax
cmp byte [eax + 0x1023fbf8], 0
jne 0x100b4b1d
cmp byte [eax + 0x1023fbf9], 0
jne 0x100b4b1d
movzx ecx, byte [edx + 0xc]
xorps xmm0, xmm0
imul eax, esi, 0x1b03
push 0x10002d6f
add ecx, eax
mov eax, dword [ecx*8 + 0x1023fc00]
mov edi, dword [ecx*8 + 0x1023fc04]
add eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
adc edi, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
shl eax, 5
add eax, 0x28
add edx, eax
mov eax, dword [ebp - 0x18]
push edx
push dword [ebp - 0x1c]
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x1c], ecx
mov ecx, esi
imul ecx, dword [ebp - 0x1c]
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], esi
add ecx, dword [eax + 8]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 0x1023fcdc], edi
mov edi, ecx
mov dword [ecx + 0x1023fcd8], eax
mov ecx, dword [ebp - 0x3c]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x1023fcdc]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x1023345c]
push ecx
mov dword [edx + 0x10], eax
push dword [edi + 0x10233458]
call dword [sym.imp.KERNEL32.dll_ReadFileEx]
test eax, eax
jne 0x100b4b00
mov ecx, dword [0x10224c48]
call fcn.100041a1
inc dword [0x10224b54]
cmp byte [edi + 0x1023fbf8], 0
jne 0x100b4ac2
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
shrd ecx, eax, 9
shr eax, 9
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._ERR__TDiskThread::Execute__ReadDisk_Error_LastError__d___llu
call fcn.100021df
add esp, 0x10
push esi
call fcn.1000255e
add esp, 4
mov ecx, dword [0x10224c48]
call fcn.10001fb9
inc dword [ebp - 0x28]
inc esi
mov edx, dword [ebp - 0x18]
jmp 0x100b49b0
imul edi, dword [0x10224b4c]
push dword [0x10224b50]
push edi
push str._ERR__TDiskThread::Execute__ReadDisk_pBuff__szNew__d___NULL___d
call fcn.100021df
add esp, 0xc
mov byte [0x10224b63], 1
jmp 0x100b4700
mov eax, dword [ebp - 0x1c]
add dword [edi + 0x1023fcd0], eax
mov byte [ebp - 0x11], 1
adc dword [edi + 0x1023fcd4], 0
inc dword [0x10224b58]
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
inc esi
jmp 0x100b49b0
cmp byte [ebp - 0x11], 0
je 0x100b4700
mov ecx, dword [0x10224c48]
call fcn.100041a1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [0x10224c48]
inc dword [0x10224b50]
shr eax, 9
add dword [0x10224b5c], eax
call fcn.10001fb9
jmp 0x100b4700
push 1
push 0x3e8
push dword [0x10224cb8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
jmp 0x100b4700
mov dword [ebp - 4], 0xffffffff
mov byte [eax + 0x14], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._INF__TDiskThread::Execute__Terminated__d
call fcn.100021df
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret