Function at 0x421670
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x455bc6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a4
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov ecx, 0x46a8a8
call fcn.004369c0
mov esi, eax
xor eax, eax
cmp esi, eax
mov dword [esp + 0x30], esi
je 0x422052
mov dword [esi + 0x142c4], eax
mov dword [esi + 0x142b0], eax
cmp dword [0x46abf0], eax
jne 0x421719
cmp dword [ebp + 0x6c40], eax
jle 0x422052
cmp dword [0x46a9c4], eax
jle 0x422052
cmp dword [esi + 0x142d8], eax
jne 0x422052
push eax
push eax
push eax
push eax
lea ecx, [ebp + 0x6c34]
mov dword [esi + 0x142b0], 1
mov edx, dword [0x46af70]
push eax
push ecx
mov ecx, dword [0x46af60]
push edx
push ecx
push eax
lea ecx, [ebp + 0x70d0]
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
jmp 0x422052
mov ecx, dword [0x46ab88]
movsx ebx, byte [0x46ac10]
cmp ecx, eax
je 0x421737
add ebx, 3
and ebx, 0x80000003
jns 0x421745
jmp 0x421740
inc ebx
and ebx, 0x80000003
jns 0x421745
dec ebx
or ebx, 0xfffffffc
inc ebx
mov byte [esp + 0x10], bl
mov edx, dword [esp + 0x10]
push edx
mov ecx, 0x46a8a8
call fcn.00437fd0
mov edi, eax
test edi, edi
mov dword [esp + 0x28], edi
jne 0x4217c1
mov eax, dword [ebp + 0x6c40]
test eax, eax
jle 0x422052
mov eax, dword [0x46a9c4]
test eax, eax
jle 0x422052
mov eax, dword [esi + 0x142d8]
test eax, eax
jne 0x422052
push edi
push edi
push edi
mov dword [esi + 0x142b0], 1
mov ecx, dword [0x46af70]
mov edx, dword [0x46af60]
push edi
lea eax, [ebp + 0x6c34]
push edi
push eax
push ecx
push edx
push edi
lea ecx, [ebp + 0x70d0]
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
jmp 0x422052
mov ecx, ebp
mov dword [esi + 0x142d8], 0x3c
call fcn.00422de0
mov ecx, dword [ebp + 0x70bc]
lea eax, [esp + 0x3c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [edi + 0x47c]
test eax, eax
je 0x42180f
mov edx, dword [0x46af70]
mov eax, dword [0x46af60]
add edx, 0x7b
add eax, 0x55
push edx
lea ecx, [ebp + 0x70d0]
push eax
push ecx
mov ecx, ebp
call fcn.00421640
movsx eax, bl
mov edx, dword [0x46af70]
mov dword [esp + 0x2c], eax
add eax, 4
lea ecx, [ebp + 0x28]
push eax
mov eax, dword [0x46af60]
push 0
push 0xa5
push 0x78
push edx
push eax
call fcn.00447750
lea ecx, [esp + 0x94]
lea ebx, [ebp + 0x70d0]
push ecx
mov ecx, ebx
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::get_logfont_void_]
lea edx, [esp + 0x94]
lea eax, [esp + 0xdc]
push edx
push eax
mov ecx, ebx
mov dword [esp + 0xd8], 0xffffff
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::set_logfont_struct_IXHandler::_mimage::_log_font_const__]
mov ecx, 0x12
mov esi, eax
lea edi, [esp + 0x94]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_2
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0x1c]
push ecx
xor esi, esi
mov edx, dword [edi + 0x34]
mov dword [esp + 0x1c0], esi
push edx
push 0x46ac54
call fcn.0044ef84
add esp, 0xc
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x14]
push eax
push 0x467444
push ecx
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 1
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x14]
mov byte [esp + 0x1bc], 0
call sub.MFC42.DLL_CString::CString
mov ecx, ebp
call fcn.00422de0
test eax, eax
je 0x421ab3
mov ecx, ebp
call fcn.00424070
test eax, eax
mov eax, dword [0x46a9c4]
je 0x4219df
cmp eax, esi
push 0xffe26c
jle 0x42197f
mov ecx, dword [0x46af70]
mov eax, dword [edi + 0x20]
push esi
lea edx, [edi + 6]
push 0x14
push edx
mov edx, dword [0x46af60]
add ecx, 0xa8
push eax
add edx, 6
push ecx
push edx
mov ecx, ebp
call fcn.00421490
mov eax, dword [esp + 0x1c]
mov edx, dword [0x46af60]
mov dword [esp + 0x14], esi
mov ecx, dword [eax - 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [0x46af70]
add ecx, 0xb7
add edx, 6
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x2c]
push eax
push ecx
jmp 0x421b2b
mov ecx, dword [0x46af70]
mov eax, dword [edi + 0x20]
push 1
lea edx, [edi + 6]
push 0x14
push edx
mov edx, dword [0x46af60]
add ecx, 0xa8
push eax
push ecx
push edx
mov ecx, ebp
call fcn.00421490
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
lea edx, [esp + 0x14]
mov ecx, dword [eax - 8]
push edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x46af70]
add ecx, 0xb7
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push 0x46af60
jmp 0x421b2b
cmp eax, esi
push 0xffe26c
jle 0x421a56
mov edx, dword [0x46af70]
mov ecx, dword [edi + 0x20]
push esi
lea eax, [edi + 6]
push 0x14
push eax
mov eax, dword [0x46af60]
add edx, 0xa8
push ecx
add eax, 6
push edx
push eax
mov ecx, ebp
call fcn.00421490
mov eax, dword [esp + 0x1c]
mov edx, dword [0x46af60]
mov dword [esp + 0x14], esi
mov ecx, dword [eax - 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [0x46af70]
add ecx, 0xb7
add edx, 6
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x2c]
push eax
push ecx
jmp 0x421b2b
mov ecx, dword [0x46af70]
mov eax, dword [edi + 0x20]
push 1
lea edx, [edi + 6]
push 0x14
push edx
mov edx, dword [0x46af60]
add ecx, 0xa8
push eax
push ecx
push edx
mov ecx, ebp
call fcn.00421490
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
lea edx, [esp + 0x14]
mov ecx, dword [eax - 8]
push edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x46af70]
add ecx, 0xb7
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x1c]
push ecx
push eax
push edx
push 0x46af60
jmp 0x421b2b
mov edx, dword [0x46a9c4]
push 0xffe26c
cmp edx, esi
mov edx, dword [edi + 0x20]
sete al
push eax
mov eax, dword [0x46af70]
lea ecx, [edi + 6]
push 0x14
push ecx
mov ecx, dword [0x46af60]
add eax, 0xa8
push edx
add ecx, 6
push eax
push ecx
mov ecx, ebp
call fcn.00421490
mov eax, dword [esp + 0x1c]
mov edx, dword [0x46af70]
mov dword [esp + 0x14], esi
add edx, 0xba
mov ecx, dword [eax - 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [0x46af60]
add ecx, 6
lea edx, [esp + 0x14]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x18]
push edx
push ecx
push eax
lea edx, [esp + 0x1c]
lea eax, [esp + 0x2c]
push edx
push eax
mov ecx, ebx
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::text_int_const___int_const___char_const___int_const___int_const__]
lea ecx, [esp + 0x94]
lea edx, [esp + 0xdc]
push ecx
push edx
mov ecx, ebx
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::set_logfont_struct_IXHandler::_mimage::_log_font_const__]
mov eax, dword [0x47a490]
cmp eax, esi
mov esi, dword [esp + 0x2c]
je 0x421b98
cmp dword [0x47224c], esi
jne 0x421b98
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
sub eax, ecx
mov ecx, ebp
sub eax, 0xa5
cdq
sub eax, edx
sar eax, 1
add eax, 0xa4
push eax
call fcn.00422e20
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
sub ecx, edx
sub ecx, eax
sub ecx, 0x64
push ecx
mov ecx, ebp
call fcn.00424b50
lea eax, [esi + esi*2]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
lea eax, [esi + esi*2]
mov ecx, dword [eax*4 + 0x46b3f0]
test ecx, ecx
je 0x421bfb
mov ecx, ebp
call fcn.00424070
test eax, eax
push 0
push 0xa2
je 0x421bda
mov ecx, dword [0x46af70]
mov edx, dword [0x46af60]
add ecx, 0x8a
add edx, 0xffffffbf
push ecx
push edx
jmp 0x421bef
mov eax, dword [0x46af70]
mov ecx, dword [0x46af60]
add eax, 0x85
add ecx, 0xffffffa8
push eax
push ecx
push ebx
lea ecx, [ebp + 0x80]
call fcn.00448e00
mov al, byte [edi + 0x1b8]
test al, al
jle 0x421eba
mov ecx, ebp
call fcn.00422df0
mov esi, eax
mov ecx, ebp
mov dword [esp + 0x18], esi
call fcn.00422e20
mov ecx, ebp
call fcn.0041d5b0
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x20], 0
movsx esi, byte [edi + 0x1b8]
neg al
sbb eax, eax
and eax, 2
add eax, 0x10
mov edx, eax
lea eax, [esi - 1]
imul eax, edx
add eax, ecx
mov ecx, dword [0x46af70]
mov dword [esp + 0x34], edx
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
sub edx, eax
mov dword [esp + 0x38], eax
add edx, 0x32
test edx, edx
jg 0x421c7b
mov edx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x20], edx
sub edx, eax
lea edx, [edx + ecx + 0x32]
test edx, edx
jle 0x421c68
test esi, esi
mov dword [esp + 0x14], 0
jle 0x421eba
lea eax, [edi + 0x78]
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [0x472248]
cmp eax, ecx
je 0x421e33
mov edx, dword [esp + 0x24]
mov ecx, 0x46a8a8
push edx
call fcn.004382c0
test al, al
jne 0x421e33
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x4c]
push 0x466070
rep stosd dword es:[edi], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x50], 0xfffffff4
push eax
mov dword [esp + 0x64], 0x190
mov byte [esp + 0x6b], 0x86
mov byte [esp + 0x6f], 2
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
lea ecx, [esp + 0xdc]
mov dword [esp + 0x88], 0xffffff
mov dword [esp + 0x8c], 0
push ecx
mov ecx, ebx
mov dword [esp + 0x94], 1
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::get_logfont_void_]
mov ecx, 0x12
mov esi, eax
lea edi, [esp + 0x4c]
lea edx, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x124]
push edx
push eax
mov ecx, ebx
mov dword [esp + 0x90], 0xffffff
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::set_logfont_struct_IXHandler::_mimage::_log_font_const__]
mov ecx, 0x12
mov esi, eax
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x28]
mov al, byte [esi + 0x1b8]
test al, al
jle 0x421ded
mov ecx, ebp
call fcn.00424070
test eax, eax
je 0x421ded
mov ecx, dword [0x46af70]
mov edx, dword [0x46af60]
push 0
add ecx, 0x21
push 0xc8
add edx, 0xffffffb4
push ecx
push edx
push ebx
lea ecx, [ebp + 0x80]
call fcn.00448e00
mov eax, dword [ebp + 0x6cd0]
test eax, eax
jle 0x421ded
mov eax, dword [esp + 0x30]
push 0
push 0
push 0
mov dword [eax + 0x142c4], 1
mov edx, dword [0x46af70]
mov eax, dword [0x46af60]
push 0
lea ecx, [ebp + 0x6cc4]
push 0
add edx, 0x21
push ecx
add eax, 0xffffffb4
push edx
push eax
push 0
mov ecx, ebx
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
mov eax, dword [0x46a9c4]
test eax, eax
jne 0x421e18
movsx ecx, byte [esi + 0x1b8]
mov edx, dword [0x46af70]
mov eax, dword [0x46af60]
add edx, 0xc6
push ecx
push edx
push eax
mov ecx, ebp
call fcn.0041d7c0
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x16c]
push ecx
push edx
mov ecx, ebx
call dword [sym.imp.2DEngineDll.dll_public:_struct_IXHandler::_mimage::_log_font___thiscall_IXHandler::_mimage::set_logfont_struct_IXHandler::_mimage::_log_font_const__]
mov edi, dword [esp + 0x28]
jmp 0x421e89
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push 0
push 0
mov esi, dword [eax + 0xc]
push 0
push 0
push ecx
mov ecx, 0x46a8a8
call fcn.004382c0
mov ecx, dword [esp + 0x20]
movsx edx, al
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x34]
push eax
sub ecx, dword [esp + 0x50]
add ecx, edx
mov edx, dword [0x46af70]
lea eax, [ecx + edx + 0x52]
mov ecx, dword [0x46af60]
sub ecx, esi
push eax
sub ecx, 6
push ecx
push 0
mov ecx, ebx
call dword [sym.imp.2DEngineDll.dll_public:_void___thiscall_IXHandler::_mimage::bitblt_int__int__int__class_IXHandler::_mimage___int__enum_IXHandler::_mimage::Align_Style__bool__struct_tagRECT___struct_IXHandler::_mimage::_mimage_blt_fx_const__]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
add ecx, 8
inc eax
mov dword [esp + 0x24], ecx
add esi, edx
movsx ecx, byte [edi + 0x1b8]
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
jl 0x421c9a
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x421eca
lea edx, [edi + 0x31c]
push edx
jmp 0x421ed1
lea eax, [edi + 0x1c8]
push eax
mov ecx, ebp
call fcn.004230a0
cmp dword [edi + 0x470], 0x10
jne 0x421f54
mov ecx, ebp
call fcn.00422de0
test eax, eax
jne 0x421f0b
mov ecx, dword [0x46af70]
mov edx, dword [0x46af60]
push eax
add ecx, 0x3e
push 0xb3
add edx, 0xffffff55
push ecx
push edx
jmp 0x421f48
mov ecx, ebp
call fcn.00424070
test eax, eax
push 0
push 0xb3
je 0x421f35
mov eax, dword [0x46af70]
mov ecx, dword [0x46af60]
add eax, 0x3e
add ecx, 0xffffff54
push eax
push ecx
jmp 0x421f48
mov edx, dword [0x46af70]
mov eax, dword [0x46af60]
add edx, 0x40
add eax, 0xffffff8f
push edx
push eax
push ebx
lea ecx, [ebp + 0x80]
call fcn.00448e00
test byte [edi + 0x470], 1
je 0x42203e
mov al, byte [edi + 0x1b8]
mov ecx, ebp
test al, al
call fcn.00422e20
mov ecx, ebp
call fcn.00422de0
mov ecx, 0x46a8a8
call fcn.004369c0
test eax, eax
je 0x42203e
mov ecx, ebp
call fcn.00422de0
test eax, eax
mov eax, dword [0x46a9c4]
je 0x421ff8
test eax, eax
jle 0x421fba
mov ecx, dword [0x46af70]
mov edx, dword [0x46af60]
push 0
add ecx, 0x69
push 0xac
add edx, 0x46
push ecx
push edx
jmp 0x422032
mov ecx, ebp
call fcn.00424070
test eax, eax
push 0
push 0x90
je 0x421fe3
mov eax, dword [0x46af70]
mov ecx, dword [0x46af60]
add eax, 0x3e
add ecx, 0xffffff54
push eax
jmp 0x422031
mov edx, dword [0x46af70]
mov eax, dword [0x46af60]
add edx, 0x40
add eax, 0xffffff8f
push edx
push eax
jmp 0x422032
test eax, eax
push 0
push 0x90
jle 0x42201c
mov ecx, dword [0x46af70]
mov edx, dword [0x46af60]
add ecx, 0x82
add edx, 0x28
push ecx
push edx
jmp 0x422032
mov eax, dword [0x46af70]
mov ecx, dword [0x46af60]
add eax, 0x4b
add ecx, 0xffffff53
push eax
push ecx
push ebx
lea ecx, [ebp + 0x80]
call fcn.00448e00
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1bc], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x1b4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1b0
ret