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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5739a9
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push esi
push edi
mov eax, dword [0x5d1614]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x30], ebx
call fcn.00422990
push 0xc6
lea esi, [ebx + 0xe8]
call fcn.0040eca0
xor edi, edi
cmp dword [ebx + 0xe4], edi
je 0x4381c7
push 0xcf
lea esi, [ebx + 0x92c]
call fcn.0040eca0
push 0xd0
lea esi, [ebx + 0x938]
call fcn.0040eca0
call fcn.00451023
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 0x438236
push edi
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 1
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.0044f53c
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 0x438291
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x438291
mov edx, dword [esp + 0x38]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00401a30
push 0x5d9f68
lea edi, [esp + 0x1c]
call fcn.00415a40
mov byte [esp + 0xd0], 2
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.0044f53c
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 0x43828f
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 0x4382cd
push 0x434
mov ecx, ebx
call fcn.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x4382bb
xor ecx, ecx
jmp 0x4382c2
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 0x438447
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x438309
xor ecx, ecx
jmp 0x438310
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x43833b
xor ecx, ecx
jmp 0x438342
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x43836d
xor ecx, ecx
jmp 0x438374
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x43839f
xor ecx, ecx
jmp 0x4383a6
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x4383d1
xor ecx, ecx
jmp 0x4383d8
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x438403
xor ecx, ecx
jmp 0x43840a
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x438435
xor ecx, ecx
jmp 0x43843c
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 0x4384af
push 0x417
mov ecx, ebx
call fcn.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x43846b
xor ecx, ecx
jmp 0x438472
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.0044f3ff
cmp dword [esp + 0x10], edi
jne 0x43849d
xor ecx, ecx
jmp 0x4384a4
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 3
mov eax, dword [eax]
push eax
push 0x434
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438506
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.0044f3ff
push ebx
mov esi, eax
call fcn.00427250
push 0x5d
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 4
mov eax, dword [eax]
push eax
push 0x417
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438578
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 5
mov eax, dword [eax]
push eax
push 0x418
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x4385cf
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 6
mov eax, dword [eax]
push eax
push 0x41e
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438626
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 7
mov eax, dword [eax]
push eax
push 0x420
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x43867d
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 8
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x4386d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fld1
push 0x5d9ed4
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 [0x5d9eec]
push 0x5d9ed4
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.00404370
cmp dword [esp + 0x98], edi
je 0x4387f4
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 0x4387d0
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 0x4387f4
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.0040be60
call fcn.00451023
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xcc]
cmp dword [eax + 0x98], edi
je 0x438986
mov eax, dword [eax + 0x8c]
cmp dword [eax - 0xc], edi
je 0x438986
fld dword [esp + 0x10]
fmul qword [0x5a9208]
call fcn.00546440
fld dword [esp + 0x18]
fmul qword [0x5a9218]
mov esi, eax
mov dword [esp + 0x10], esi
call fcn.00546440
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.00451d48
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.0044f896
mov ecx, 0x5d9f68
call fcn.004156b0
lea esi, [ebx + 0x100]
test eax, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
push ebx
mov ecx, esi
je 0x4388ca
push 0xd3
jmp 0x4388cf
push 0xc3
call edx
push esi
call fcn.00418a10
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.0044f5c7
push 5
mov ecx, esi
call fcn.0044f607
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov esi, 0x5d2f08
lea ebx, [ebx]
mov edx, dword [esi]
push edx
mov ecx, ebx
call fcn.0044f3ff
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.00451d48
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.0044f3ff
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.0044f5c7
add esi, 4
cmp esi, 0x5d2f40
jl 0x438910
mov edx, dword [ebx + 0x20]
push 1
push edi
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebx + 0x7e4]
mov edx, dword [eax + 0x148]
lea esi, [ebx + 0x7e4]
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.00401fe0
mov ecx, dword [esp + 0x1c]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
xor eax, eax
call fcn.0040a550
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.00401fe0
mov edx, dword [esp + 0x1c]
add eax, 0x10
mov dword [edx], eax
add esp, 4
xor eax, eax
call fcn.0040a550
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 + 0x804]
push 0xff0000
push edi
push 0x2001
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push 0x41a
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push edi
push 0x408
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
mov ecx, dword [ebx + 0x20]
push edi
push ecx
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0045bc3c
cmp eax, edi
je 0x438a9b
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 + 0xe4], edi
je 0x438bcb
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push 0x5c
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 0xc
mov eax, dword [eax]
push eax
push 0x41a
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438b13
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 0xd
mov eax, dword [eax]
push eax
push 0x41d
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438b6a
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.0044f3ff
push ebx
mov esi, eax
call fcn.00427250
push 5
push 0x417
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push 5
push 0x418
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push 5
push 0x41e
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push 5
jmp 0x438cdd
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push 0x5b
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 0xe
mov eax, dword [eax]
push eax
push 0x41a
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438c2e
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, 0x5d9f68
call fcn.00415230
mov byte [esp + 0xd0], 0xf
mov eax, dword [eax]
push eax
push 0x41d
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f53c
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 0x438c85
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.0044f3ff
push ebx
mov esi, eax
call fcn.00427250
push edi
push 0x417
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push edi
push 0x418
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push edi
push 0x41e
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push edi
push 0x420
mov ecx, ebx
call fcn.0044f3ff
mov ecx, eax
call fcn.0044f607
push 0x417
mov ecx, ebx
call fcn.0044f3ff
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.0044f3ff
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.0044f3ff
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x64]
push ecx
push edx
call esi
push 0x41e
mov ecx, ebx
call fcn.0044f3ff
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x54]
push ecx
push edx
call esi
push 0x420
mov ecx, ebx
call fcn.0044f3ff
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.00451d48
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
call fcn.00451d48
lea edx, [esp + 0x54]
push edx
mov ecx, ebx
call fcn.00451d48
lea eax, [esp + 0x74]
push eax
mov ecx, ebx
call fcn.00451d48
mov ecx, dword [esp + 0x88]
mov dword [ebx + 0x958], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x80]
mov dword [ebx + 0x968], eax
lea eax, [ebx + 0x950]
mov dword [ebx + 0x960], edx
mov edx, dword [eax]
mov dword [ebx + 0x970], ecx
mov dword [esp + 0x18], eax
cmp dword [edx - 0xc], edi
jne 0x439140
mov eax, dword [ebx + 0x94c]
cmp dword [eax - 0xc], edi
je 0x439140
lea ecx, [esp + 0x1c]
call fcn.004542b8
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x24]
mov byte [esp + 0xd8], 0x10
call fcn.00454339
push 1
lea ecx, [esp + 0x20]
push ecx
call fcn.004115d0
lea edx, [esp + 0x14]
push edx
call fcn.00408cf0
add esp, 4
mov byte [esp + 0xd0], 0x11
mov ecx, dword [esp + 0x24]
cmp ecx, edi
jle 0x439105
xor esi, esi
test ecx, ecx
jle 0x438eed
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x94c]
test esi, esi
jl 0x438f61
cmp esi, ecx
jge 0x438f61
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x438f57
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + esi*4]
push eax
push ecx
call fcn.00541d4b
add esp, 8
test eax, eax
jne 0x438ee4
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.00401f10
mov ecx, dword [esp + 0x24]
inc esi
cmp esi, ecx
jl 0x438e9e
xor edi, edi
test ecx, ecx
jle 0x439105
call fcn.00447edb
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x438f57
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 0x438f61
cmp edi, dword [esp + 0x24]
jge 0x438f61
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 0x438f66
cmp eax, dword [esi]
jne 0x438f66
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x438fa1
push 0x80004005
call fcn.00401fc0
call fcn.00447de9
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 0x439040
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.00540a95
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.00411cf0
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x94c]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x438f57
mov ebx, dword [esp + 0x34]
push eax
push ebx
call fcn.00541d4b
add esp, 8
test eax, eax
je 0x439045
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 0x43900c
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 0x439030
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 0x438ef7
jmp 0x439101
call fcn.004132a0
cmp edi, dword [esp + 0x24]
jge 0x438f61
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 0x4390b5
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4390a9
mov ebx, dword [eax]
cmp ebx, dword [esi]
jne 0x4390a5
push eax
call fcn.00401fe0
add esp, 4
mov ebx, eax
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x439096
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 0x4390b5
mov ebx, dword [esp + 0x34]
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edx
call fcn.00401e60
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 0x4390dd
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 0x439101
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 0x43912d
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.004544e4
xor edi, edi
lea ecx, [ebx + 0x88]
push ecx
mov ecx, ebx
call fcn.004396f0
test eax, eax
je 0x43916a
cmp dword [ebx + 0xe4], edi
je 0x439162
inc dword [0x5da140]
jmp 0x439172
inc dword [0x5da148]
jmp 0x439172
push edi
mov ecx, ebx
call fcn.00448453
push 0x3ee
mov ecx, ebx
call fcn.0044f3ff
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 0x4391b8
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 0x4391e0
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 0x43920b
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