Function at 0x422dc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
mov edx, dword [0x563448]
mov esi, edx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x14], esi
mov ecx, dword [ebx + 0x88]
mov eax, dword [esi + 0x3ea0]
inc ecx
mov dword [ebp - 0x34], eax
mov al, byte [ebx + 0xa0]
mov dword [ebp - 0x48], ecx
test al, 0x40
je 0x422e04
mov byte [ebp - 3], 1
cmp ecx, dword [ebp - 0x34]
je 0x422e08
mov byte [ebp - 3], 0
cmp dword [ebx + 0x98], 0
je 0x422e1d
mov dword [ebp - 0x40], 1
cmp ecx, dword [ebp - 0x34]
je 0x422e24
mov dword [ebp - 0x40], 0
and al, 0xbf
mov dword [ebx + 0x98], 0
mov byte [ebp - 0xe], al
mov ecx, ebx
mov byte [ebx + 0xa0], al
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x30], ecx
test eax, eax
je 0x422e56
mov esi, eax
mov dword [ebp - 0x30], esi
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x422e45
mov ecx, dword [ebp - 0x30]
mov esi, edx
mov eax, dword [edx + 0x4274]
test eax, eax
je 0x422e6b
cmp dword [eax + 0x394], ebx
sete cl
jmp 0x422ed7
mov eax, dword [edx + 0x4124]
test eax, eax
je 0x422ed5
mov eax, dword [eax + 0x33c]
cmp eax, dword [edi + 0x338]
jne 0x422ed5
mov eax, dword [ecx + 0x90]
cmp eax, dword [ebx]
jne 0x422ed5
mov eax, dword [edx + 0x4124]
mov eax, dword [eax + 0x330]
mov ecx, dword [eax + 0x394]
test ecx, ecx
je 0x422ed5
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x422eb9
nop word [eax + eax]
mov ecx, eax
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x422eb0
cmp ecx, dword [ebp - 0x30]
je 0x422f3b
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x422ed5
mov eax, dword [eax + 0x330]
mov ecx, dword [eax + 0x394]
test ecx, ecx
jne 0x422ea3
xor cl, cl
mov eax, dword [ebx + 0x10]
mov byte [ebp - 1], cl
test eax, 0x3000
jne 0x423fa9
mov cl, byte [edi + 0xc8]
shr eax, 0xa
mov byte [ebp - 0xe], cl
test al, 1
jne 0x422f09
mov byte [edi + 0xc8], 0
mov dword [edi + 0x160], 1
mov edi, dword [edx + 0x3f04]
mov eax, dword [ebx]
add edi, 0xfc
mov dword [ebp - 0x38], eax
mov ecx, dword [edi + 4]
mov eax, dword [edi]
cmp eax, ecx
jne 0x422f57
lea edx, [eax + 1]
mov dword [ebp - 0x18], edx
test ecx, ecx
je 0x422f3f
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x18]
sar eax, 1
add eax, ecx
jmp 0x422f44
mov cl, 1
jmp 0x422ed7
mov eax, 8
cmp eax, edx
mov ecx, edi
cmovg edx, eax
push edx
call fcn.00428ee0
mov edx, dword [0x563448]
mov ecx, dword [edi]
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0x38]
mov dword [eax + ecx*4], esi
inc dword [edi]
mov eax, dword [ebx + 0x30]
mov edi, eax
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x5c], eax
test edi, edi
jne 0x422f83
mov ecx, ebx
call fcn.00424010
mov edi, dword [ebx + 0x30]
mov edx, dword [0x563448]
mov ah, byte [ebx + 0xa0]
mov al, byte [ebp - 1]
and ah, 0xfd
add al, al
mov dword [ebp - 0x38], 0
or ah, al
test dword [ebx + 0x10], 0x4000
mov byte [ebp - 4], ah
mov byte [ebx + 0xa0], ah
jne 0x423012
cmp dword [esi + 0x387c], 0xffffffff
je 0x423012
mov eax, dword [edx + 0x3f04]
xor edx, edx
mov byte [ebp - 2], 1
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, str.WindowMenu
call fcn.00408e80
add esp, 4
xor edx, edx
mov ecx, eax
call fcn.00418280
test al, al
je 0x42301e
mov edx, edi
mov ecx, ebx
call fcn.00422bc0
test eax, eax
je 0x422ffe
mov dword [edi + 0x18], eax
mov dword [ebp - 0x38], eax
mov ah, byte [ebx + 0xa0]
mov al, ah
shr al, 1
and al, 1
or al, byte [ebp - 1]
mov byte [ebp - 1], al
jmp 0x423021
mov al, byte [ebp - 1]
mov byte [ebp - 2], 0
mov byte [ebp - 1], al
jmp 0x423021
mov ah, byte [ebp - 4]
mov ecx, dword [0x563448]
movss xmm3, dword [ebx + 0x34]
movss xmm5, dword [ebx + 0x38]
movaps xmm1, xmm3
movss dword [ebp - 0x4c], xmm3
movaps xmm6, xmm3
movss xmm2, dword [ecx + 0x3c98]
movss xmm4, dword [ecx + 0x3894]
movaps xmm0, xmm2
movss xmm7, dword [ecx + 0x3890]
addss xmm0, xmm5
movss dword [ebp - 0x6c], xmm3
addss xmm4, xmm4
mov dword [ebp - 0x58], 0
movaps xmm3, xmm7
mov dword [ebp - 0x54], 0
movss dword [ebp - 0x44], xmm5
movss dword [ebp - 0x68], xmm5
addss xmm4, xmm0
movss xmm0, dword [ecx + 0x3868]
addss xmm6, xmm0
addss xmm1, dword [ebx + 0x3c]
movss dword [ebp - 8], xmm4
movss dword [ebp - 0x60], xmm4
addss xmm3, xmm6
movss dword [ebp - 0x3c], xmm1
movss dword [ebp - 0x64], xmm1
subss xmm1, xmm0
subss xmm1, xmm7
test ah, 8
je 0x4230ce
subss xmm1, xmm2
movss dword [ebp - 0x54], xmm5
movaps xmm0, xmm1
subss xmm0, xmm7
movss dword [ebp - 0x58], xmm0
test ah, 0x10
je 0x4230fe
cmp dword [ecx + 0x387c], 0
jne 0x4230ea
addss xmm2, dword [ecx + 0x38a8]
addss xmm3, xmm2
jmp 0x4230fe
cmp dword [ecx + 0x387c], 1
jne 0x4230fe
addss xmm2, xmm7
subss xmm1, xmm2
movaps xmm6, xmm1
mov eax, dword [edi]
xor edx, edx
movaps xmm0, xmm5
movss dword [ebp - 0x84], xmm3
movss dword [ebp - 0x80], xmm5
movss dword [ebp - 0x7c], xmm1
movss dword [ebp - 0x78], xmm4
movss dword [ebp - 0x74], xmm6
movss dword [ebp - 0x70], xmm0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0xc], edx
cmp dword [ebx + 0x24], edx
jle 0x423220
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x18], eax
mov edx, dword [eax + 0x88]
test edx, edx
je 0x423163
mov esi, dword [edi]
xor ecx, ecx
test esi, esi
jle 0x423163
mov eax, dword [edi + 8]
cmp dword [eax], edx
je 0x4231fd
inc ecx
add eax, 0x30
cmp ecx, esi
jl 0x423153
mov ecx, dword [ebp - 0x18]
or eax, 0xffffffff
mov word [ebp - 0x8a], ax
xorps xmm0, xmm0
mov word [ebp - 0x8c], ax
mov eax, 0x500000
mov dword [ebp - 0xb4], edx
mov edx, 0x400000
cmp byte [ecx + 0xcd], 0
movlpd qword [ebp - 0xa0], xmm0
cmovne eax, edx
movlpd qword [ebp - 0x98], xmm0
mov dword [ebp - 0xb0], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0xa4], 0xffffffff
mov dword [ebp - 0x90], 0xffffffff
mov dword [ebp - 0xa8], eax
cmp eax, 0xffffffff
jne 0x4231e9
mov esi, dword [0x563448]
mov eax, dword [esi + 0x3ea0]
dec eax
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xac], ecx
push eax
mov ecx, edi
call fcn.0044a1c0
mov edx, dword [ebp - 0xc]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [ebx + 0x24]
jl 0x423135
movss xmm4, dword [ebp - 8]
movss xmm5, dword [ebp - 0x44]
mov esi, dword [ebp - 0x14]
mov ecx, dword [0x563448]
mov al, byte [ebp - 1]
test al, al
je 0x423236
mov eax, dword [esi + 0x3ea0]
mov dword [ebx + 0x8c], eax
mov al, byte [ebp - 1]
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 0xc6], 0
je 0x423249
mov eax, 0xc
jmp 0x42325b
test al, al
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x44]
setne al
add eax, 0xa
movss xmm0, dword [0x5578c0]
add eax, eax
xorps xmm7, xmm7
movups xmm3, xmmword [ecx + eax*8 + 0x391c]
comiss xmm7, xmm3
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xff
mulss xmm2, dword [ecx + 0x3854]
movups xmmword [ebp - 0x28], xmm3
jbe 0x42328d
xorps xmm1, xmm1
jmp 0x423294
movaps xmm1, xmm0
minss xmm1, xmm3
comiss xmm7, dword [ebp - 0x24]
movss xmm3, dword [0x557a10]
movss xmm6, dword [0x557878]
mulss xmm1, xmm3
addss xmm1, xmm6
cvttss2si ecx, xmm1
jbe 0x4232bb
xorps xmm1, xmm1
jmp 0x4232c3
movaps xmm1, xmm0
minss xmm1, dword [ebp - 0x24]
mulss xmm1, xmm3
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm7, dword [ebp - 0x20]
jbe 0x4232df
xorps xmm1, xmm1
jmp 0x4232e7
movaps xmm1, xmm0
minss xmm1, dword [ebp - 0x20]
mulss xmm1, xmm3
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm7, xmm2
jbe 0x423302
xorps xmm0, xmm0
jmp 0x423306
minss xmm0, xmm2
movss xmm1, dword [edx + 0x40]
movss xmm2, dword [0x557908]
mulss xmm0, xmm3
movss xmm3, dword [edx + 0x44]
addss xmm0, xmm6
cvttss2si eax, xmm0
movaps xmm0, xmm1
addss xmm1, dword [edx + 0x48]
addss xmm0, xmm2
shl eax, 0x18
or eax, ecx
mov dword [ebp - 0x44], eax
subss xmm1, xmm2
comiss xmm0, dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x3c]
setae cl
comiss xmm0, xmm1
movaps xmm0, xmm3
addss xmm3, dword [edx + 0x4c]
addss xmm0, xmm2
setae byte [ebp - 4]
subss xmm3, xmm2
comiss xmm0, xmm5
setae ch
comiss xmm4, xmm3
setae byte [ebp - 0xd]
test ch, ch
je 0x42337b
test cl, cl
je 0x42337b
mov eax, 0x110
jmp 0x423384
mov eax, 0x100
test ch, ch
je 0x423391
cmp byte [ebp - 4], 0
mov dword [ebp - 8], 0x20
jne 0x423398
mov dword [ebp - 8], 0
mov ch, byte [ebp - 0xd]
test ch, ch
je 0x4233ac
test cl, cl
je 0x4233ac
mov dword [ebp - 0xc], 0x40
jmp 0x4233b7
mov dword [ebp - 0xc], 0
test ch, ch
je 0x4233c4
cmp byte [ebp - 4], 0
je 0x4233c4
mov ecx, 0x80
jmp 0x4233c6
xor ecx, ecx
movss xmm0, dword [edx + 0x78]
or eax, ecx
or eax, dword [ebp - 0xc]
or eax, dword [ebp - 8]
push eax
push ecx
mov ecx, dword [edx + 0x288]
lea eax, [ebp - 0x64]
movss dword [esp], xmm0
push dword [ebp - 0x44]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00433910
cmp byte [ebp - 2], 0
je 0x42347c
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, str.COLLAPSE
call fcn.00408e80
add esp, 4
lea edx, [ebp - 0x74]
mov ecx, eax
push ebx
call fcn.0043c060
add esp, 4
test al, al
je 0x42345f
mov eax, dword [0x563448]
mov ecx, str.WindowMenu
mov eax, dword [eax + 0x3f04]
mov edx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.00408e80
add esp, 4
mov ecx, eax
call fcn.00418300
mov eax, dword [0x563448]
mov ecx, dword [eax + 0x3f40]
test ecx, ecx
je 0x42347c
cmp ecx, dword [eax + 0x3fb4]
jne 0x42347c
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [edi]
mov dword [ebp - 0xc], eax
lea ecx, [eax - 1]
test ecx, ecx
js 0x4234bf
lea edx, [ecx + ecx*2]
shl edx, 4
nop
mov eax, dword [edi + 8]
mov eax, dword [edx + eax + 4]
test eax, 0x400000
je 0x4234b9
mov esi, dword [edi + 8]
and eax, 0xffbfffff
mov dword [edx + esi + 4], eax
mov eax, ecx
sub edx, 0x30
mov dword [ebp - 0xc], eax
sub ecx, 1
jns 0x423490
jmp 0x4234bc
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x14]
mov ecx, dword [edi]
cmp ecx, eax
jle 0x423573
test byte [esi + 0x53ec], 0x20
lea edx, [eax + 1]
mov dword [ebp - 0x4c], edx
je 0x423500
cmp ecx, edx
mov dword [ebp - 0x3c], 0x487dd4
mov eax, str.__will_sort_
cmovle eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0xc]
sub ecx, eax
push ecx
push dword [ebx]
push str._docking__In_node_0x_08X:__d_new_appearing_tabs:_s_n
call fcn.00401a70
add esp, 0x10
mov ecx, dword [edi]
mov dword [ebp - 8], eax
cmp eax, ecx
jge 0x42354d
lea edx, [eax + eax*2]
shl edx, 4
nop
test byte [esi + 0x53ec], 0x20
je 0x42353a
mov eax, dword [edi + 8]
mov ecx, dword [edx + eax + 8]
movsx eax, word [ecx + 0x37a]
push eax
push dword [ecx]
push str._docking____Tab__s_Order__d_n
call fcn.00401a70
mov eax, dword [ebp - 8]
add esp, 0xc
mov ecx, dword [edi]
inc eax
add edx, 0x30
mov dword [ebp - 8], eax
cmp eax, ecx
jl 0x423510
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x4c]
cmp ecx, edx
jle 0x423573
sub ecx, eax
cmp ecx, 1
jbe 0x423573
push 0x422b60
lea eax, [eax + eax*2]
push 0x30
shl eax, 4
add eax, dword [edi + 8]
push ecx
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
add esp, 0x10
mov eax, dword [esi + 0x4124]
test eax, eax
je 0x423591
mov eax, dword [eax + 0x330]
cmp dword [eax + 0x394], ebx
jne 0x423591
mov eax, dword [eax + 4]
mov dword [edi + 0x14], eax
cmp dword [ebp - 0x5c], 0
jne 0x4235c0
mov edx, dword [ebx + 0x94]
test edx, edx
je 0x4235c0
xor ecx, ecx
cmp dword [edi], ecx
jle 0x4235c0
mov eax, dword [edi + 8]
nop word [eax + eax]
cmp dword [eax], edx
je 0x423bad
inc ecx
add eax, 0x30
cmp ecx, dword [edi]
jl 0x4235b0
mov eax, dword [edi]
cmp eax, dword [ebp - 0x50]
jle 0x4235df
lea ecx, [eax + eax*2]
mov eax, dword [edi + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 - 0x28]
mov eax, dword [eax + 0x88]
mov dword [edi + 0x18], eax
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x500003
cmp byte [eax + 0xc6], 0
jne 0x4235fc
cmp byte [ebp - 1], 0
mov eax, 0x700003
cmovne ecx, eax
push ebx
push ecx
lea edx, [ebp - 0x84]
mov ecx, edi
call fcn.00447230
movups xmm0, xmmword [esi + 0x391c]
xor edx, edx
add esp, 8
movups xmm1, xmmword [esi + 0x3b2c]
mov dword [ebp - 0x18], edx
movups xmm2, xmmword [esi + 0x3b3c]
movups xmm3, xmmword [esi + 0x3b4c]
movups xmm4, xmmword [esi + 0x3b5c]
movups xmm5, xmmword [esi + 0x3b6c]
mov dword [ebx + 0x74], 0
movups xmmword [ebp - 0xe0], xmm0
movups xmmword [ebp - 0xf0], xmm1
movups xmmword [ebp - 0x100], xmm2
movups xmmword [ebp - 0x110], xmm3
movups xmmword [ebp - 0x120], xmm4
movups xmmword [ebp - 0xd0], xmm5
cmp dword [ebx + 0x24], edx
jle 0x423c02
movss xmm1, dword [0x557844]
nop
cmp byte [ebp - 3], 0
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax + edx*4]
mov dword [ebp - 8], edx
lea eax, [edx + 0x88]
mov dword [ebp - 0xc], eax
jne 0x42369f
mov ecx, dword [ebp - 0x40]
cmp ecx, dword [eax]
jne 0x4236bb
cmp byte [edx + 0xcd], 0
mov dword [ebp - 0xc], eax
je 0x4236bb
test dword [edx + 8], 0x100000
mov dword [ebp - 0xc], eax
je 0x423bc8
mov eax, dword [edx + 0x254]
inc eax
cmp eax, dword [esi + 0x3ea0]
jge 0x4236d6
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x48], eax
je 0x423bc8
mov ecx, dword [ebp - 8]
mov esi, dword [edx + 0x20]
or esi, 1
test dword [edx + 8], 0x100000
mov ecx, dword [ecx + 0x37c]
cmove esi, dword [edx + 0x20]
movzx eax, cl
mov edx, dword [edi + 0xc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, dword [ebp - 0x14]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + 0x391c], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x380]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mov eax, dword [ebp - 0x14]
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + 0x3b2c], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x384]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, dword [ebp - 0x14]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + 0x3b3c], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x388]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x558000]
mov eax, dword [ebp - 0x14]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + 0x3b4c], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38c]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, dword [ebp - 0x14]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + 0x3b5c], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x390]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x558000]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
shr ecx, 0x18
addsd xmm0, qword [eax*8 + 0x558000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov eax, dword [ebp - 0x14]
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x558000]
mov ecx, dword [ebp - 8]
push ecx
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + 0x3b6c], xmm0
mov eax, esi
mov byte [ebp - 2], 1
or eax, 4
test dl, 8
cmove eax, esi
xor edx, edx
cmp byte [ecx + 0xcd], dl
push eax
lea eax, [ebp - 2]
cmove eax, edx
mov edx, dword [ecx]
push eax
mov ecx, edi
call fcn.00448980
mov ecx, dword [ebp - 0xc]
add esp, 0xc
cmp byte [ebp - 2], 0
jne 0x423b50
mov eax, dword [ecx]
mov dword [ebx + 0x98], eax
mov edx, dword [ecx]
cmp dword [edi + 0x1c], edx
jne 0x423b5f
mov eax, dword [ebp - 8]
mov dword [ebx + 0x74], eax
mov edx, dword [ecx]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 0x3fbc]
mov dword [ecx + 0x3a0], eax
movups xmm0, xmmword [esi + 0x3fc0]
movups xmmword [ecx + 0x3a4], xmm0
mov eax, dword [esi + 0x4124]
test eax, eax
je 0x423bc0
cmp dword [eax + 0x330], ecx
jne 0x423bc0
test byte [ecx + 0x164], 2
movss xmm1, dword [0x557844]
jne 0x423bc8
mov eax, dword [ebp - 0x2c]
mov dword [eax + 0x34c], edx
jmp 0x423bc8
test eax, eax
je 0x4235c0
mov dword [edi + 0x18], edx
mov dword [edi + 0x14], edx
jmp 0x4235df
movss xmm1, dword [0x557844]
mov edx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x18], edx
cmp edx, dword [ebx + 0x24]
jl 0x423680
movups xmm0, xmmword [ebp - 0xe0]
movups xmm1, xmmword [ebp - 0xf0]
movups xmm2, xmmword [ebp - 0x100]
movups xmm3, xmmword [ebp - 0x110]
movups xmm4, xmmword [ebp - 0x120]
movups xmm5, xmmword [ebp - 0xd0]
movups xmmword [esi + 0x391c], xmm0
movups xmmword [esi + 0x3b2c], xmm1
movups xmmword [esi + 0x3b3c], xmm2
movups xmmword [esi + 0x3b4c], xmm3
movups xmmword [esi + 0x3b5c], xmm4
movups xmmword [esi + 0x3b6c], xmm5
mov ecx, dword [ebx + 0x74]
test ecx, ecx
je 0x423c45
cmp byte [ebp - 1], 0
mov eax, dword [ebp - 0x30]
jne 0x423c42
cmp dword [eax + 0x74], 0
jne 0x423c45
mov dword [eax + 0x74], ecx
mov al, byte [ebx + 0xa0]
and al, 8
je 0x423c68
mov ecx, dword [ebx + 0x74]
test ecx, ecx
je 0x423c68
cmp byte [ecx + 0xcd], 0
je 0x423c68
mov byte [ebp - 3], 1
jmp 0x423d5f
test al, al
je 0x423e35
mov edx, dword [0x563448]
mov dword [ebp - 0x40], edx
mov eax, dword [edx + 0x3f9c]
or eax, 4
mov dword [edx + 0x3f9c], eax
mov ecx, dword [edx + 0x40ac]
mov dword [ebp - 0x50], eax
lea eax, [edx + 0x40a8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], ecx
cmp dword [eax], ecx
jne 0x423cd4
mov ecx, dword [eax]
mov eax, dword [ebp - 0x18]
inc ecx
test eax, eax
je 0x423cb5
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x18]
jmp 0x423cba
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, dword [ebp - 0x34]
call fcn.00428ee0
mov edx, dword [0x563448]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x40], edx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0xd0], 0
mov dword [eax + ecx*4], esi
lea ecx, [edx + 0x4078]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
inc dword [eax]
lea eax, [ebp - 0xd0]
movss xmm0, dword [esi + 0x391c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [esi + 0x3920]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [esi + 0x3924]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [esi + 0x3928]
mulss xmm0, dword [0x557870]
push eax
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [edx + 0x391c]
movups xmmword [ebp - 0xcc], xmm0
call fcn.00428810
mov eax, dword [ebp - 0x40]
movups xmm0, xmmword [ebp - 0x28]
mov byte [ebp - 3], 0
movups xmmword [eax + 0x391c], xmm0
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, str.CLOSE
call fcn.00408e80
add esp, 4
lea edx, [ebp - 0x58]
mov ecx, eax
call fcn.0043bd20
test al, al
je 0x423de2
or byte [ebx + 0xa0], 0x40
cmp dword [edi], 0
jle 0x423de2
xor edx, edx
xor esi, esi
nop
mov ecx, dword [edi + 8]
add ecx, edx
test byte [ecx + 4], 1
jne 0x423dcd
mov byte [ecx + 0x2c], 1
mov eax, dword [edi + 0x1c]
cmp eax, dword [ecx]
jne 0x423dd7
mov dword [ecx + 0xc], 0xffffffff
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
jmp 0x423dd7
mov eax, dword [ecx]
cmp dword [edi + 0x1c], eax
je 0x423dd7
mov dword [edi + 0x18], eax
inc esi
add edx, 0x30
cmp esi, dword [edi]
jl 0x423da0
mov esi, dword [ebp - 0x14]
cmp byte [ebp - 3], 0
jne 0x423e35
mov esi, dword [0x563448]
mov eax, dword [esi + 0x4078]
mov ecx, dword [esi + 0x4080]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x391c], xmm0
dec dword [esi + 0x4078]
dec dword [esi + 0x40a8]
mov eax, dword [esi + 0x40b0]
mov ecx, dword [esi + 0x40a8]
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x3f9c], eax
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, str.TITLEBAR
call fcn.00408e80
mov ecx, dword [esi + 0x3f2c]
add esp, 4
mov dword [ebp - 0x48], eax
test ecx, ecx
je 0x423e74
cmp ecx, eax
je 0x423e74
cmp dword [esi + 0x3f40], eax
jne 0x423f28
push 0x1000
lea ecx, [ebp - 0xd]
mov edx, eax
push ecx
push 0
lea ecx, [ebp - 0x6c]
call fcn.0043b1d0
mov ecx, dword [ebp - 0x48]
add esp, 0xc
mov eax, dword [0x563448]
cmp dword [esi + 0x3f2c], ecx
jne 0x423ec6
mov dword [esi + 0x3fb4], ecx
mov ecx, dword [eax + 0x3fb4]
cmp dword [eax + 0x3f2c], ecx
jne 0x423eb7
mov byte [eax + 0x3f34], 1
cmp dword [eax + 0x3f40], ecx
jne 0x423ec6
mov byte [eax + 0x3f4d], 1
cmp byte [ebp - 0xd], 0
je 0x423f28
movss xmm0, dword [eax + 0x36a8]
ucomiss xmm0, dword [0x557824]
lahf
test ah, 0x44
jp 0x423ee7
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x38], eax
mov esi, dword [edi + 0x14]
test esi, esi
je 0x423f28
mov edx, dword [edi]
xor ecx, ecx
test edx, edx
jle 0x423f28
mov eax, dword [edi + 8]
nop dword [eax]
cmp dword [eax], esi
je 0x423f0e
inc ecx
add eax, 0x30
cmp ecx, edx
jl 0x423f00
jmp 0x423f28
test eax, eax
je 0x423f28
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x423f1c
mov ecx, dword [ebx + 0x70]
push 0
mov edx, ebx
call fcn.0040be20
add esp, 4
mov ecx, dword [edi + 0x18]
test ecx, ecx
cmove ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x423f68
mov edx, dword [edi]
xor eax, eax
test edx, edx
jle 0x423f68
mov esi, dword [edi + 8]
cmp dword [esi], ecx
je 0x423f4e
inc eax
add esi, 0x30
cmp eax, edx
jl 0x423f40
jmp 0x423f68
test esi, esi
je 0x423f68
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x423f68
call fcn.00416400
mov ecx, dword [esi + 8]
xor dl, dl
call fcn.00419cd0
call fcn.004475b0
mov eax, dword [0x563448]
mov eax, dword [eax + 0x3f04]
dec dword [eax + 0xfc]
mov eax, dword [ebx + 0x10]
shr eax, 0xa
test al, 1
jne 0x424004
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0xe]
mov dword [eax + 0x160], 0
mov byte [eax + 0xc8], cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x24], 0
jle 0x423fb6
mov eax, dword [ebx + 0x2c]
mov edi, dword [eax]
jmp 0x423fb8
xor edi, edi
mov dl, byte [ebp - 0xe]
mov al, cl
and dl, 0xfd
mov dword [ebx + 0x74], edi
add al, al
or dl, al
mov byte [ebx + 0xa0], dl
test cl, cl
je 0x423fdd
mov eax, dword [esi + 0x3ea0]
mov dword [ebx + 0x8c], eax
test edi, edi
je 0x424004
mov eax, dword [ebp - 0x30]
test cl, cl
jne 0x423fee
cmp dword [eax + 0x74], 0
jne 0x423ff1
mov dword [eax + 0x74], edi
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x424004
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x88]
mov dword [ecx + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret