Function at 0x44d230
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x58c379
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push esi
push edi
mov eax, dword [0x5ef60c]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x30], ebx
call fcn.0042e550
push 0xc6
lea esi, [ebx + 0x104]
call fcn.00416cc0
xor edi, edi
cmp dword [ebx + 0x100], edi
je 0x44d2a7
push 0xcf
lea esi, [ebx + 0x948]
call fcn.00416cc0
push 0xd0
lea esi, [ebx + 0x954]
call fcn.00416cc0
call fcn.00467a9c
mov eax, dword [eax + 4]
lea esi, [esp + 0x38]
call fcn.00401030
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0x38]
mov eax, dword [eax - 0xc]
cmp eax, edi
jne 0x44d316
push edi
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 1
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44d371
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x44d371
mov edx, dword [esp + 0x38]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00401a30
push 0x5f8100
lea edi, [esp + 0x1c]
call fcn.0041c730
mov byte [esp + 0xd0], 2
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d36f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor edi, edi
mov eax, dword [ebx + 0xd0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x44d3ad
push 0x434
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d39b
xor ecx, ecx
jmp 0x44d3a2
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 0x20]
push 1
push ecx
push 0x30
push edx
call esi
mov eax, dword [ebx + 0xc4]
cmp eax, edi
je 0x44d527
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [ebx + 0x20]
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x41d
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d3e9
xor ecx, ecx
jmp 0x44d3f0
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x41a
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d41b
xor ecx, ecx
jmp 0x44d422
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x417
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d44d
xor ecx, ecx
jmp 0x44d454
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x418
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d47f
xor ecx, ecx
jmp 0x44d486
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x3ee
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d4b1
xor ecx, ecx
jmp 0x44d4b8
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x41e
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d4e3
xor ecx, ecx
jmp 0x44d4ea
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov ecx, dword [ebx + 0xc4]
mov dword [esp + 0x10], ecx
push 0x420
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d515
xor ecx, ecx
jmp 0x44d51c
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
push 1
push ecx
push 0x30
push eax
call esi
mov eax, dword [ebx + 0xd4]
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x44d58f
push 0x417
mov ecx, ebx
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d54b
xor ecx, ecx
jmp 0x44d552
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 0x20]
push 1
push ecx
push 0x30
push edx
call esi
mov eax, dword [ebx + 0xd4]
push 0x418
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.00465eae
cmp dword [esp + 0x10], edi
jne 0x44d57d
xor ecx, ecx
jmp 0x44d584
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 0x20]
push 1
push ecx
push 0x30
push edx
call esi
push 0x61
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 3
mov eax, dword [eax]
push eax
push 0x434
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d5e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebx + 0xcc]
push ecx
push 0x434
mov ecx, ebx
call fcn.00465eae
push ebx
mov esi, eax
call fcn.00433f20
push 0x5d
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 4
mov eax, dword [eax]
push eax
push 0x417
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d658
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5f
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 5
mov eax, dword [eax]
push eax
push 0x418
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44d6af
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5e
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 6
mov eax, dword [eax]
push eax
push 0x41e
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44d706
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x60
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 7
mov eax, dword [eax]
push eax
push 0x420
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44d75d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 8
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44d7b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fld1
push 0x5f806c
fst dword [esp + 0x14]
mov dword [esp + 0x98], vtable.ATL::CImage.0
fstp dword [esp + 0x1c]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov byte [esp + 0xb4], 0
mov byte [esp + 0xb5], 0
mov dword [esp + 0xb8], 0xffffffff
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [0x5f8084]
push 0x5f806c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x94], vtable.CImagePlus.0
push 0xc6
lea ecx, [esp + 0x98]
push ecx
mov byte [esp + 0xd8], 9
call fcn.0040c060
cmp dword [esp + 0x98], edi
je 0x44d8d4
mov eax, dword [ebx + 0x20]
lea edx, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
call dword [sym.imp.USER32.dll_GetClientRect]
cmp dword [esp + 0xa0], edi
je 0x44d8b0
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fidiv dword [esp + 0xa0]
fstp dword [esp + 0x10]
cmp dword [esp + 0xa4], edi
je 0x44d8d4
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fidiv dword [esp + 0xa4]
fstp dword [esp + 0x18]
lea ecx, [esp + 0x94]
mov byte [esp + 0xd0], 0
call fcn.00414170
call fcn.00467a9c
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xcc]
cmp dword [eax + 0x98], edi
je 0x44da66
mov eax, dword [eax + 0x8c]
cmp dword [eax - 0xc], edi
je 0x44da66
fld dword [esp + 0x10]
fmul qword [0x5c4c50]
call fcn.0055d3a0
fld dword [esp + 0x18]
fmul qword [0x5c4c60]
mov esi, eax
mov dword [esp + 0x10], esi
call fcn.0055d3a0
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.00468796
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
sub ecx, dword [esp + 0x20]
sub edx, dword [esp + 0x1c]
push 2
push ecx
add edx, esi
push edx
push edi
push edi
push edi
mov ecx, ebx
call fcn.0046630a
mov ecx, 0x5f8100
call fcn.0041c3a0
lea esi, [ebx + 0x11c]
test eax, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
push ebx
mov ecx, esi
je 0x44d9aa
push 0xd3
jmp 0x44d9af
push 0xc3
call edx
push esi
call fcn.00422580
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 1
push eax
push ecx
push edi
push edi
mov ecx, esi
call fcn.00466076
push 5
mov ecx, esi
call fcn.004660b6
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov esi, 0x5f0e1c
lea ebx, [ebx]
mov edx, dword [esi]
push edx
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.00468796
mov ecx, dword [esi]
mov eax, dword [esp + 0x10]
add dword [esp + 0x3c], eax
add dword [esp + 0x44], eax
push ecx
mov ecx, ebx
call fcn.00465eae
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
sub edx, ecx
push 1
push edx
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x44]
push edx
push ecx
mov ecx, dword [esp + 0x4c]
push ecx
mov ecx, eax
call fcn.00466076
add esi, 4
cmp esi, 0x5f0e54
jl 0x44d9f0
mov edx, dword [ebx + 0x20]
push 1
push edi
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebx + 0x800]
mov edx, dword [eax + 0x148]
lea esi, [ebx + 0x800]
push edi
mov ecx, esi
call edx
push str.0xFF0000
lea ecx, [esp + 0x50]
call fcn.00401a30
push str.0xFFC0C0
lea ecx, [esp + 0x54]
mov byte [esp + 0xd4], 0xa
call fcn.00401a30
mov byte [esp + 0xd0], 0xb
mov eax, dword [esp + 0x4c]
push ecx
mov dword [esp + 0x18], esp
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
push eax
call fcn.00401ff0
mov ecx, dword [esp + 0x1c]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
xor eax, eax
call fcn.00412a90
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], esp
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
push eax
call fcn.00401ff0
mov edx, dword [esp + 0x1c]
add eax, 0x10
mov dword [edx], eax
add esp, 4
xor eax, eax
call fcn.00412a90
mov edx, dword [esi]
mov edx, dword [edx + 0x144]
add esp, 4
push eax
mov eax, dword [esp + 0x14]
push eax
push edi
push edi
mov ecx, esi
call edx
mov eax, dword [ebx + 0x820]
push 0xff0000
push edi
push 0x2001
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push 0x41a
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push edi
push 0x408
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
mov ecx, dword [ebx + 0x20]
push edi
push ecx
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.00473298
cmp eax, edi
je 0x44db7b
mov edx, dword [eax + 4]
push 1
push 0xf060
push edx
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 5
mov ecx, ebx
push 0x41a
cmp dword [ebx + 0x100], edi
je 0x44dcab
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push 0x5c
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 0xc
mov eax, dword [eax]
push eax
push 0x41a
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44dbf3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x62
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 0xd
mov eax, dword [eax]
push eax
push 0x41d
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44dc4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebx + 0xc8]
push ecx
push 0x41d
mov ecx, ebx
call fcn.00465eae
push ebx
mov esi, eax
call fcn.00433f20
push 5
push 0x417
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push 5
push 0x418
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push 5
push 0x41e
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push 5
jmp 0x44ddbd
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push 0x5b
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 0xe
mov eax, dword [eax]
push eax
push 0x41a
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44dd0e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x63
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
mov byte [esp + 0xd0], 0xf
mov eax, dword [eax]
push eax
push 0x41d
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.00465feb
mov byte [esp + 0xd0], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44dd65
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebx + 0xc8]
push ecx
push 0x41d
mov ecx, ebx
call fcn.00465eae
push ebx
mov esi, eax
call fcn.00433f20
push edi
push 0x417
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push edi
push 0x418
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push edi
push 0x41e
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push edi
push 0x420
mov ecx, ebx
call fcn.00465eae
mov ecx, eax
call fcn.004660b6
push 0x417
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
push edi
push 1
push 0xf1
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x41b
mov ecx, ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
call fcn.00465eae
mov edx, dword [eax + 0x20]
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x84]
push ecx
push edx
call esi
push 0x41c
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x64]
push ecx
push edx
call esi
push 0x41e
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x54]
push ecx
push edx
call esi
push 0x420
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x74]
push ecx
push edx
call esi
lea eax, [esp + 0x84]
push eax
mov ecx, ebx
call fcn.00468796
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
call fcn.00468796
lea edx, [esp + 0x54]
push edx
mov ecx, ebx
call fcn.00468796
lea eax, [esp + 0x74]
push eax
mov ecx, ebx
call fcn.00468796
mov ecx, dword [esp + 0x88]
mov dword [ebx + 0x974], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x80]
mov dword [ebx + 0x984], eax
lea eax, [ebx + 0x96c]
mov dword [ebx + 0x97c], edx
mov edx, dword [eax]
mov dword [ebx + 0x98c], ecx
mov dword [esp + 0x18], eax
cmp dword [edx - 0xc], edi
jne 0x44e220
mov eax, dword [ebx + 0x968]
cmp dword [eax - 0xc], edi
je 0x44e220
lea ecx, [esp + 0x1c]
call fcn.0046bbb6
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x24]
mov byte [esp + 0xd8], 0x10
call fcn.0046bc37
push 1
lea ecx, [esp + 0x20]
push ecx
call fcn.00418400
lea edx, [esp + 0x14]
push edx
call fcn.00411270
add esp, 4
mov byte [esp + 0xd0], 0x11
mov ecx, dword [esp + 0x24]
cmp ecx, edi
jle 0x44e1e5
xor esi, esi
test ecx, ecx
jle 0x44dfcd
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x968]
test esi, esi
jl 0x44e041
cmp esi, ecx
jge 0x44e041
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44e037
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + esi*4]
push eax
push ecx
call fcn.00558f06
add esp, 8
test eax, eax
jne 0x44dfc4
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.00401f40
mov ecx, dword [esp + 0x24]
inc esi
cmp esi, ecx
jl 0x44df7e
xor edi, edi
test ecx, ecx
jle 0x44e1e5
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44e037
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0xd0], 0x12
test edi, edi
jl 0x44e041
cmp edi, dword [esp + 0x24]
jge 0x44e041
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + edi*4]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x44e046
cmp eax, dword [esi]
jne 0x44e046
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x44e081
push 0x80004005
call fcn.00401fd0
call fcn.0045e880
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x44e120
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.005579ad
add esp, 0x10
add ebx, 0x10
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x34]
lea eax, [esp + 0x10]
mov byte [esp + 0xd0], 0x13
call fcn.00418c80
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x968]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44e037
mov ebx, dword [esp + 0x34]
push eax
push ebx
call fcn.00558f06
add esp, 8
test eax, eax
je 0x44e125
mov byte [esp + 0xd0], 0x12
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44e0ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0xd0], 0x11
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e110
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc edi
cmp edi, dword [esp + 0x24]
jl 0x44dfd7
jmp 0x44e1e1
call fcn.00405a90
cmp edi, dword [esp + 0x24]
jge 0x44e041
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx + edi*4]
mov esi, dword [edx]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x44e195
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x44e189
mov ebx, dword [eax]
cmp ebx, dword [esi]
jne 0x44e185
push eax
call fcn.00401ff0
add esp, 4
mov ebx, eax
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x44e176
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x18]
add ebx, 0x10
mov dword [eax], ebx
mov ebx, dword [esp + 0x34]
jmp 0x44e195
mov ebx, dword [esp + 0x34]
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edx
call fcn.00401e90
mov byte [esp + 0xd0], 0x12
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e1bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0xd0], 0x11
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e1e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x30]
mov byte [esp + 0xd0], 0x10
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e20d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd0], 0xb
call fcn.0046bde2
xor edi, edi
lea ecx, [ebx + 0x88]
push ecx
mov ecx, ebx
call fcn.0044e7c0
test eax, eax
je 0x44e24a
cmp dword [ebx + 0x100], edi
je 0x44e242
inc dword [0x5f82fc]
jmp 0x44e252
inc dword [0x5f8304]
jmp 0x44e252
push edi
mov ecx, ebx
call fcn.0045eeea
push 0x3ee
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
mov eax, dword [ebx + 0x20]
push 1
push edx
push 0x28
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov byte [esp + 0xd0], 0xa
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e298
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xd0], 0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e2c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xd0], 0xffffffff
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44e2eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret