Function at 0x100244e0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10166bc0
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c3584]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x38]
mov ebx, ecx
mov edi, edx
mov dword [esp + 0x30], 0
mov ecx, dword [ebp + 0x94]
mov byte [esp + 0x1b], 0
mov esi, 1
test ecx, ecx
je 0x1002452d
shl esi, cl
mov ecx, dword [ebp + 0x90]
mov edx, 1
test ecx, ecx
je 0x1002453e
shl edx, cl
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
imul eax, esi
imul eax, dword [ebp + 0x80]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
test eax, eax
jge 0x10024560
fadd qword [0x101a73c0]
imul ecx, edx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
test ecx, ecx
jge 0x10024575
fadd qword [0x101a73c0]
fdivp st(1)
fld st(0)
call fcn.10140560
mov esi, eax
cmp esi, 1
mov eax, dword [ebp + 0x1f4]
mov dword [esp + 0x1c], esi
fisub dword [esp + 0x1c]
fadd qword [eax]
fstp qword [eax]
jge 0x1002459c
mov esi, 1
fld1
mov ecx, dword [ebp + 0x1f4]
fcomp qword [ecx]
fnstsw ax
test ah, 0x41
jp 0x100245d5
fld qword [ecx]
call fcn.10140560
add esi, eax
mov eax, dword [ebp + 0x1f4]
fld qword [eax]
call fcn.10140560
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov eax, dword [ebp + 0x1f4]
fsubr qword [eax]
fstp qword [eax]
push 0
mov ecx, str.___CreateResized_for_preview_start
call fcn.10013960
mov ecx, dword [ebp + 0x80]
add esp, 4
push 0
push 0
push 0
push 0
push esi
push ecx
push ebx
call dword [sym.imp.BitmapBuffer.dll_class_BitmapBuffer____cdecl_bbTransformations::CreateResized_class_BitmapBuffer_const___unsigned_int__unsigned_int__enum_bbTransformations::resizeType__bool__struct_progress_callback___bool_]
add esp, 0x1c
mov ebx, eax
push 0
mov ecx, str.___CreateResized_for_preview_done
mov dword [esp + 0x20], ebx
call fcn.10013960
add esp, 4
test ebx, ebx
je 0x100247e1
mov ecx, dword [edi]
test ecx, ecx
je 0x100247d2
mov ebx, dword [ecx + 0x14]
push esi
call dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::IncreaseInBottom_unsigned_int_]
mov ecx, dword [edi]
push esi
push ebx
call dword [sym.imp.BitmapBuffer.dll_public:_unsigned_char____thiscall_BitmapBuffer::Lock_unsigned_int__unsigned_int_]
mov ecx, dword [esp + 0x1c]
push esi
push 0
mov ebx, eax
call dword [sym.imp.BitmapBuffer.dll_public:_unsigned_char_const____thiscall_BitmapBuffer::LockRGB_unsigned_int__unsigned_int_const]
mov ecx, eax
mov dword [esp + 0x20], ecx
test ebx, ebx
je 0x10024832
test ecx, ecx
je 0x10024832
mov eax, dword [ebp + 0x80]
imul eax, esi
lea edx, [eax + eax*2]
push edx
push ecx
push ebx
call fcn.1013fc90
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esp, 0xc
push eax
call dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::Unlock_unsigned_char_const__const]
mov ecx, dword [edi]
mov esi, dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::Unlock_unsigned_char__]
push ebx
call esi
cmp byte [ebp + 0x15a], 0
je 0x10024786
cmp dword [esp + 0x58], 0x64
jne 0x10024786
push 0
mov ecx, str.___CreateRotated_for_preview_start
call fcn.10013960
mov ecx, dword [edi]
mov ebx, dword [ecx + 0x14]
mov ebp, dword [ebp + 0x84]
mov eax, ebx
sub ebp, eax
add esp, 4
test ebp, ebp
jle 0x10024731
push ebp
call dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::IncreaseInBottom_unsigned_int_]
mov ecx, dword [edi]
push ebp
push ebx
call dword [sym.imp.BitmapBuffer.dll_public:_unsigned_char____thiscall_BitmapBuffer::Lock_unsigned_int__unsigned_int_]
mov ebx, eax
test ebx, ebx
jne 0x10024712
mov esi, dword [esp + 0x1c]
mov ecx, esi
call dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::destructor_void_]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, str.preview_rotate
mov ecx, str.err_no_memory
call fcn.10001c60
lea ecx, [esp + 0x3c]
call fcn.10001b00
xor al, al
jmp 0x100247f9
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
imul eax, ebp
lea ecx, [eax + eax*2]
push ecx
push 0xff
push ebx
call fcn.1013f910
mov ecx, dword [edi]
add esp, 0xc
push ebx
call esi
mov eax, dword [edi]
fld qword [0x101a7448]
push 0
sub esp, 8
fstp qword [esp]
push eax
call dword [sym.imp.BitmapBuffer.dll_class_BitmapBuffer____cdecl_bbTransformations::CreateRotated_class_BitmapBuffer_const___double__struct_progress_callback__]
add esp, 0x10
test eax, eax
je 0x1002480f
lea edx, [esp + 0x20]
push edx
mov ecx, eax
call fcn.1002a010
mov byte [esp + 0x30], 1
call fcn.10027120
lea eax, [esp + 0x20]
mov byte [esp + 0x30], 0
call fcn.100204a0
push 0
mov ecx, str.___CreateRotated_for_preview_done
call fcn.10013960
add esp, 4
cmp byte [esp + 0x5c], 0
je 0x1002482b
push 0
mov ecx, str.___write_JPEG_file_for_preview_start
call fcn.10013960
mov edi, dword [edi]
mov eax, dword [esp + 0x44]
add esp, 4
cmp dword [esp + 0x54], 0x10
jae 0x100247b1
lea eax, [esp + 0x40]
push edi
push eax
call fcn.10014510
test eax, eax
push 0
mov ecx, str.___write_JPEG_file_for_preview_done
sete byte [esp + 0x27]
call fcn.10013960
add esp, 0xc
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::destructor_void_]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [esp + 0x54], 0x10
jb 0x100247f5
mov ecx, dword [esp + 0x40]
push ecx
call fcn.1013d576
add esp, 4
mov al, byte [esp + 0x1b]
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x28
mov edx, str.preview_rotate_2
mov ecx, str.err_no_memory
call fcn.10001c60
lea ecx, [esp + 0x3c]
call fcn.10001b00
xor al, al
jmp 0x100247f9
mov byte [esp + 0x1b], 1
jmp 0x100247ce
mov esi, dword [esp + 0x1c]
mov ecx, esi
call dword [sym.imp.BitmapBuffer.dll_public:_void___thiscall_BitmapBuffer::destructor_void_]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, str.preview_copy
mov ecx, str.err_no_memory
call fcn.10001c60
cmp dword [esp + 0x54], 0x10
jb 0x10024868
mov eax, dword [esp + 0x40]
push eax
call fcn.1013d576
add esp, 4
xor al, al
jmp 0x100247f9