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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x574969
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push esi
push edi
mov eax, dword [0x5d2614]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x30], ebx
call fcn.00422940
push 0xc6
lea esi, [ebx + 0xe8]
call fcn.0040ec10
xor edi, edi
cmp dword [ebx + 0xe4], edi
je 0x438e07
push 0xcf
lea esi, [ebx + 0x92c]
call fcn.0040ec10
push 0xd0
lea esi, [ebx + 0x938]
call fcn.0040ec10
call fcn.00451b96
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 0x438e76
push edi
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 1
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.004500eb
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 0x438ed1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x438ed1
mov edx, dword [esp + 0x38]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00401a30
push 0x5dafc8
lea edi, [esp + 0x1c]
call fcn.00415a30
mov byte [esp + 0xd0], 2
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.004500eb
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 0x438ecf
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 0x438f0d
push 0x434
mov ecx, ebx
call fcn.0044ffae
cmp dword [esp + 0x10], edi
jne 0x438efb
xor ecx, ecx
jmp 0x438f02
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 0x439087
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x438f49
xor ecx, ecx
jmp 0x438f50
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x438f7b
xor ecx, ecx
jmp 0x438f82
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x438fad
xor ecx, ecx
jmp 0x438fb4
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x438fdf
xor ecx, ecx
jmp 0x438fe6
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x439011
xor ecx, ecx
jmp 0x439018
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x439043
xor ecx, ecx
jmp 0x43904a
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x439075
xor ecx, ecx
jmp 0x43907c
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 0x4390ef
push 0x417
mov ecx, ebx
call fcn.0044ffae
cmp dword [esp + 0x10], edi
jne 0x4390ab
xor ecx, ecx
jmp 0x4390b2
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.0044ffae
cmp dword [esp + 0x10], edi
jne 0x4390dd
xor ecx, ecx
jmp 0x4390e4
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 3
mov eax, dword [eax]
push eax
push 0x434
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x439146
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.0044ffae
push ebx
mov esi, eax
call fcn.00427600
push 0x5d
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 4
mov eax, dword [eax]
push eax
push 0x417
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x4391b8
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 5
mov eax, dword [eax]
push eax
push 0x418
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x43920f
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 6
mov eax, dword [eax]
push eax
push 0x41e
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x439266
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 7
mov eax, dword [eax]
push eax
push 0x420
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x4392bd
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 8
mov eax, dword [eax]
push eax
push 0x3ee
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x439314
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fld1
push 0x5daf34
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 [0x5daf4c]
push 0x5daf34
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.004043a0
cmp dword [esp + 0x98], edi
je 0x439434
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 0x439410
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 0x439434
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.0040bdb0
call fcn.00451b96
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xcc]
cmp dword [eax + 0x98], edi
je 0x4395c6
mov eax, dword [eax + 0x8c]
cmp dword [eax - 0xc], edi
je 0x4395c6
fld dword [esp + 0x10]
fmul qword [0x5aa260]
call fcn.005472a0
fld dword [esp + 0x18]
fmul qword [0x5aa270]
mov esi, eax
mov dword [esp + 0x10], esi
call fcn.005472a0
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.00452890
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.00450404
mov ecx, 0x5dafc8
call fcn.004156a0
lea esi, [ebx + 0x100]
test eax, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
push ebx
mov ecx, esi
je 0x43950a
push 0xd3
jmp 0x43950f
push 0xc3
call edx
push esi
call fcn.00418a00
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.00450176
push 5
mov ecx, esi
call fcn.004501b6
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov esi, 0x5d3f08
lea ebx, [ebx]
mov edx, dword [esi]
push edx
mov ecx, ebx
call fcn.0044ffae
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.00452890
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.0044ffae
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.00450176
add esi, 4
cmp esi, 0x5d3f40
jl 0x439550
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.00402000
mov ecx, dword [esp + 0x1c]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
xor eax, eax
call fcn.0040a510
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.00402000
mov edx, dword [esp + 0x1c]
add eax, 0x10
mov dword [edx], eax
add esp, 4
xor eax, eax
call fcn.0040a510
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.0044ffae
mov ecx, eax
call fcn.004501b6
push edi
push 0x408
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
mov ecx, dword [ebx + 0x20]
push edi
push ecx
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0045c7bc
cmp eax, edi
je 0x4396db
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 0x43980b
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push 0x5c
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 0xc
mov eax, dword [eax]
push eax
push 0x41a
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x439753
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 0xd
mov eax, dword [eax]
push eax
push 0x41d
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x4397aa
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.0044ffae
push ebx
mov esi, eax
call fcn.00427600
push 5
push 0x417
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push 5
push 0x418
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push 5
push 0x41e
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push 5
jmp 0x43991d
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push 0x5b
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 0xe
mov eax, dword [eax]
push eax
push 0x41a
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x43986e
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, 0x5dafc8
call fcn.00415220
mov byte [esp + 0xd0], 0xf
mov eax, dword [eax]
push eax
push 0x41d
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004500eb
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 0x4398c5
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.0044ffae
push ebx
mov esi, eax
call fcn.00427600
push edi
push 0x417
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push edi
push 0x418
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push edi
push 0x41e
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push edi
push 0x420
mov ecx, ebx
call fcn.0044ffae
mov ecx, eax
call fcn.004501b6
push 0x417
mov ecx, ebx
call fcn.0044ffae
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.0044ffae
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.0044ffae
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x64]
push ecx
push edx
call esi
push 0x41e
mov ecx, ebx
call fcn.0044ffae
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x54]
push ecx
push edx
call esi
push 0x420
mov ecx, ebx
call fcn.0044ffae
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.00452890
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
call fcn.00452890
lea edx, [esp + 0x54]
push edx
mov ecx, ebx
call fcn.00452890
lea eax, [esp + 0x74]
push eax
mov ecx, ebx
call fcn.00452890
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 0x439d80
mov eax, dword [ebx + 0x94c]
cmp dword [eax - 0xc], edi
je 0x439d80
lea ecx, [esp + 0x1c]
call fcn.00454dde
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x24]
mov byte [esp + 0xd8], 0x10
call fcn.00454e85
push 1
lea ecx, [esp + 0x20]
push ecx
call fcn.00411540
lea edx, [esp + 0x14]
push edx
call fcn.00408d00
add esp, 4
mov byte [esp + 0xd0], 0x11
mov ecx, dword [esp + 0x24]
cmp ecx, edi
jle 0x439d45
xor esi, esi
test ecx, ecx
jle 0x439b2d
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x94c]
test esi, esi
jl 0x439ba1
cmp esi, ecx
jge 0x439ba1
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x439b97
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + esi*4]
push eax
push ecx
call fcn.00542bb8
add esp, 8
test eax, eax
jne 0x439b24
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.00401f40
mov ecx, dword [esp + 0x24]
inc esi
cmp esi, ecx
jl 0x439ade
xor edi, edi
test ecx, ecx
jle 0x439d45
call fcn.00448a4d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x439b97
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 0x439ba1
cmp edi, dword [esp + 0x24]
jge 0x439ba1
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 0x439ba6
cmp eax, dword [esi]
jne 0x439ba6
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x439be1
push 0x80004005
call fcn.00401fd0
call fcn.00448939
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 0x439c80
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.00541902
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.00411c60
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x94c]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x439b97
mov ebx, dword [esp + 0x34]
push eax
push ebx
call fcn.00542bb8
add esp, 8
test eax, eax
je 0x439c85
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 0x439c4c
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 0x439c70
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 0x439b37
jmp 0x439d41
call fcn.00401ff0
cmp edi, dword [esp + 0x24]
jge 0x439ba1
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 0x439cf5
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x439ce9
mov ebx, dword [eax]
cmp ebx, dword [esi]
jne 0x439ce5
push eax
call fcn.00402000
add esp, 4
mov ebx, eax
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x439cd6
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 0x439cf5
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 0x439d1d
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 0x439d41
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 0x439d6d
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.00455030
xor edi, edi
lea ecx, [ebx + 0x88]
push ecx
mov ecx, ebx
call fcn.0043a330
test eax, eax
je 0x439daa
cmp dword [ebx + 0xe4], edi
je 0x439da2
inc dword [0x5db1a0]
jmp 0x439db2
inc dword [0x5db1a8]
jmp 0x439db2
push edi
mov ecx, ebx
call fcn.00448fc5
push 0x3ee
mov ecx, ebx
call fcn.0044ffae
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 0x439df8
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 0x439e20
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 0x439e4b
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