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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, 0xff28
call fcn.004e1f60
mov eax, dword [0x55e2f4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebx + 0xc]
lea eax, [ebp - 0x1400]
push edi
mov edi, dword [ebx + 8]
push 0x802
push 0
push eax
mov dword [ebp - 0xfe7c], edi
mov dword [ebp - 0xfeb4], esi
mov dword [ebp - 0xfe80], 0
mov dword [ebp - 0xfe9c], 0
mov dword [ebp - 0xfed4], 0
mov dword [ebp - 0xfeb8], 0
mov dword [ebp - 0xfe98], 0
call fcn.004e46b0
push 0x802
lea eax, [ebp - 0xbf8]
push 0
push eax
call fcn.004e46b0
mov eax, dword [esi]
xorps xmm0, xmm0
mov dword [ebp - 0xfee0], eax
mov eax, dword [esi + 0x14]
movlpd qword [ebp - 0xff08], xmm0
push 0x200000
mov dword [ebp - 0xfeec], 0
mov dword [ebp - 0xfef0], 0
mov dword [ebp - 0xfebc], eax
mov dword [0x56fb78], 1
call fcn.004f1588
add esp, 0x1c
mov dword [ebp - 0xfe88], eax
test eax, eax
jne 0x461b2f
lea esi, [eax + 2]
jmp 0x462722
push 0x200
call fcn.004f1588
add esp, 4
mov dword [ebp - 0xfeb8], eax
test eax, eax
jne 0x461b4e
lea esi, [eax + 2]
jmp 0x462722
push 0x200
push eax
call dword [sym.imp.KERNEL32.DLL_VirtualLock]
cmp dword [esi + 0x1c], 0
je 0x461b81
push 0x200000
call fcn.004f1588
mov esi, eax
add esp, 4
mov dword [ebp - 0xfe98], esi
test esi, esi
jne 0x461b81
lea esi, [eax + 2]
jmp 0x462722
call fcn.004b81c0
mov dword [ebp - 0xfe9c], eax
test eax, eax
jne 0x461b98
lea esi, [eax + 2]
jmp 0x462722
mov esi, dword [ebp - 0xfee0]
lea eax, [ebp - 0xfed0]
push eax
push esi
call fcn.004275e0
add esp, 8
test eax, eax
jne 0x461bbc
mov esi, 1
jmp 0x462722
cmp edi, 0xffffffff
jne 0x461cd6
lea eax, [ebp - 0xbf8]
push eax
lea eax, [ebp - 0x1400]
push eax
push esi
call fcn.00426bf0
add esp, 0xc
test eax, eax
je 0x461bea
mov esi, 1
jmp 0x462722
mov edi, dword [sym.imp.KERNEL32.DLL_CreateFileW]
or ecx, 0xffffffff
mov dword [ebp - 0xfe7c], ecx
xor esi, esi
nop dword [eax + eax]
mov eax, esi
inc esi
cmp eax, 0x1f4
jge 0x461c5e
push 0
push SysReAllocString
push 3
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0xbf8]
push eax
call edi
mov ecx, eax
mov dword [ebp - 0xfe7c], ecx
cmp esi, 1
jle 0x461c40
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov ecx, dword [ebp - 0xfe7c]
cmp ecx, 0xffffffff
je 0x461c00
mov edi, dword [ebp - 0xfe7c]
cmp edi, 0xffffffff
jne 0x461cd6
mov esi, 0x1c
jmp 0x462722
cmp ecx, 0xffffffff
jne 0x461c45
push 0
push SysReAllocString
push 3
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0xbf8]
push eax
call edi
mov edi, eax
mov dword [ebp - 0xfe7c], edi
cmp edi, 0xffffffff
je 0x461cb1
push 0
push str.DEVICE_IN_USE_INPLACE_ENC
call fcn.00419610
add esp, 8
cmp eax, 7
jne 0x461c4b
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
or edi, 0xffffffff
lea esi, [edi + 0x1d]
jmp 0x462722
push dword [0x5685fc]
call fcn.00417c00
push 0
push str.INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL
call fcn.00419a00
add esp, 0xc
or edi, 0xffffffff
lea esi, [edi + 0x1d]
jmp 0x462722
mov esi, dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
lea eax, [ebp - 0xff0c]
push 0
push eax
push 0
push 0
push 0
push 0
push 0x90083
push edi
call esi
push 0
lea eax, [ebp - 0xff0c]
push eax
push 0x18
lea eax, [ebp - 0xfe78]
push eax
push 0
push 0
push 0x70000
push edi
call esi
test eax, eax
jne 0x461d1f
lea esi, [eax + 1]
jmp 0x462722
push dword [ebp - 0xfecc]
mov eax, dword [ebp - 0xfe64]
push dword [ebp - 0xfed0]
mov dword [ebp - 0xfef4], eax
lea eax, [ebp - 0xfe80]
push dword [ebp - 0xfe9c]
push eax
push dword [ebp - 0xfebc]
push dword [ebp - 0xfee0]
push edi
call fcn.00463470
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x462722
mov edi, dword [ebp - 0xfe80]
xorps xmm0, xmm0
movlpd qword [ebp - 0xfea8], xmm0
mov edx, dword [edi + 0x4448]
mov eax, dword [edi + 0x4458]
mov esi, dword [edi + 0x444c]
mov ecx, dword [edi + 0x445c]
mov dword [ebp - 0xfe8c], edx
sub dword [ebp - 0xfe8c], eax
mov dword [0x56fb80], eax
mov eax, dword [ebp - 0xfe8c]
mov dword [0x56fb84], ecx
mov dword [0x56fb58], edx
mov dword [0x56fb5c], esi
mov dword [ebp - 0xfe90], esi
sbb dword [ebp - 0xfe90], ecx
mov dword [0x56fb64], 3
mov dword [0x56fb7c], 1
jne 0x461ddf
test eax, eax
je 0x4624c9
mov ecx, dword [ebp - 0xfea4]
mov dword [ebp - 0xfedc], ecx
mov ecx, dword [ebp - 0xfea8]
mov dword [ebp - 0xfed8], ecx
mov cl, byte [ebp - 0xfeaa]
mov byte [ebp - 0xfe91], cl
mov cx, word [ebp - 0xfeac]
mov word [ebp - 0xfeae], cx
mov ecx, dword [ebp - 0xfe90]
test ecx, ecx
ja 0x461e2e
jb 0x461e24
cmp eax, 0x200000
jae 0x461e2e
mov esi, eax
mov dword [ebp - 0xfec0], eax
jmp 0x461e39
mov esi, 0x200000
mov dword [ebp - 0xfec0], esi
test esi, 0x1ff
jne 0x462717
sub eax, esi
mov edx, ecx
mov ecx, eax
mov dword [ebp - 0xfee4], eax
sbb edx, 0
add ecx, 0x20000
mov eax, edx
mov dword [ebp - 0xfee8], edx
adc eax, 0
shrd ecx, eax, 9
shr eax, 9
mov dword [ebp - 0xff00], ecx
mov dword [ebp - 0xfefc], eax
nop dword [eax + eax]
mov ecx, dword [edi + 0x4450]
mov eax, dword [edi + 0x4454]
sub ecx, esi
mov edi, dword [ebp - 0xfe7c]
sbb eax, 0
sub ecx, 0x20000
push 0
push 0
sbb eax, 0
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x461bb2
push 0
lea eax, [ebp - 0xfec4]
push eax
push esi
push dword [ebp - 0xfe88]
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x461f7b
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edi, eax
push edi
call fcn.00417720
add esp, 4
test eax, eax
je 0x4624a7
mov eax, dword [ebx + 0x10]
cmp dword [eax], 0
jne 0x4624a7
cmp dword [0x56fb54], 0
jne 0x461f27
push 0
push str.ENABLE_BAD_SECTOR_ZEROING
call fcn.00419720
xor ecx, ecx
add esp, 8
cmp eax, 6
sete cl
mov dword [0x56fb54], ecx
test ecx, ecx
je 0x4624a7
mov eax, dword [ebp - 0xfe80]
lea edx, [ebp - 0xff08]
mov edi, dword [ebp - 0xfe7c]
push edx
push dword [ebp - 0xfef4]
mov ecx, dword [eax + 0x4450]
mov eax, dword [eax + 0x4454]
sub ecx, esi
push 0
sbb eax, 0
sub ecx, 0x20000
push esi
sbb eax, 0
push eax
push ecx
push edi
call fcn.00463790
add esp, 0x1c
test eax, eax
jne 0x461bb2
mov edi, dword [ebp - 0xfe80]
jmp 0x461e80
cmp dword [ebp - 0xfee8], 0
ja 0x46207d
jb 0x461f9a
cmp dword [ebp - 0xfee4], 0x2000
jae 0x46207d
mov edi, esi
mov edx, 0
sub edi, dword [ebp - 0xfe8c]
sbb edx, dword [ebp - 0xfe90]
add edi, 0x2000
mov dword [ebp - 0xfea4], edi
adc edx, 0
xor ecx, ecx
mov dword [ebp - 0xfe8c], edx
test edx, edx
jb 0x46204b
ja 0x461fdb
test edi, edi
je 0x46204b
test edx, edx
jne 0x461fdb
cmp edi, 0x20
jb 0x46204b
movups xmm1, xmmword [0x521d20]
mov eax, edi
mov dword [ebp - 0xfe90], edi
mov edi, dword [ebp - 0xfe88]
and eax, 0x1f
xor ecx, ecx
sub dword [ebp - 0xfe90], eax
mov esi, dword [ebp - 0xfe90]
mov eax, edx
sbb eax, ecx
add edi, 0x10
mov dword [ebp - 0xff10], eax
nop
movups xmm0, xmmword [edi - 0x10]
add ecx, 0x20
lea edi, [edi + 0x20]
mov eax, ecx
pandn xmm0, xmm1
cdq
movups xmmword [edi - 0x30], xmm0
movups xmm0, xmmword [edi - 0x20]
pandn xmm0, xmm1
movups xmmword [edi - 0x20], xmm0
cmp edx, dword [ebp - 0xff10]
jb 0x462010
ja 0x46203f
cmp eax, esi
jb 0x462010
mov esi, dword [ebp - 0xfec0]
mov edi, dword [ebp - 0xfea4]
mov eax, ecx
cdq
cmp edx, dword [ebp - 0xfe8c]
ja 0x46207d
jb 0x46205c
cmp eax, edi
jae 0x46207d
mov esi, dword [ebp - 0xfe88]
not byte [ecx + esi]
inc ecx
mov eax, ecx
cdq
cmp edx, dword [ebp - 0xfe8c]
jb 0x462062
ja 0x462077
cmp eax, edi
jb 0x462062
mov esi, dword [ebp - 0xfec0]
push dword [ebp - 0xfe80]
mov eax, esi
shr eax, 9
push eax
mov dword [ebp - 0xfea4], eax
lea eax, [ebp - 0xff00]
push eax
push dword [ebp - 0xfe88]
call fcn.004b7a50
mov edx, dword [ebp - 0xfeb4]
add esp, 0x10
cmp dword [edx + 0x1c], 0
je 0x4622b6
mov eax, dword [ebp - 0xfe80]
mov byte [ebp - 0xfe81], 1
mov ecx, dword [eax + 0x4450]
mov eax, dword [eax + 0x4454]
sub ecx, esi
mov dword [ebp - 0xfe8c], ecx
sbb eax, 0
mov dword [ebp - 0xfe90], eax
mov eax, dword [edx + 0x1c]
push eax
call fcn.0042d840
add esp, 4
cmp eax, 1
jl 0x46229c
mov edi, 1
nop dword [eax + eax]
movsx eax, byte [ebp - 0xfe81]
push esi
push dword [ebp - 0xfe98]
movd xmm0, eax
lea eax, [ebp - 0xfeac]
push edi
push eax
mov eax, dword [ebp - 0xfeb4]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
mov eax, dword [eax + 0x1c]
push eax
movaps xmmword [ebp - 0xff20], xmm0
call fcn.0042da00
add esp, 0x14
test eax, eax
jne 0x462228
xor ecx, ecx
test esi, esi
je 0x4621f1
mov edi, dword [ebp - 0xfe98]
cmp esi, 0x20
jb 0x4621c4
mov eax, dword [ebp - 0xfe88]
lea edx, [edi - 1]
dec eax
add edx, esi
add eax, esi
cmp edi, eax
ja 0x462177
cmp edx, dword [ebp - 0xfe88]
jae 0x4621c4
movaps xmm1, xmmword [ebp - 0xff20]
mov eax, esi
and eax, 0x1f
mov edx, esi
mov esi, dword [ebp - 0xfe98]
sub edx, eax
mov eax, dword [ebp - 0xfe88]
sub edi, eax
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
paddb xmm0, xmm1
movups xmmword [edi + eax - 0x20], xmm0
movups xmm0, xmmword [eax - 0x10]
paddb xmm0, xmm1
movups xmmword [esi + ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, edx
jb 0x462195
mov esi, dword [ebp - 0xfec0]
mov edi, dword [ebp - 0xfe98]
cmp ecx, esi
jae 0x4621f1
lea eax, [ecx + edi]
mov edx, esi
mov edi, dword [ebp - 0xfe88]
sub edi, dword [ebp - 0xfe98]
sub edx, ecx
mov ch, byte [ebp - 0xfe81]
mov cl, byte [edi + eax]
lea eax, [eax + 1]
add cl, ch
mov byte [eax - 1], cl
sub edx, 1
jne 0x4621e1
push dword [ebp - 0xfe80]
mov edi, dword [ebp - 0xfe98]
lea eax, [ebp - 0xff00]
push dword [ebp - 0xfea4]
push eax
push edi
call fcn.004b7a50
mov ax, word [edi]
add esp, 0x10
mov word [ebp - 0xfeae], ax
mov al, byte [edi + 2]
mov byte [ebp - 0xfe91], al
jmp 0x46222e
mov edi, dword [ebp - 0xfe98]
push 0
push 0
push dword [ebp - 0xfe90]
push dword [ebp - 0xfe8c]
push dword [ebp - 0xfe7c]
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x46242e
push 0
lea eax, [ebp - 0xfec4]
push eax
push esi
push edi
push dword [ebp - 0xfe7c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x46242e
mov al, byte [ebp - 0xfe81]
inc al
mov byte [ebp - 0xfe81], al
movzx edi, al
mov eax, dword [ebp - 0xfeb4]
mov eax, dword [eax + 0x1c]
push eax
call fcn.0042d840
add esp, 4
cmp edi, eax
jle 0x462100
mov ax, word [ebp - 0xfeae]
mov word [ebp - 0xfeac], ax
mov al, byte [ebp - 0xfe91]
mov byte [ebp - 0xfeaa], al
mov eax, dword [ebp - 0xfe80]
push 0
push 0
mov edi, dword [eax + 0x4450]
mov eax, dword [eax + 0x4454]
sub edi, esi
sbb eax, 0
push eax
push edi
push dword [ebp - 0xfe7c]
mov dword [ebp - 0xfea4], eax
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x4624af
push 0
lea eax, [ebp - 0xfec4]
push eax
push esi
push dword [ebp - 0xfe88]
push dword [ebp - 0xfe7c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x462679
mov eax, dword [ebp - 0xfe80]
mov edi, dword [ebp - 0xfee8]
mov dword [ebp - 0xfe90], edi
mov dword [ebp - 0xfef0], 1
sub dword [eax + 0x4450], esi
sbb dword [eax + 0x4454], 0
mov eax, dword [ebp - 0xfe80]
add dword [eax + 0x4458], esi
adc dword [eax + 0x445c], 0
mov eax, dword [ebp - 0xfee4]
mov dword [ebp - 0xfe8c], eax
mov eax, dword [ebp - 0xfed8]
add eax, esi
mov dword [ebp - 0xfed8], eax
adc dword [ebp - 0xfedc], 0
jne 0x462377
cmp eax, 0x4000000
jb 0x4623d1
push dword [ebp - 0xfecc]
mov edi, dword [ebp - 0xfe7c]
push dword [ebp - 0xfed0]
push dword [ebp - 0xfe80]
push dword [ebp - 0xfe9c]
push edi
call fcn.00462920
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x462722
mov edi, dword [ebp - 0xfe90]
xorps xmm0, xmm0
movlpd qword [ebp - 0xfea8], xmm0
mov eax, dword [ebp - 0xfea4]
mov ecx, dword [ebp - 0xfea8]
mov dword [ebp - 0xfedc], eax
mov dword [ebp - 0xfed8], ecx
mov ecx, dword [ebp - 0xfe80]
mov eax, dword [ecx + 0x4458]
mov edx, dword [ecx + 0x4448]
mov esi, dword [ecx + 0x444c]
mov dword [0x56fb80], eax
mov eax, dword [ecx + 0x445c]
mov dword [0x56fb84], eax
mov eax, dword [ebx + 0x10]
mov dword [0x56fb58], edx
mov dword [0x56fb5c], esi
cmp dword [eax], 0
jne 0x4624b9
mov eax, dword [ebp - 0xfe8c]
test edi, edi
jne 0x462423
test eax, eax
je 0x4624c3
mov edi, dword [ebp - 0xfe80]
jmp 0x461e11
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edi, eax
cmp esi, 0x20000
jbe 0x4624a7
push 0
push 0
push dword [ebp - 0xfe90]
push dword [ebp - 0xfe8c]
push dword [ebp - 0xfe7c]
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x4624a7
push dword [ebp - 0xfe80]
mov eax, esi
shr eax, 9
push eax
lea eax, [ebp - 0xff00]
push eax
push dword [ebp - 0xfe88]
call fcn.004b61f0
add esp, 0x10
lea eax, [ebp - 0xfec4]
push 0
push eax
lea eax, [esi - 0x20000]
push eax
mov eax, dword [ebp - 0xfe88]
add eax, 0x20000
push eax
push dword [ebp - 0xfe7c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov eax, dword [sym.imp.KERNEL32.DLL_SetLastError]
push edi
call eax
mov esi, 1
jmp 0x46271c
mov dword [ebp - 0xfeec], 1
mov edi, dword [ebp - 0xfe80]
push dword [ebp - 0xfecc]
push dword [ebp - 0xfed0]
push edi
push dword [ebp - 0xfe9c]
mov edi, dword [ebp - 0xfe7c]
push edi
call fcn.00462920
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x462722
cmp dword [ebp - 0xfeec], eax
jne 0x462665
mov edx, dword [ebp - 0xfeb4]
xor edi, edi
mov dword [0x56fb64], 4
mov ecx, 0x100
mov esi, 1
mov eax, dword [edx + 0x1c]
test eax, eax
cmove ecx, esi
test ecx, ecx
jle 0x462646
nop dword [eax]
cmp dword [edx + 0x1c], 0
jne 0x46253a
xor eax, eax
jmp 0x462545
xor eax, eax
cmp edi, 0xff
setl al
mov ecx, dword [ebp - 0xfe80]
push dword [ecx + 0x4464]
push eax
push dword [ecx + 0x4440]
mov eax, dword [ecx + 0x4460]
or eax, 2
push eax
movzx eax, word [ecx + 0x4438]
push eax
push dword [ecx + 0x445c]
lea eax, [ebp - 0xfed4]
push dword [ecx + 0x4458]
push dword [ecx + 0x4454]
push dword [ecx + 0x4450]
push 0
push 0
push dword [ecx + 0x444c]
push dword [ecx + 0x4448]
push eax
lea eax, [ecx + 0x41a8]
push eax
push dword [ecx + 0x43ec]
mov eax, dword [ebp - 0xfe9c]
push dword [ebp - 0xfebc]
push dword [eax + 4]
push dword [eax]
push dword [ebp - 0xfeb8]
push 0
call fcn.004c8570
mov esi, eax
add esp, 0x54
test esi, esi
jne 0x46271c
push dword [ebp - 0xfeb8]
mov esi, dword [ebp - 0xfe7c]
push eax
push eax
push esi
push 1
call fcn.004c9640
add esp, 0x14
test eax, eax
je 0x4624af
mov eax, dword [ebp - 0xfe80]
push 0
push 1
push dword [eax + 0x444c]
push dword [eax + 0x4448]
push 0
push 0
push dword [ebp - 0xfe9c]
push esi
call fcn.004c97b0
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x46271c
mov edx, dword [ebp - 0xfeb4]
inc edi
mov ecx, 0x100
mov eax, dword [edx + 0x1c]
test eax, eax
mov eax, 1
cmove ecx, eax
cmp edi, ecx
jl 0x462530
mov eax, dword [edx + 0x1c]
push eax
push 0xffffffffffffffff
call fcn.00463550
add esp, 8
mov dword [0x56fb64], 6
xor esi, esi
jmp 0x46271c
mov esi, 0x21
mov dword [0x56fb64], 5
jmp 0x462722
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0xfebc], eax
cmp esi, 0x20000
jbe 0x462702
push 0
push 0
push dword [ebp - 0xfea4]
push edi
mov edi, dword [ebp - 0xfe7c]
push edi
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x4626ed
push dword [ebp - 0xfe80]
mov eax, esi
shr eax, 9
push eax
lea eax, [ebp - 0xff00]
push eax
push dword [ebp - 0xfe88]
call fcn.004b61f0
add esp, 0x10
lea eax, [ebp - 0xfec4]
push 0
push eax
lea eax, [esi - 0x20000]
push eax
mov eax, dword [ebp - 0xfe88]
add eax, 0x20000
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov eax, dword [ebp - 0xfebc]
push eax
mov eax, dword [sym.imp.KERNEL32.DLL_SetLastError]
call eax
mov esi, 1
jmp 0x462722
mov edi, dword [ebp - 0xfe7c]
push eax
mov eax, dword [sym.imp.KERNEL32.DLL_SetLastError]
call eax
mov esi, 1
jmp 0x462722
mov esi, 0x1e
mov edi, dword [ebp - 0xfe7c]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp dword [ebp - 0xfef0], 0
mov dword [ebp - 0xfea4], eax
je 0x462777
cmp edi, 0xffffffff
je 0x462777
mov ecx, dword [ebp - 0xfe80]
test ecx, ecx
je 0x462794
cmp dword [ebp - 0xfe9c], 0
je 0x46277d
mov edx, dword [ebp - 0xfecc]
test edx, edx
jl 0x46277d
mov eax, dword [ebp - 0xfed0]
jg 0x462765
test eax, eax
je 0x46277d
push edx
push eax
push ecx
push dword [ebp - 0xfe9c]
push edi
call fcn.00462920
add esp, 0x14
mov ecx, dword [ebp - 0xfe80]
test ecx, ecx
je 0x462794
push ecx
call fcn.004b8120
add esp, 4
mov dword [ebp - 0xfe80], 0
mov eax, dword [ebp - 0xfe9c]
test eax, eax
je 0x4627a7
push eax
call fcn.004b8120
add esp, 4
mov eax, dword [ebp - 0xfed4]
test eax, eax
je 0x4627c4
push eax
call fcn.004b8120
add esp, 4
mov dword [ebp - 0xfed4], 0
cmp word [ebp - 0x1400], 0
je 0x4627e3
lea eax, [ebp - 0x1400]
push eax
push dword [ebp - 0xfee0]
call fcn.0042aae0
add esp, 8
cmp edi, 0xffffffff
je 0x4627ef
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp - 0xfe88]
test eax, eax
je 0x462802
push eax
call fcn.004ec0b7
add esp, 4
mov edx, dword [ebp - 0xfeb8]
test edx, edx
je 0x462846
mov ecx, 0x200
mov eax, edx
mov edi, ecx
mov byte [edx], 0
lea edx, [edx + 1]
sub edi, 1
jne 0x462815
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x462820
mov edi, dword [ebp - 0xfeb8]
push 0x200
push edi
call dword [sym.imp.KERNEL32.DLL_VirtualUnlock]
push edi
call fcn.004ec0b7
add esp, 4
mov eax, dword [ebp - 0xfe98]
test eax, eax
je 0x462859
push eax
call fcn.004ec0b7
add esp, 4
cmp dword [ebp - 0xff04], 0
mov edi, dword [ebp - 0xff08]
ja 0x462870
test edi, edi
je 0x4628f2
push 0xea60
lea eax, [ebp - 0xfe60]
push 0
push eax
call fcn.004e46b0
push 0x3e8
lea eax, [ebp - 0x3f0]
push 0
push eax
call fcn.004e46b0
add esp, 0x18
lea eax, [ebp - 0x3f0]
push eax
push dword [ebp - 0xff04]
mov eax, dword [ebp - 0xfef4]
cdq
push edi
push edx
push eax
call fcn.004e2b40
push edx
push eax
call fcn.00415f20
add esp, 0xc
push eax
push dword [ebp - 0xff04]
push edi
push str.ZEROED_BAD_SECTOR_COUNT
call fcn.004bb8b0
add esp, 4
push eax
lea eax, [ebp - 0xfe60]
push eax
call fcn.004054c0
lea eax, [ebp - 0xfe60]
push 0
push eax
call fcn.00419c80
add esp, 0x1c
test esi, esi
je 0x462907
cmp esi, 0x21
je 0x462907
push dword [ebp - 0xfea4]
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
xor ecx, ebp
pop esi
call fcn.004e1f40
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret