Function at 0x4ef200
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x604135
mov eax, dword fs:[0]
push eax
sub esp, 0x648
mov eax, dword [0x6b000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x574], esi
mov eax, dword [esi + 8]
push str._RecoverMaster__ScanLostPartitionNTFS_start__n
mov ecx, dword [eax + 0x30]
add ecx, dword [eax + 0x20]
mov edi, dword [eax + 0x34]
adc edi, dword [eax + 0x24]
mov dword [ebp - 0x5a4], ecx
call fcn.004131f0
mov esi, dword [esi + 0x48]
mov eax, edi
mul esi
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x5a4]
mul esi
mov esi, dword [ebp - 0x574]
add ecx, edx
push ecx
push eax
push dword [esi + 4]
lea ecx, [ebp - 0x654]
call fcn.004a81e0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x630], 0
jne 0x4ef2e5
push 0
push 0
push 0
push 0
mov ecx, esi
call fcn.004eafa0
cmp dword [esi + 0x7c], 0
jne 0x4efcfe
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x5c0], esp
push 0x6b1598
call fcn.00420d90
mov byte [ebp - 4], 1
mov ecx, dword [esi + 0x68]
push 0
call dword [sym.imp.ycomuiu.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::operator_struct_HWND____void_const]
mov byte [ebp - 4], 0
mov edx, 0x40
mov ecx, eax
call fcn.004e0d20
add esp, 0x1c
jmp 0x4efcfe
push str._RecoverMaster__ScanLostPartitionNTFS_step1__n
call fcn.004131f0
mov ecx, dword [ebp - 0x5e4]
add esp, 4
test ecx, ecx
jne 0x4ef31b
xorps xmm0, xmm0
movlpd qword [ebp - 0x5bc], xmm0
mov eax, dword [ebp - 0x5b8]
mov edi, dword [ebp - 0x5bc]
mov dword [ebp - 0x59c], eax
jmp 0x4ef33d
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 8]
call eax
push 0
push dword [ebp - 0x644]
push edx
push eax
call fcn.005dd710
mov edi, eax
mov dword [ebp - 0x59c], edx
mov eax, edx
push eax
push edi
push str._RecoverMaster__ScanLostPartitionNTFS_RecordCount_d_n
mov dword [ebp - 0x5a0], edi
call fcn.004131f0
add esp, 0xc
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4efd5d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x584], esi
mov byte [ebp - 4], 4
xor edx, edx
mov ecx, 0x10
mov dword [ebp - 0x5a4], 0
or eax, 0xffffffff
mov dword [ebp - 0x578], ecx
mov dword [ebp - 0x580], edx
cmp dword [ebp - 0x59c], edx
jb 0x4efce5
ja 0x4ef3b0
cmp edi, ecx
jbe 0x4efce5
nop dword [eax + eax]
push 0
push 0x64
push edx
push ecx
call fcn.005dd710
mov ecx, eax
mov edi, 0x64
mov eax, edx
mul edi
mov edi, eax
mov eax, ecx
mov ecx, 0x64
mul ecx
mov ecx, dword [ebp - 0x578]
add edi, edx
sub ecx, eax
mov eax, dword [ebp - 0x580]
sbb eax, edi
mov edi, dword [ebp - 0x574]
test ecx, ecx
jne 0x4ef448
test eax, eax
jne 0x4ef448
push dword [edi + 0x90]
lea eax, [ebp - 0x5c4]
push eax
call fcn.004ea9e0
mov byte [ebp - 4], 5
mov ecx, edi
push 1
push dword [eax]
mov eax, dword [ebp - 0x5a0]
add eax, 0xfffffff0
push eax
mov eax, dword [ebp - 0x578]
add eax, 0xfffffff1
push eax
call fcn.004eafa0
mov byte [ebp - 4], 4
or eax, 0xffffffff
mov edx, dword [ebp - 0x5c4]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4ef448
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [edi + 0x74], 0
jne 0x4efce2
lea eax, [ebp - 0x654]
push eax
lea ecx, [ebp - 0x3c8]
call fcn.00479b60
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3c8]
push dword [ebp - 0x580]
mov dword [ebp - 0x370], 0x87
push dword [ebp - 0x578]
call fcn.0047a760
test eax, eax
je 0x4efc9b
lea ecx, [ebp - 0x3c8]
call fcn.0047abe0
test eax, eax
je 0x4efc9b
mov eax, dword [ebp - 0x3bc]
test byte [eax + 0x16], 2
jne 0x4efc9b
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x3c8]
call fcn.0047ad70
test eax, eax
jg 0x4ef588
lea ecx, [ebp - 0x5a8]
call fcn.0040c490
mov byte [ebp - 4], 8
lea eax, [ebp - 0x5a8]
mov edi, dword [ebp - 0x5a4]
push edi
push str.File_.7d
push eax
call fcn.0040d300
mov eax, dword [ebp - 0x5a8]
inc edi
mov dword [ebp - 0x5a4], edi
add esp, 0xc
lea edi, [esi - 0x10]
lea ecx, [eax - 0x10]
cmp ecx, edi
je 0x4ef564
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4ef54f
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x4ef54f
call fcn.0040c950
mov dword [ebp - 0x56c], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4ef544
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x56c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x584], esi
jmp 0x4ef564
push dword [eax - 0xc]
lea ecx, [ebp - 0x584]
push eax
call fcn.0040c9d0
mov esi, dword [ebp - 0x584]
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov edx, dword [ebp - 0x5a8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4ef5b9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4ef5b9
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ef591
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x584]
call fcn.0040c9d0
mov esi, dword [ebp - 0x584]
mov eax, dword [ebp - 0x364]
lea ecx, [ebp - 0x598]
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x35c], eax
call fcn.0040c490
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x364]
mov dword [ebp - 0x35c], eax
test eax, eax
je 0x4ef602
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4ef602
sub esp, 8
lea eax, [ebp - 0x5bc]
push eax
call fcn.00478ef0
jmp 0x4ef616
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5bc], 0
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x5bc]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
jne 0x4ef638
xorps xmm0, xmm0
movups xmmword [ebp - 0x228], xmm0
movzx eax, word [ebp - 0x21e]
push eax
movzx eax, word [ebp - 0x220]
push eax
movzx eax, word [ebp - 0x222]
push eax
movzx eax, word [ebp - 0x226]
push eax
movzx eax, word [ebp - 0x228]
push eax
lea eax, [ebp - 0x598]
push str._04d__02d__02d___02d:_02d
push eax
call fcn.0040d300
xor edi, edi
add esp, 0x1c
mov dword [ebp - 0x590], edi
mov dword [ebp - 0x58c], edi
mov dword [ebp - 0x588], edi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x570]
call fcn.0040c490
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x574]
push 0xffffffffffffffff
push dword [eax + 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x574]
cmp dword [eax + 0x74], edi
jne 0x4ef8ce
nop dword [eax + eax]
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x334], eax
test eax, eax
je 0x4ef6e6
mov eax, dword [eax + 4]
test eax, eax
je 0x4ef6e6
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4ef6e6
mov ecx, dword [eax]
movzx edi, word [eax + 4]
jmp 0x4ef6ec
or ecx, 0xffffffff
or edi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x56c], ecx
mov dword [ebp - 0x5b4], ecx
mov dword [ebp - 0x5b0], edi
cmp dword [ebp - 0x58c], eax
jle 0x4ef73f
mov edx, dword [ebp - 0x590]
nop
cmp dword [edx + eax*8], ecx
jne 0x4ef71f
cmp dword [edx + eax*8 + 4], edi
jne 0x4ef71f
mov cl, 1
jmp 0x4ef721
xor cl, cl
test cl, cl
jne 0x4ef736
mov ecx, dword [ebp - 0x56c]
inc eax
cmp eax, dword [ebp - 0x58c]
jl 0x4ef710
jmp 0x4ef73f
cmp eax, 0xffffffff
jne 0x4ef8c8
lea eax, [ebp - 0x5b4]
push eax
lea ecx, [ebp - 0x590]
call fcn.004f14a0
mov ecx, dword [ebp - 0x56c]
cmp ecx, 5
jne 0x4ef764
test edi, edi
je 0x4ef8c8
mov eax, ecx
and eax, edi
cmp eax, 0xffffffff
je 0x4ef8c8
cmp edi, dword [ebp - 0x59c]
ja 0x4ef8c8
jb 0x4ef78b
cmp ecx, dword [ebp - 0x5a0]
ja 0x4ef8c8
push edi
push ecx
lea ecx, [ebp - 0x3c8]
call fcn.0047a760
test eax, eax
je 0x4ef8c8
lea ecx, [ebp - 0x3c8]
call fcn.0047abe0
test eax, eax
je 0x4ef8c8
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x3c8]
call fcn.0047ad70
test eax, eax
jle 0x4ef8c8
mov eax, dword [ebp - 0x3bc]
test byte [eax + 0x16], 2
je 0x4ef8c8
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x594]
call fcn.0040c380
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x594]
push 1
push 0x64f4f8
call fcn.0040ceb0
mov eax, dword [ebp - 0x570]
lea ecx, [ebp - 0x594]
push dword [eax - 0xc]
push eax
call fcn.0040ceb0
mov eax, dword [ebp - 0x594]
mov edi, dword [ebp - 0x570]
add edi, 0xfffffff0
lea edx, [eax - 0x10]
mov dword [ebp - 0x56c], edx
cmp edx, edi
je 0x4ef88b
cmp dword [edi + 0xc], 0
jl 0x4ef87c
mov edx, dword [edx]
cmp edx, dword [edi]
jne 0x4ef87c
mov ecx, dword [ebp - 0x56c]
call fcn.0040c950
mov dword [ebp - 0x56c], eax
lea edx, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ef871
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x56c]
add eax, 0x10
mov dword [ebp - 0x570], eax
jmp 0x4ef88b
push dword [eax - 0xc]
lea ecx, [ebp - 0x570]
push eax
call fcn.0040c9d0
mov byte [ebp - 4], 0xc
or eax, 0xffffffff
mov edx, dword [ebp - 0x594]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4ef8ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x574]
push 0xffffffffffffffff
push dword [edi + 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [edi + 0x74], 0
je 0x4ef6c0
mov edi, dword [ebp - 0x590]
lea eax, [ebp - 0x570]
mov edx, 0x64f4f8
push eax
lea ecx, [ebp - 0x5c8]
call fcn.00435920
add esp, 4
mov byte [ebp - 4], 0xf
mov edx, dword [eax]
lea ecx, [edx - 0x10]
mov dword [ebp - 0x56c], ecx
lea eax, [edx - 0x10]
mov ecx, dword [ebp - 0x570]
add ecx, 0xfffffff0
mov dword [ebp - 0x57c], ecx
cmp eax, ecx
je 0x4ef979
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [ebp - 0x5ac], edi
mov edi, dword [ebp - 0x590]
jl 0x4ef96a
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4ef96a
mov ecx, dword [ebp - 0x56c]
call fcn.0040c950
mov dword [ebp - 0x56c], eax
or ecx, 0xffffffff
mov eax, dword [ebp - 0x5ac]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ef959
mov eax, dword [ebp - 0x57c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x56c]
add eax, 0x10
mov dword [ebp - 0x570], eax
jmp 0x4ef979
push dword [edx - 0xc]
lea ecx, [ebp - 0x570]
push edx
call fcn.0040c9d0
mov byte [ebp - 4], 0xc
or eax, 0xffffffff
mov edx, dword [ebp - 0x5c8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4ef99b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
push eax
lea ecx, [ebp - 0x5c0]
lea edx, [edx + 0x9c]
call fcn.004359f0
add esp, 4
mov byte [ebp - 4], 0x11
mov edx, dword [eax]
lea ecx, [edx - 0x10]
mov dword [ebp - 0x57c], ecx
lea eax, [edx - 0x10]
mov ecx, dword [ebp - 0x570]
add ecx, 0xfffffff0
mov dword [ebp - 0x56c], ecx
cmp eax, ecx
je 0x4efa4d
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [ebp - 0x5ac], edi
mov edi, dword [ebp - 0x590]
jl 0x4efa3e
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4efa3e
mov ecx, dword [ebp - 0x57c]
call fcn.0040c950
mov dword [ebp - 0x57c], eax
or ecx, 0xffffffff
mov eax, dword [ebp - 0x5ac]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4efa2d
mov eax, dword [ebp - 0x56c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x57c]
add eax, 0x10
mov dword [ebp - 0x570], eax
jmp 0x4efa4d
push dword [edx - 0xc]
lea ecx, [ebp - 0x570]
push edx
call fcn.0040c9d0
mov byte [ebp - 4], 0xc
or eax, 0xffffffff
mov edx, dword [ebp - 0x5c0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4efa6f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x654]
push eax
lea ecx, [ebp - 0x568]
call fcn.00479b60
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x568]
push dword [ebp - 0x580]
push dword [ebp - 0x578]
call fcn.0047a760
test eax, eax
je 0x4efc19
lea ecx, [ebp - 0x568]
mov dword [ebp - 0x510], 0x83
call fcn.0047abe0
test eax, eax
je 0x4efc19
push ecx
lea ecx, [ebp - 0x568]
call fcn.0047b040
mov ecx, eax
test ecx, ecx
je 0x4efc19
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 8]
call eax
push 0x48
mov dword [ebp - 0x57c], eax
mov edi, edx
call fcn.00560437
add esp, 4
mov dword [ebp - 0x5cc], eax
mov byte [ebp - 4], 0x16
mov ecx, eax
push 0xffffffffffffffff
push dword [ebp - 0x580]
push dword [ebp - 0x578]
push edi
push dword [ebp - 0x57c]
push dword [ebp - 0x598]
push dword [ebp - 0x570]
push esi
call fcn.00494500
mov edx, eax
mov byte [ebp - 4], 0x13
test edx, edx
je 0x4efba9
mov dword [edx + 0x20], 0xffffffff
mov ecx, dword [ebp - 0x364]
mov dword [ebp - 0x35c], ecx
test ecx, ecx
je 0x4efb5a
mov eax, dword [ecx + 4]
test eax, eax
je 0x4efb5a
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x20]
and eax, 0x800
jmp 0x4efb5c
xor eax, eax
mov byte [edx + 0x3d], al
mov eax, dword [ebp - 0x364]
mov dword [ebp - 0x35c], eax
test eax, eax
je 0x4efb83
mov eax, dword [eax + 4]
test eax, eax
je 0x4efb83
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x20]
and eax, 0x4000
jmp 0x4efb85
xor eax, eax
mov edi, dword [ebp - 0x574]
mov byte [edx + 0x3c], al
push edx
mov ecx, dword [edi + 0x68]
call fcn.004b4eb0
test al, al
je 0x4efba9
add dword [edi + 0x90], 1
adc dword [edi + 0x94], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x568]
call fcn.00479c30
mov byte [ebp - 4], 0xb
or edi, 0xffffffff
mov edx, dword [ebp - 0x570]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4efbdc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x590]
test eax, eax
je 0x4efbfd
push eax
call fcn.005a51fb
add esp, 4
mov dword [ebp - 0x590], 0
mov dword [ebp - 0x58c], 0
mov dword [ebp - 0x588], 0
mov byte [ebp - 4], 7
mov eax, edi
jmp 0x4efc80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x568]
call fcn.00479c30
mov byte [ebp - 4], 0xb
or eax, 0xffffffff
mov edx, dword [ebp - 0x570]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4efc4a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
test edi, edi
je 0x4efc65
push edi
call fcn.005a51fb
add esp, 4
mov dword [ebp - 0x590], 0
mov dword [ebp - 0x58c], 0
mov dword [ebp - 0x588], 0
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov edx, dword [ebp - 0x598]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4efc9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x3c8]
call fcn.00479c30
mov ecx, dword [ebp - 0x578]
mov edx, dword [ebp - 0x580]
add ecx, 1
mov dword [ebp - 0x578], ecx
adc edx, 0
mov dword [ebp - 0x580], edx
cmp edx, dword [ebp - 0x59c]
jb 0x4ef3b0
ja 0x4efce2
cmp ecx, dword [ebp - 0x5a0]
jb 0x4ef3b0
or eax, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4efcfe
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - method.CLostNTFSVolume.virtual_0], vtable.CLostNTFSVolume.0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x634]
mov dword [ebp - method.CNTFSVolume.virtual_0], vtable.CNTFSVolume.0
cmp eax, 0xffffffff
je 0x4efd32
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x5e8]
test ecx, ecx
je 0x4efd42
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055f9be
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040b250
int3