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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [0x55b690]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x30], edi
mov ebx, dword [esi + 0x3ea0]
mov dword [ebp - 0x14], ecx
mov edx, dword [edi + 0x88]
mov al, byte [edi + 0xa0]
inc edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], ebx
test al, 0x40
je 0x476976
mov byte [ebp - 1], 1
cmp edx, ebx
je 0x47697a
mov byte [ebp - 1], 0
cmp dword [edi + 0x98], 0
je 0x47698e
mov dword [ebp - 0x44], 1
cmp edx, ebx
je 0x476995
mov dword [ebp - 0x44], 0
and al, 0xbf
mov dword [edi + 0x98], 0
mov byte [ebp - 3], al
xor dl, dl
mov byte [edi + 0xa0], al
mov ebx, edi
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], ebx
test eax, eax
je 0x4769d2
nop dword [eax + eax]
mov ecx, eax
mov dword [ebp - 0x34], ecx
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x4769c0
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x34]
mov eax, dword [esi + 0x4270]
test eax, eax
je 0x4769e7
cmp dword [eax + 0x384], edi
sete dl
jmp 0x476a15
mov eax, dword [esi + 0x4120]
test eax, eax
je 0x476a18
mov eax, dword [eax + 0x32c]
cmp eax, dword [ecx + 0x328]
jne 0x476a18
mov eax, dword [ebx + 0x90]
cmp eax, dword [edi]
movzx edx, dl
mov dword [ebp - 0xc], 1
cmove edx, dword [ebp - 0xc]
mov dword [ebp - 0x2c], edx
mov eax, dword [edi + 0x10]
test eax, 0x3000
jne 0x47790e
mov dl, byte [ecx + 0xc8]
shr eax, 0xa
mov byte [ebp - 3], dl
test al, 1
jne 0x476a47
mov byte [ecx + 0xc8], 0
mov dword [ecx + 0x15c], 1
push dword [edi]
call fcn.00485020
mov eax, dword [edi + 0x30]
add esp, 4
mov ebx, eax
mov dword [ebp - 8], eax
test ebx, ebx
jne 0x476a69
push edi
call fcn.00472df0
mov ebx, dword [edi + 0x30]
add esp, 4
mov cl, byte [edi + 0xa0]
mov al, byte [ebp - 0x2c]
and cl, 0xfd
add al, al
mov dword [ebp - 0x38], 0
or cl, al
test dword [edi + 0x10], 0x4000
mov byte [edi + 0xa0], cl
jne 0x476b5c
cmp dword [esi + 0x387c], 0xffffffff
je 0x476b5c
mov eax, dword [0x55b690]
mov dword [ebp - 0xc], eax
mov byte [ebp - 2], 1
mov eax, dword [eax + 0x3f04]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
push 0
push str.WindowMenu
call fcn.0047ce80
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], edx
cmp dword [eax + 0x3f40], edx
jne 0x476ae7
mov dword [eax + 0x3f44], edx
cmp dword [eax + 0x3f84], edx
jne 0x476af6
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], edx
jne 0x476b18
push 0
push str.WindowMenu
push 0xb
push edx
call fcn.0046df50
mov edx, dword [ebp - 0x18]
add esp, 0x10
mov eax, dword [0x55b690]
mov ecx, dword [eax + 0x40c8]
cmp dword [eax + 0x40bc], ecx
jle 0x476b60
mov eax, dword [eax + 0x40c4]
lea ecx, [ecx + ecx*8]
cmp dword [eax + ecx*4], edx
jne 0x476b60
push ebx
push edi
call fcn.00477a00
add esp, 8
test eax, eax
je 0x476b4d
mov dword [ebx + 0x18], eax
mov dword [ebp - 0x38], eax
mov al, byte [edi + 0xa0]
shr al, 1
and al, 1
or byte [ebp - 0x2c], al
jmp 0x476b60
mov byte [ebp - 2], 0
mov eax, dword [0x55b690]
movss xmm3, dword [edi + 0x38]
movss xmm1, dword [edi + 0x34]
movaps xmm4, xmm3
mov cl, byte [edi + 0xa0]
movaps xmm2, xmm1
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
movss xmm0, dword [eax + 0x3894]
addss xmm0, xmm0
addss xmm4, dword [eax + 0x3c98]
movss dword [ebp - 0x60], xmm1
movss dword [ebp - 0x5c], xmm3
addss xmm2, dword [edi + 0x3c]
addss xmm4, xmm0
movss dword [ebp - 0x58], xmm2
movss dword [ebp - 0x54], xmm4
movss xmm0, dword [eax + 0x3868]
movss xmm7, dword [eax + 0x3890]
movaps xmm6, xmm0
addss xmm6, xmm1
movss xmm1, dword [eax + 0x3c98]
subss xmm2, xmm0
movaps xmm5, xmm7
addss xmm5, xmm6
subss xmm2, xmm7
test cl, 8
je 0x476c02
subss xmm2, xmm1
movss dword [ebp - 0x48], xmm3
movaps xmm0, xmm2
subss xmm0, xmm7
movss dword [ebp - 0x4c], xmm0
test cl, 0x10
je 0x476c36
cmp dword [eax + 0x387c], 0
jne 0x476c1e
addss xmm1, dword [eax + 0x38a8]
addss xmm5, xmm1
jmp 0x476c36
cmp dword [eax + 0x387c], 1
jne 0x476c36
addss xmm1, dword [eax + 0x3890]
subss xmm2, xmm1
movaps xmm6, xmm2
cmp dword [edi + 0x24], 0
movaps xmm0, xmm3
movss dword [ebp - 0x78], xmm5
movss dword [ebp - 0x74], xmm3
movss dword [ebp - 0x70], xmm2
movss dword [ebp - 0x6c], xmm4
movss dword [ebp - 0x68], xmm6
movss dword [ebp - 0x64], xmm0
mov eax, dword [ebx]
mov dword [ebp - 0x50], eax
jle 0x476c9a
xor esi, esi
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0xc], eax
push dword [eax + 0x88]
push ebx
call fcn.004e0f60
add esp, 8
test eax, eax
jne 0x476c91
push dword [ebp - 0xc]
push 0x400000
push ebx
call fcn.004e0e50
add esp, 0xc
inc esi
cmp esi, dword [edi + 0x24]
jl 0x476c64
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
test cl, cl
je 0x476cad
mov eax, dword [esi + 0x3ea0]
mov dword [edi + 0x8c], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xc6], 0
je 0x476cc0
mov eax, 0xc
jmp 0x476cca
xor eax, eax
test cl, cl
setne al
add eax, 0xa
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.0047ad00
mov esi, eax
mov dword [esp + 4], 0x40000000
mov eax, dword [ebp - 0x14]
add esp, 4
movss xmm1, dword [eax + 0x40]
movss xmm0, dword [eax + 0x44]
movss dword [ebp - 0x28], xmm1
addss xmm1, dword [eax + 0x48]
movss dword [ebp - 0x24], xmm0
addss xmm0, dword [eax + 0x4c]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
movss dword [ebp - 0x20], xmm1
push eax
movss dword [ebp - 0x1c], xmm0
call fcn.004b0bc0
add esp, 0xc
push eax
mov eax, dword [ebp - 0x14]
push ecx
movss xmm0, dword [eax + 0x78]
lea eax, [ebp - 0x58]
movss dword [esp], xmm0
push esi
mov esi, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x60]
push eax
mov ecx, dword [esi + 0x284]
call fcn.004b0240
cmp byte [ebp - 2], 0
je 0x476e5d
mov ecx, dword [esi + 0xfc]
mov eax, dword [esi + 0x104]
push dword [eax + ecx*4 - 4]
push 0
push str.COLLAPSE
call fcn.0047ce80
mov esi, eax
add esp, 0xc
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f40], esi
jne 0x476d84
mov dword [eax + 0x3f44], esi
cmp dword [eax + 0x3f84], esi
jne 0x476d93
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], esi
jne 0x476db2
push 0
push str.COLLAPSE
push 0xb
push esi
call fcn.0046df50
add esp, 0x10
push edi
lea eax, [ebp - 0x68]
push eax
push esi
call fcn.004d2b80
add esp, 0xc
test al, al
je 0x476e40
mov eax, dword [0x55b690]
mov eax, dword [eax + 0x3f04]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
push 0
push str.WindowMenu
call fcn.0047ce80
mov esi, eax
add esp, 0xc
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f40], esi
jne 0x476e07
mov dword [eax + 0x3f44], esi
cmp dword [eax + 0x3f84], esi
jne 0x476e16
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], esi
jne 0x476e35
push 0
push str.WindowMenu
push 0xb
push esi
call fcn.0046df50
add esp, 0x10
push 0
push esi
call fcn.004843a0
add esp, 8
mov eax, dword [0x55b690]
mov ecx, dword [eax + 0x3f40]
test ecx, ecx
je 0x476e5d
cmp ecx, dword [eax + 0x3fb0]
jne 0x476e5d
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x38], eax
mov esi, dword [ebx]
mov dword [ebp - 0x18], esi
lea ecx, [esi - 1]
test ecx, ecx
js 0x476e99
imul edx, ecx, 0x2c
nop dword [eax]
mov esi, dword [ebx + 8]
mov eax, dword [edx + esi + 4]
test eax, 0x400000
je 0x476e96
and eax, 0xffbfffff
mov dword [edx + esi + 4], eax
mov esi, ecx
sub edx, 0x2c
mov dword [ebp - 0x18], esi
sub ecx, 1
jns 0x476e70
jmp 0x476e99
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebx]
cmp ecx, esi
jle 0x476ec5
lea eax, [esi + 1]
cmp ecx, eax
jle 0x476ec5
sub ecx, esi
cmp ecx, 1
jbe 0x476ec5
push 0x48dd40
imul eax, esi, 0x2c
push 0x2c
push ecx
add eax, dword [ebx + 8]
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
add esp, 0x10
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x4120]
test eax, eax
je 0x476ee6
mov eax, dword [eax + 0x320]
cmp dword [eax + 0x384], edi
jne 0x476ee6
mov eax, dword [eax + 4]
mov dword [ebx + 0x14], eax
cmp dword [ebp - 8], 0
jne 0x476f07
push dword [edi + 0x94]
push ebx
call fcn.004e0f60
add esp, 8
test eax, eax
je 0x476f07
mov eax, dword [edi + 0x94]
jmp 0x476f1e
mov eax, dword [ebx]
cmp eax, dword [ebp - 0x50]
jle 0x476f24
imul ecx, eax, 0x2c
mov eax, dword [ebx + 8]
mov eax, dword [ecx + eax - 0x24]
mov eax, dword [eax + 0x88]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x14]
mov ecx, 0x500003
cmp byte [eax + 0xc6], 0
jne 0x476f41
cmp byte [ebp - 0x2c], 0
mov eax, 0x700003
cmovne ecx, eax
push edi
push ecx
lea eax, [ebp - 0x78]
push eax
push ebx
call fcn.004d1330
movups xmm0, xmmword [esi + 0x391c]
xor edx, edx
add esp, 0x10
movups xmm1, xmmword [esi + 0x3b2c]
mov dword [ebp - 0xc], edx
movups xmm2, xmmword [esi + 0x3b3c]
movups xmm3, xmmword [esi + 0x3b4c]
movups xmm4, xmmword [esi + 0x3b5c]
movups xmm5, xmmword [esi + 0x3b6c]
mov dword [edi + 0x74], 0
movups xmmword [ebp - 0x9c], xmm0
movups xmmword [ebp - 0xac], xmm1
movups xmmword [ebp - 0xbc], xmm2
movups xmmword [ebp - 0xcc], xmm3
movups xmmword [ebp - 0xdc], xmm4
movups xmmword [ebp - 0x88], xmm5
cmp dword [edi + 0x24], edx
jle 0x47752f
movss xmm1, dword [0x51516c]
cmp byte [ebp - 1], 0
mov eax, dword [edi + 0x2c]
mov edx, dword [eax + edx*4]
mov dword [ebp - 8], edx
lea eax, [edx + 0x88]
mov dword [ebp - 0x18], eax
jne 0x476fe0
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [eax]
jne 0x476ffc
cmp byte [edx + 0xcd], 0
mov dword [ebp - 0x18], eax
je 0x476ffc
test dword [edx + 8], 0x100000
mov dword [ebp - 0x18], eax
je 0x4774f5
mov eax, dword [edx + 0x250]
inc eax
cmp eax, dword [esi + 0x3ea0]
jge 0x477017
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x40], eax
je 0x4774f5
mov ecx, dword [ebp - 8]
mov esi, dword [edx + 0x20]
or esi, 1
test dword [edx + 8], 0x100000
mov ecx, dword [ecx + 0x36c]
cmove esi, dword [edx + 0x20]
movzx eax, cl
mov edx, dword [ebx + 0xc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
mov eax, dword [ebp - 0x10]
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 + 0x50c350]
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 + 0x370]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
cvtpd2ps xmm0, xmm0
mov eax, dword [ebp - 0x10]
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 + 0x374]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
mov eax, dword [ebp - 0x10]
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 + 0x50c350]
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 + 0x378]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
mov eax, dword [ebp - 0x10]
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 + 0x37c]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
mov eax, dword [ebp - 0x10]
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 + 0x50c350]
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 + 0x380]
movzx eax, cl
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
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 + 0x50c350]
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 + 0x50c350]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov eax, dword [ebp - 0x10]
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x50c350]
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
push eax
push dword [ecx]
push ebx
call fcn.004e24a0
mov ecx, dword [ebp - 0x18]
add esp, 0x14
cmp byte [ebp - 2], 0
jne 0x477490
mov eax, dword [ecx]
mov dword [edi + 0x98], eax
mov edx, dword [ecx]
cmp dword [ebx + 0x1c], edx
jne 0x47749f
mov eax, dword [ebp - 8]
mov dword [edi + 0x74], eax
mov edx, dword [ecx]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 0x3fb8]
mov dword [ecx + 0x390], eax
movups xmm0, xmmword [esi + 0x3fbc]
movups xmmword [ecx + 0x394], xmm0
mov eax, dword [esi + 0x4120]
test eax, eax
je 0x4774ed
cmp dword [eax + 0x320], ecx
jne 0x4774ed
test byte [ecx + 0x160], 2
movss xmm1, dword [0x51516c]
jne 0x4774f5
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x33c], edx
jmp 0x4774f5
movss xmm1, dword [0x51516c]
mov edx, dword [ebp - 0xc]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [edi + 0x24]
jl 0x476fc1
movups xmm0, xmmword [ebp - 0x9c]
movups xmm1, xmmword [ebp - 0xac]
movups xmm2, xmmword [ebp - 0xbc]
movups xmm3, xmmword [ebp - 0xcc]
movups xmm4, xmmword [ebp - 0xdc]
movups xmm5, xmmword [ebp - 0x88]
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 [edi + 0x74]
test ecx, ecx
je 0x477572
cmp byte [ebp - 0x2c], 0
mov eax, dword [ebp - 0x34]
jne 0x47756f
cmp dword [eax + 0x74], 0
jne 0x477572
mov dword [eax + 0x74], ecx
mov al, byte [edi + 0xa0]
and al, 8
je 0x477595
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x477595
cmp byte [ecx + 0xcd], 0
je 0x477595
mov byte [ebp - 1], 1
jmp 0x47767b
test al, al
je 0x477771
mov eax, dword [0x55b690]
lea edx, [eax + 0x40a4]
mov dword [ebp - 0xc], edx
mov ecx, dword [eax + 0x3f98]
or ecx, 4
mov dword [eax + 0x3f98], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x40], eax
cmp ecx, eax
jne 0x4775f0
inc ecx
test eax, eax
je 0x4775db
cdq
sub eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 1
add eax, dword [ebp - 0x40]
jmp 0x4775e0
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.00492790
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 0x8c], 0
mov dword [eax + ecx*4], edi
lea eax, [ebp - 0x8c]
inc dword [edx]
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 [0x515188]
mov esi, dword [0x55b690]
push eax
movss dword [ebp - 0x1c], xmm0
movups xmm0, xmmword [esi + 0x391c]
lea ecx, [esi + 0x4074]
movups xmmword [ebp - 0x88], xmm0
call fcn.00492300
movups xmm0, xmmword [ebp - 0x28]
mov edi, dword [ebp - 0x30]
mov byte [ebp - 1], 0
movups xmmword [esi + 0x391c], xmm0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
push 0
push str.CLOSE
call fcn.0047ce80
mov esi, eax
add esp, 0xc
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f40], esi
jne 0x4776b2
mov dword [eax + 0x3f44], esi
cmp dword [eax + 0x3f84], esi
jne 0x4776c1
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], esi
jne 0x4776e0
push 0
push str.CLOSE
push 0xb
push esi
call fcn.0046df50
add esp, 0x10
lea eax, [ebp - 0x4c]
push eax
push esi
call fcn.004d2880
add esp, 8
test al, al
je 0x47771b
or byte [edi + 0xa0], 0x40
cmp dword [ebx], 0
jle 0x47771b
xor esi, esi
xor edi, edi
mov eax, dword [ebx + 8]
add eax, esi
push eax
push ebx
call fcn.004e0ee0
inc edi
add esp, 8
add esi, 0x2c
cmp edi, dword [ebx]
jl 0x477701
mov edi, dword [ebp - 0x30]
cmp byte [ebp - 1], 0
jne 0x477771
mov esi, dword [0x55b690]
mov eax, dword [esi + 0x4074]
mov ecx, dword [esi + 0x407c]
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 + 0x4074]
mov edx, dword [0x55b690]
dec dword [edx + 0x40a4]
mov eax, dword [edx + 0x40ac]
mov ecx, dword [edx + 0x40a4]
mov eax, dword [eax + ecx*4 - 4]
mov dword [edx + 0x3f98], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
push 0
push str.TITLEBAR
call fcn.0047ce80
mov ecx, eax
add esp, 0xc
mov eax, dword [0x55b690]
mov dword [ebp - 0x30], ecx
cmp dword [eax + 0x3f40], ecx
jne 0x4777ab
mov dword [eax + 0x3f44], ecx
cmp dword [eax + 0x3f84], ecx
jne 0x4777ba
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], ecx
jne 0x4777dc
push 0
push str.TITLEBAR
push 0xb
push ecx
call fcn.0046df50
mov ecx, dword [ebp - 0x30]
add esp, 0x10
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x3f2c]
test eax, eax
je 0x4777f9
cmp eax, ecx
je 0x4777f9
cmp dword [esi + 0x3f40], ecx
jne 0x477896
push 0x1000
lea eax, [ebp - 1]
push eax
push 0
push ecx
lea eax, [ebp - 0x60]
push eax
call fcn.004d1be0
mov eax, dword [ebp - 0x30]
add esp, 0x14
cmp dword [esi + 0x3f2c], eax
jne 0x47784b
mov dword [esi + 0x3fb0], eax
mov eax, dword [0x55b690]
mov ecx, dword [eax + 0x3fb0]
cmp dword [eax + 0x3f2c], ecx
jne 0x47783c
mov byte [eax + 0x3f34], 1
cmp dword [eax + 0x3f40], ecx
jne 0x47784b
mov byte [eax + 0x3f4d], 1
cmp byte [ebp - 1], 0
je 0x477896
mov eax, dword [0x55b690]
xorps xmm1, xmm1
movss xmm0, dword [eax + 0x36a8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x477870
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x38], eax
push dword [ebx + 0x14]
push ebx
call fcn.004e0f60
add esp, 8
test eax, eax
je 0x477896
mov eax, dword [eax + 8]
test eax, eax
jne 0x47788a
mov eax, dword [edi + 0x70]
push 0
push edi
push eax
call fcn.0048d5f0
add esp, 0xc
mov eax, dword [ebx + 0x18]
test eax, eax
cmove eax, dword [ebp - 0x38]
test eax, eax
je 0x4778cd
push eax
push ebx
call fcn.004e0f60
mov esi, eax
add esp, 8
test esi, esi
je 0x4778cd
mov eax, dword [esi + 8]
test eax, eax
je 0x4778cd
push eax
call fcn.0047a930
push 0
push dword [esi + 8]
call fcn.0047fea0
add esp, 0xc
call fcn.004d8ae0
mov eax, dword [0x55b690]
mov eax, dword [eax + 0x3f04]
dec dword [eax + 0xfc]
mov eax, dword [edi + 0x10]
shr eax, 0xa
test al, 1
jne 0x47796c
mov eax, dword [ebp - 0x14]
mov cl, byte [ebp - 3]
pop edi
pop esi
mov dword [eax + 0x15c], 0
mov byte [eax + 0xc8], cl
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x24], 0
jle 0x47791b
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
jmp 0x47791d
xor eax, eax
mov cl, byte [ebp - 3]
mov dword [ebp - 0x30], eax
and cl, 0xfd
mov dword [edi + 0x74], eax
mov al, dl
add al, al
or cl, al
mov byte [edi + 0xa0], cl
test dl, dl
je 0x477945
mov eax, dword [esi + 0x3ea0]
mov dword [edi + 0x8c], eax
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x47796c
test dl, dl
jne 0x477956
cmp dword [ebx + 0x74], 0
jne 0x477959
mov dword [ebx + 0x74], eax
mov ecx, dword [edi + 0x30]
test ecx, ecx
je 0x47796c
mov eax, dword [edi + 0x74]
mov eax, dword [eax + 0x88]
mov dword [ecx + 0x1c], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret