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

Disassembly:
push 0xffffffffffffffff
push 0x547524
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x579aa4]
xor eax, esp
mov dword [esp + 0xf4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x579aa4]
xor eax, esp
push eax
lea eax, [esp + 0x10c]
mov dword fs:[0], eax
mov edi, dword [esp + 0x11c]
mov ecx, dword [esp + 0x120]
mov esi, dword [esp + 0x128]
xor ebp, ebp
mov dword [esp + 0x84], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x114], ebp
mov eax, dword [esp + 0x124]
cmp eax, ebp
je 0x445d30
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x445d29
cmp esi, ebp
je 0x445d29
mov ecx, dword [esp + 0x124]
cmp ecx, ebp
jne 0x445017
push 0x80004003
call fcn.0050a1f0
lea eax, [esp + 0x8c]
push eax
call fcn.00425870
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x118], 1
call fcn.00420b30
mov byte [esp + 0x114], 3
mov eax, dword [esp + 0x8c]
cmp eax, ebp
je 0x445051
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [esp + 0x70]
cmp ebx, ebp
sete al
test al, al
je 0x44509b
mov dword [edi], ebp
mov byte [esp + 0x114], 0
cmp ebx, ebp
je 0x445074
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov dword [esp + 0x114], 0xffffffff
mov eax, dword [esp + 0x124]
cmp eax, ebp
je 0x445d49
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x445d49
xor edi, edi
cmp ebx, ebp
je 0x44500d
jmp 0x4450b0
mov ecx, dword [ebx]
mov eax, dword [ecx + 0xf0]
lea edx, [esp + 0x1c]
push edx
push ebx
mov dword [esp + 0x24], ebp
call eax
cmp edi, dword [esp + 0x1c]
jge 0x4451a5
mov ecx, 3
mov word [esp + 0x74], cx
mov dword [esp + 0x7c], edi
lea edx, [esp + 0x74]
push edx
lea esi, [esp + 0x3c]
mov eax, ebx
mov byte [esp + 0x118], 4
call fcn.00435e80
mov byte [esp + 0x114], 5
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esp
mov dword [ecx], eax
cmp eax, ebp
je 0x445117
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
lea ecx, [esp + 0x20]
call fcn.004220f0
cmp eax, ebp
jge 0x44512f
cmp eax, 0x80004002
jne 0x445204
mov byte [esp + 0x114], 7
mov eax, dword [esp + 0x38]
cmp eax, ebp
je 0x445147
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x74]
push eax
mov byte [esp + 0x118], 8
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov esi, dword [esp + 0x1c]
cmp esi, ebp
je 0x44518b
mov ecx, dword [esi]
mov eax, dword [ecx + 0xbc]
lea edx, [esp + 0x28]
push edx
push esi
mov dword [esp + 0x30], ebp
call eax
cmp dword [esp + 0x28], 0xfffffffe
jne 0x44518b
mov ecx, dword [ebx]
mov edx, dword [ecx + 0xf8]
push esi
push ebx
xor edi, edi
call edx
mov byte [esp + 0x114], 3
cmp esi, ebp
je 0x44519f
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
inc edi
jmp 0x4450b0
mov edx, dword [ebx]
mov eax, dword [edx + 0x110]
push ebx
call eax
mov ecx, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x28]
call fcn.00405520
mov byte [esp + 0x114], 9
push ecx
mov dword [esp + 0x24], esp
mov esi, esp
mov dword [esi], ebp
mov edx, dword [esp + 0x128]
push ecx
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x28], esp
cmp eax, ebp
je 0x4451f2
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ecx, esi
call fcn.0044c180
cmp eax, ebp
jge 0x44520a
cmp eax, 0x80004002
je 0x44520a
push eax
call fcn.0050a1f0
call fcn.0043a9a0
mov edi, eax
mov eax, dword [esp + 0x128]
mov ebx, 0xa
add esp, 4
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
cmp eax, ebp
jne 0x445245
push 0x80004003
call fcn.0050a1f0
mov ecx, dword [eax]
lea edx, [esp + 0xa0]
push edx
push eax
mov eax, dword [ecx + 0x40]
call eax
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x94]
push edx
call dword [sym.imp.USER32.dll_CopyRect]
mov esi, dword [esp + 0x13c]
cmp esi, 0xffffffff
jne 0x445285
mov esi, dword [esp + 0x98]
sub esi, dword [esp + 0x90]
mov eax, 0x57f0e8
call fcn.00402660
cmp al, 1
jne 0x445347
cmp byte [esp + 0x144], 0
jne 0x445347
xor eax, eax
mov dword [esp + 0x104], 7
mov dword [esp + 0x100], ebp
mov word [esp + 0xf0], ax
push 1
lea ecx, [esp + 0xf0]
mov byte [esp + 0x118], bl
mov edx, dword [esp + 0x128]
mov edi, dword [esp + 0x28]
push ecx
push ecx
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x2c], esp
cmp eax, ebp
je 0x4452f9
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov edx, dword [esp + 0x3c]
push esi
mov ecx, edi
call fcn.0043fad0
add esp, 0x10
cmp al, 1
jne 0x44532e
cmp dword [esp + 0x104], 8
mov eax, dword [esp + 0xf0]
jae 0x445324
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x28]
call fcn.004057e0
lea ecx, [esp + 0xec]
mov byte [esp + 0x114], 9
call fcn.00402ac0
jmp 0x4453d8
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], ebp
je 0x4453d8
xor ecx, ecx
mov dword [esp + 0x104], 7
mov dword [esp + 0x100], ebp
mov word [esp + 0xf0], cx
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0xec]
push edx
push eax
push esi
mov edx, edi
mov byte [esp + 0x120], 0xb
call fcn.00440650
add esp, 0xc
cmp al, 1
jne 0x4453b6
cmp dword [esp + 0x104], 8
mov eax, dword [esp + 0xf0]
jae 0x4453ac
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x28]
call fcn.004057e0
mov byte [esp + 0x114], 9
cmp dword [esp + 0x104], 8
jb 0x4453d8
mov eax, dword [esp + 0xf0]
push eax
call fcn.0050c4ec
add esp, 4
lea ecx, [esp + 0x48]
push ecx
call fcn.00449740
test byte [0x57ec18], 1
jne 0x4453fc
or dword [0x57ec18], 1
mov ecx, 0x57ec1c
call fcn.00401620
cmp byte [0x57ec28], 0
je 0x445422
mov eax, dword [0x57ec1c]
cmp eax, 0x64
je 0x445422
mov edx, dword [esp + 0x12c]
push 0x64
push eax
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
jmp 0x445429
mov eax, dword [esp + 0x12c]
xor ebp, ebp
push 0x38
lea ecx, [esp + 0xb8]
push ebp
push ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0xbc], ebp
call fcn.0050c770
add esp, 0xc
mov dword [esp + 0x44], ebp
mov dword [esp + 0x28], ebp
lea edx, [esp + 0x1c]
push edx
push 0x55da04
lea eax, [esp + 0x1c]
mov byte [esp + 0x11c], 0xe
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ebp
call fcn.00402710
mov byte [esp + 0x114], 0xf
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ebp
cmp dword [ecx - 0xc], ebp
je 0x445a4f
inc dword [esp + 0x3c]
cmp dword [esp + 0x40], 0
jne 0x4454d7
cmp byte [esp + 0x138], 0
jne 0x4454d7
mov eax, dword [esp + 0x124]
cmp ebp, eax
je 0x44557c
mov esi, ebp
mov ebp, eax
mov dword [esp + 0x44], ebp
test eax, eax
je 0x445570
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x445570
mov dword [esp + 0x18], 0
lea eax, [esp + 0x88]
push eax
mov ecx, 0x57f0e8
call fcn.00424f30
mov byte [esp + 0x114], 0x11
mov eax, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x128]
mov edx, eax
call fcn.0044b690
mov byte [esp + 0x118], 0x10
mov eax, dword [esp + 0x8c]
add esp, 4
test eax, eax
je 0x44552c
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov esi, dword [esp + 0x18]
test esi, esi
je 0x445544
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xf4]
push esi
push eax
call edx
cmp ebp, esi
je 0x445568
mov edi, ebp
mov ebp, esi
mov dword [esp + 0x44], ebp
test esi, esi
je 0x44555c
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
test edi, edi
je 0x445568
mov edx, dword [edi]
mov eax, dword [edx + 8]
push edi
call eax
mov byte [esp + 0x114], 0xf
test esi, esi
je 0x44557c
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
xor bl, bl
test ebp, ebp
je 0x44584d
mov eax, dword [esp + 0x140]
cmp eax, 0xffffffff
je 0x445692
cmp dword [esp + 0x3c], eax
jne 0x445692
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
push eax
call fcn.00405dd0
add esp, 4
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x114], 0x12
nop
lea eax, [esp + 0x1c]
push eax
push 0x55da04
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x30]
call fcn.00402710
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 0x13
call fcn.004049c0
mov byte [esp + 0x114], 0x12
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x445612
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
cmp dword [esi - 0xc], 0
je 0x44565a
mov eax, 0x57f0e8
call fcn.00402660
test al, al
je 0x44563e
push 1
push 0x55cd4c
lea ecx, [esp + 0x20]
call fcn.00405940
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00405940
mov esi, dword [esp + 0x14]
cmp dword [esi - 0xc], 0
jne 0x4455c0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
call fcn.004049c0
mov byte [esp + 0x114], 0xf
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov bl, 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x445692
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x14]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00404ad0
mov byte [esp + 0x118], 0x14
mov ecx, ebp
mov byte [esp + 0x118], 0xf
call fcn.0044e390
mov edi, dword [esp + 0x40]
test edi, edi
jne 0x4456cc
cmp byte [esp + 0x138], 0
je 0x4456fd
mov eax, dword [ebp]
mov ecx, dword [eax + 0x5c]
push 0
push 0x10000000
push ebp
call ecx
mov edx, dword [ebp]
mov ecx, dword [edx + 0x44]
push 1
lea eax, [esp + 0x94]
push eax
push ebp
call ecx
mov edx, dword [ebp]
mov eax, dword [edx + 0xc0]
push 0xfffffffffffffffe
push ebp
call eax
push 0
push 0
push 0
push 0
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
mov dword [eax], 0
mov ecx, dword [esp + 0x148]
push 0
push ecx
mov byte [esp + 0x130], 0x15
push ecx
mov dword [esp + 0x80], esp
mov esi, esp
push ecx
mov eax, esp
mov dword [esi], 0
mov dword [eax], ebp
mov edx, dword [ebp]
mov eax, dword [edx + 4]
mov dword [esp + 0x84], esp
push ebp
call eax
mov ecx, esi
call fcn.0044c180
test eax, eax
jge 0x44575f
cmp eax, 0x80004002
jne 0x445204
mov esi, dword [esp + 0x50]
push esi
mov byte [esp + 0x138], 0xf
call fcn.0043eb20
add esp, 0x24
test edi, edi
je 0x44581d
mov ecx, dword [esp + 0x12c]
push 1
push 0
push esi
push 0
push 1
push 2
push ecx
push ecx
mov esi, esp
mov dword [esp + 0x80], esp
push ecx
mov eax, esp
mov dword [esi], 0
mov dword [eax], ebp
mov edx, dword [ebp]
mov eax, dword [edx + 4]
mov dword [esp + 0x3c], esp
push ebp
call eax
mov ecx, esi
call fcn.0044c180
test eax, eax
jge 0x4457c7
cmp eax, 0x80004002
jne 0x445204
mov byte [esp + 0x134], 0x16
mov edi, dword [esp + 0x48]
push ecx
mov dword [esp + 0x3c], esp
mov esi, esp
push ecx
mov eax, esp
mov dword [esi], 0
mov dword [esp + 0x40], esp
mov dword [eax], edi
test edi, edi
je 0x4457f5
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov ecx, esi
call fcn.0044c180
test eax, eax
jge 0x44580b
cmp eax, 0x80004002
jne 0x445204
mov byte [esp + 0x138], 0xf
call fcn.0043bd20
add esp, 0x24
jmp 0x445821
mov edi, dword [esp + 0x28]
cmp edi, ebp
je 0x445840
mov eax, dword [ebp]
mov ecx, dword [eax + 4]
push ebp
mov esi, edi
mov dword [esp + 0x2c], ebp
call ecx
test esi, esi
je 0x445840
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
lea eax, [esp + 0x44]
lea edi, [esp + 0x48]
call fcn.004497f0
cmp byte [esp + 0x130], 0
je 0x4458a1
mov eax, dword [esp + 0x14]
push 0
push 1
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x74]
push 0
lea edx, [esp + 0x84]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
call fcn.00441340
sub edx, dword [esp + 0xd8]
add esp, 0x20
sub edx, dword [esp + 0xc0]
mov dword [esp + 0x60], eax
sub edx, dword [esp + 0xbc]
add dword [esp + 0x34], edx
test bl, bl
jne 0x4458f9
lea eax, [esp + 0x1c]
push eax
push 0x55da04
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
call fcn.00402710
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 0x17
call fcn.004049c0
mov byte [esp + 0x114], 0xf
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x445902
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x445902
lea ecx, [esp + 0x14]
call fcn.00405640
cmp byte [esp + 0x130], 0
je 0x44591e
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
je 0x44591e
mov edx, dword [esp + 0x38]
add dword [esp + 0x34], edx
cmp bl, 1
je 0x44593a
mov eax, dword [esp + 0x14]
inc dword [esp + 0x40]
cmp dword [eax - 0xc], 0
jne 0x445496
jmp 0x4459cd
mov ecx, dword [esp + 0x30]
push 0
push 0
push 0
push 0
push ecx
push ecx
mov eax, esp
mov dword [esp + 0x78], esp
mov dword [eax], ebp
test ebp, ebp
je 0x44595d
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push ebp
call eax
call fcn.0043b960
add esp, 0x18
cmp al, 1
jne 0x4459cd
mov ecx, dword [esp + 0x58]
mov edi, ecx
sub edi, dword [esp + 0x54]
xor esi, esi
sar edi, 2
test edi, edi
jbe 0x4459d1
mov bl, 0x18
mov edi, edi
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push edx
call fcn.00404ad0
mov byte [esp + 0x118], bl
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x58]
sar eax, 2
cmp esi, eax
jb 0x4459ac
call fcn.0050dcae
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + esi*4]
test ecx, ecx
je 0x44500d
mov byte [esp + 0x118], 0xf
call fcn.00425060
inc esi
cmp esi, edi
jb 0x445980
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x3c], 1
jne 0x445a53
mov edx, dword [esp + 0x30]
push 0
push 0
push 0
push 0
push edx
push ecx
mov ecx, dword [esp + 0x13c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x78], esp
test eax, eax
je 0x445a08
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0043b960
add esp, 0x18
cmp al, 1
jne 0x445a4f
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push edx
call fcn.00404ad0
mov byte [esp + 0x118], 0x19
mov ecx, dword [esp + 0x128]
test ecx, ecx
jne 0x445a42
push 0x80004003
call fcn.0050a1f0
mov byte [esp + 0x118], 0xf
call fcn.00425060
mov ecx, dword [esp + 0x58]
cmp byte [esp + 0x130], 0
je 0x445a95
mov eax, dword [esp + 0x9c]
sub eax, dword [esp + 0x94]
mov dword [esp + 0x2c], 0
sub eax, dword [esp + 0x34]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x68], eax
mov eax, ecx
sub eax, dword [esp + 0x54]
sar eax, 2
mov dword [esp + 0x6c], eax
test eax, eax
ja 0x445bc4
mov ebx, dword [esp + 0x84]
xor edi, edi
mov dword [ebx], ebp
cmp ebp, edi
je 0x445aad
mov ecx, dword [ebp]
mov edx, dword [ecx + 4]
push ebp
call edx
mov byte [esp + 0x114], 0xe
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 0x445ad5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x114], 0xd
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x445aed
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x114], 0xc
cmp ebp, edi
je 0x445b02
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
push ebp
call ecx
mov byte [esp + 0x114], 9
mov esi, dword [esp + 0x54]
cmp esi, edi
je 0x445b44
mov eax, dword [esp + 0x58]
mov edi, eax
cmp esi, eax
je 0x445b39
lea esp, [esp]
mov eax, dword [esi]
test eax, eax
je 0x445b2e
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
add esi, 4
cmp esi, edi
jne 0x445b20
mov esi, dword [esp + 0x54]
push esi
call fcn.0050c4ec
add esp, 4
xor edi, edi
mov ecx, dword [esp + 0x48]
push ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
call fcn.0050c4ec
mov byte [esp + 0x118], 3
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x445b85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x114], 0
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x114], 0xffffffff
mov eax, dword [esp + 0x124]
cmp eax, edi
je 0x445bb7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, ebx
jmp 0x445d4b
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
sar ecx, 2
cmp esi, ecx
jb 0x445bd8
call fcn.0050dcae
mov eax, dword [esp + 0x54]
push ecx
mov edi, esp
lea eax, [eax + esi*4]
mov dword [edi], 0
mov esi, dword [eax]
mov dword [esp + 0x64], esp
test esi, esi
je 0x445bfc
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
push esi
call edx
test esi, esi
sete al
test al, al
sete al
test al, al
je 0x445c41
test esi, esi
je 0x44500d
mov eax, dword [esi]
mov edx, dword [eax]
lea ecx, [esp + 0x24]
push ecx
push 0x55cff8
push esi
call edx
xor ebx, ebx
mov ebp, eax
mov eax, dword [edi]
test ebp, ebp
setl bl
dec ebx
and ebx, dword [esp + 0x24]
test eax, eax
je 0x445c3d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi], ebx
jmp 0x445c5a
mov eax, dword [edi]
test eax, eax
je 0x445c55
mov dword [edi], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebp, 0x80004002
test esi, esi
je 0x445c66
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
test ebp, ebp
jge 0x445c76
cmp ebp, 0x80004002
jne 0x445d23
lea edx, [esp + 0xf0]
push edx
call fcn.00441fe0
mov ecx, dword [eax]
mov dword [esp + 0x7c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x80], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 0xc]
add esp, 8
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0xa4]
push ecx
mov dword [esp + 0x88], edx
call dword [sym.imp.USER32.dll_CopyRect]
mov edx, dword [esp + 0x68]
push edx
push 0
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
sar ecx, 2
cmp esi, ecx
jb 0x445cea
call fcn.0050dcae
mov edx, dword [esp + 0x54]
mov eax, dword [edx + esi*4]
test eax, eax
je 0x44500d
mov ecx, dword [eax]
push 1
lea edx, [esp + 0xa4]
push edx
push eax
mov eax, dword [ecx + 0x44]
call eax
inc esi
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0x6c]
jb 0x445bc0
mov ebp, dword [esp + 0x44]
jmp 0x445a95
push ebp
call fcn.0050a1f0
mov eax, dword [esp + 0x124]
mov dword [edi], ebp
mov dword [esp + 0x114], 0xffffffff
cmp eax, ebp
je 0x445d49
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, edi
mov ecx, dword [esp + 0x10c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf4]
xor ecx, esp
call fcn.0050c75f
add esp, 0x104
ret