5457d8:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5457de:	e9 d1 d0 ff ff       	jmp    0x5428b4
5457e3:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5457e9:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5457ef:	8b 4a 04             	mov    0x4(%edx),%ecx
5457f2:	8b 40 60             	mov    0x60(%eax),%eax
5457f5:	8b 34 88             	mov    (%eax,%ecx,4),%esi
5457f8:	85 f6                	test   %esi,%esi
5457fa:	74 35                	je     0x545831
5457fc:	8b 46 0c             	mov    0xc(%esi),%eax
5457ff:	85 c0                	test   %eax,%eax
545801:	74 2e                	je     0x545831
545803:	6a 00                	push   $0x0
545805:	ff 76 34             	push   0x34(%esi)
545808:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
54580f:	50                   	push   %eax
545810:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
545817:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
54581e:	e8 3d 56 fd ff       	call   0x51ae60
545823:	83 c4 0c             	add    $0xc,%esp
545826:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54582c:	e9 15 01 00 00       	jmp    0x545946
545831:	6a 00                	push   $0x0
545833:	6a ff                	push   $0xffffffff
545835:	ff 72 08             	push   0x8(%edx)
545838:	51                   	push   %ecx
545839:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
54583f:	e8 0c d1 fa ff       	call   0x4f2950
545844:	8b f0                	mov    %eax,%esi
545846:	83 c4 14             	add    $0x14,%esp
545849:	85 f6                	test   %esi,%esi
54584b:	0f 84 83 37 00 00    	je     0x548fd4
545851:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
545857:	8d 5e 0c             	lea    0xc(%esi),%ebx
54585a:	83 4e 08 01          	orl    $0x1,0x8(%esi)
54585e:	68 1e 04 00 00       	push   $0x41e
545863:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
545867:	83 c9 05             	or     $0x5,%ecx
54586a:	51                   	push   %ecx
54586b:	53                   	push   %ebx
54586c:	57                   	push   %edi
54586d:	6a 00                	push   $0x0
54586f:	ff 37                	push   (%edi)
545871:	e8 4a 75 fd ff       	call   0x51cdc0
545876:	83 c4 18             	add    $0x18,%esp
545879:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54587f:	85 c0                	test   %eax,%eax
545881:	0f 85 99 00 00 00    	jne    0x545920
545887:	50                   	push   %eax
545888:	6a 01                	push   $0x1
54588a:	ff 33                	push   (%ebx)
54588c:	e8 bf 52 fd ff       	call   0x51ab50
545891:	83 c4 0c             	add    $0xc,%esp
545894:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54589a:	85 c0                	test   %eax,%eax
54589c:	0f 85 7e 00 00 00    	jne    0x545920
5458a2:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5458a8:	8b 42 10             	mov    0x10(%edx),%eax
5458ab:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
5458b1:	89 46 2c             	mov    %eax,0x2c(%esi)
5458b4:	85 c0                	test   %eax,%eax
5458b6:	74 44                	je     0x5458fc
5458b8:	0f b7 42 02          	movzwl 0x2(%edx),%eax
5458bc:	8d 4e 34             	lea    0x34(%esi),%ecx
5458bf:	83 c8 02             	or     $0x2,%eax
5458c2:	50                   	push   %eax
5458c3:	51                   	push   %ecx
5458c4:	ff 33                	push   (%ebx)
5458c6:	e8 75 5c fd ff       	call   0x51b540
5458cb:	83 c4 0c             	add    $0xc,%esp
5458ce:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5458d4:	85 c0                	test   %eax,%eax
5458d6:	75 1e                	jne    0x5458f6
5458d8:	ff 76 28             	push   0x28(%esi)
5458db:	ff b5 78 fe ff ff    	push   -0x188(%ebp)
5458e1:	6a 04                	push   $0x4
5458e3:	ff 76 34             	push   0x34(%esi)
5458e6:	ff 33                	push   (%ebx)
5458e8:	e8 a3 5c fd ff       	call   0x51b590
5458ed:	83 c4 14             	add    $0x14,%esp
5458f0:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5458f6:	c6 46 04 00          	movb   $0x0,0x4(%esi)
5458fa:	eb 24                	jmp    0x545920
5458fc:	ff 76 28             	push   0x28(%esi)
5458ff:	c7 46 34 01 00 00 00 	movl   $0x1,0x34(%esi)
545906:	6a 00                	push   $0x0
545908:	6a 04                	push   $0x4
54590a:	6a 01                	push   $0x1
54590c:	ff 33                	push   (%ebx)
54590e:	e8 7d 5c fd ff       	call   0x51b590
545913:	83 c4 14             	add    $0x14,%esp
545916:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54591c:	c6 46 04 01          	movb   $0x1,0x4(%esi)
545920:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
545926:	33 c9                	xor    %ecx,%ecx
545928:	66 83 78 02 08       	cmpw   $0x8,0x2(%eax)
54592d:	b8 04 00 00 00       	mov    $0x4,%eax
545932:	0f 45 c8             	cmovne %eax,%ecx
545935:	8b 46 08             	mov    0x8(%esi),%eax
545938:	83 e0 fb             	and    $0xfffffffb,%eax
54593b:	0b c8                	or     %eax,%ecx
54593d:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
545943:	89 4e 08             	mov    %ecx,0x8(%esi)
545946:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54594c:	85 c0                	test   %eax,%eax
54594e:	0f 85 b0 35 00 00    	jne    0x548f04
545954:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54595a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545960:	c6 46 02 01          	movb   $0x1,0x2(%esi)
545964:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54596a:	83 c6 14             	add    $0x14,%esi
54596d:	e9 42 cf ff ff       	jmp    0x5428b4
545972:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545978:	6a 01                	push   $0x1
54597a:	6a ff                	push   $0xffffffff
54597c:	ff 72 08             	push   0x8(%edx)
54597f:	ff 72 04             	push   0x4(%edx)
545982:	51                   	push   %ecx
545983:	e8 c8 cf fa ff       	call   0x4f2950
545988:	83 c4 14             	add    $0x14,%esp
54598b:	85 c0                	test   %eax,%eax
54598d:	0f 84 41 36 00 00    	je     0x548fd4
545993:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545999:	50                   	push   %eax
54599a:	8b 4a 10             	mov    0x10(%edx),%ecx
54599d:	89 48 2c             	mov    %ecx,0x2c(%eax)
5459a0:	ff 72 0c             	push   0xc(%edx)
5459a3:	57                   	push   %edi
5459a4:	e8 77 78 00 00       	call   0x54d220
5459a9:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5459af:	83 c4 0c             	add    $0xc,%esp
5459b2:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5459b8:	85 c0                	test   %eax,%eax
5459ba:	0f 85 44 35 00 00    	jne    0x548f04
5459c0:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5459c6:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5459cc:	83 c6 14             	add    $0x14,%esi
5459cf:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5459d5:	e9 da ce ff ff       	jmp    0x5428b4
5459da:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5459e0:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5459e6:	8b 4a 04             	mov    0x4(%edx),%ecx
5459e9:	8b 40 60             	mov    0x60(%eax),%eax
5459ec:	8b 14 88             	mov    (%eax,%ecx,4),%edx
5459ef:	8b 7a 10             	mov    0x10(%edx),%edi
5459f2:	8b cf                	mov    %edi,%ecx
5459f4:	8b 72 14             	mov    0x14(%edx),%esi
5459f7:	83 c1 01             	add    $0x1,%ecx
5459fa:	8b c6                	mov    %esi,%eax
5459fc:	89 4a 10             	mov    %ecx,0x10(%edx)
5459ff:	83 d0 00             	adc    $0x0,%eax
545a02:	0b fe                	or     %esi,%edi
545a04:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
545a0a:	89 42 14             	mov    %eax,0x14(%edx)
545a0d:	0f 84 94 2b 00 00    	je     0x5485a7
545a13:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545a19:	83 c6 14             	add    $0x14,%esi
545a1c:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545a22:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545a28:	e9 87 ce ff ff       	jmp    0x5428b4
545a2d:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545a33:	6a 03                	push   $0x3
545a35:	6a ff                	push   $0xffffffff
545a37:	ff 72 0c             	push   0xc(%edx)
545a3a:	ff 72 04             	push   0x4(%edx)
545a3d:	51                   	push   %ecx
545a3e:	e8 0d cf fa ff       	call   0x4f2950
545a43:	83 c4 14             	add    $0x14,%esp
545a46:	85 c0                	test   %eax,%eax
545a48:	0f 84 86 35 00 00    	je     0x548fd4
545a4e:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
545a54:	c6 40 02 01          	movb   $0x1,0x2(%eax)
545a58:	8b 49 08             	mov    0x8(%ecx),%ecx
545a5b:	89 48 20             	mov    %ecx,0x20(%eax)
545a5e:	c6 40 04 01          	movb   $0x1,0x4(%eax)
545a62:	c7 40 28 b4 ff 72 00 	movl   $0x72ffb4,0x28(%eax)
545a69:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
545a6f:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545a75:	83 c6 14             	add    $0x14,%esi
545a78:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545a7e:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545a84:	e9 2b ce ff ff       	jmp    0x5428b4
545a89:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545a8f:	8b 9d 9c fe ff ff    	mov    -0x164(%ebp),%ebx
545a95:	8b 4a 04             	mov    0x4(%edx),%ecx
545a98:	8b 43 60             	mov    0x60(%ebx),%eax
545a9b:	ff 34 88             	push   (%eax,%ecx,4)
545a9e:	53                   	push   %ebx
545a9f:	e8 dc 44 00 00       	call   0x549f80
545aa4:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
545aaa:	83 c4 08             	add    $0x8,%esp
545aad:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
545ab3:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545ab9:	83 c6 14             	add    $0x14,%esi
545abc:	8b 48 04             	mov    0x4(%eax),%ecx
545abf:	8b 43 60             	mov    0x60(%ebx),%eax
545ac2:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
545ac9:	8b cb                	mov    %ebx,%ecx
545acb:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545ad1:	e9 de cd ff ff       	jmp    0x5428b4
545ad6:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545adc:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
545ae2:	c7 85 88 fe ff ff 00 	movl   $0x0,-0x178(%ebp)
545ae9:	00 00 00
545aec:	8b 4a 04             	mov    0x4(%edx),%ecx
545aef:	8b 40 60             	mov    0x60(%eax),%eax
545af2:	8b 34 88             	mov    (%eax,%ecx,4),%esi
545af5:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
545afb:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
545aff:	66 c7 46 02 00 00    	movw   $0x0,0x2(%esi)
545b05:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
545b0c:	0f 84 21 01 00 00    	je     0x545c33
545b12:	8b 42 0c             	mov    0xc(%edx),%eax
545b15:	8d 04 80             	lea    (%eax,%eax,4),%eax
545b18:	8d 0c c1             	lea    (%ecx,%eax,8),%ecx
545b1b:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
545b1f:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
545b25:	24 2e                	and    $0x2e,%al
545b27:	89 8d 5c fe ff ff    	mov    %ecx,-0x1a4(%ebp)
545b2d:	3c 02                	cmp    $0x2,%al
545b2f:	75 11                	jne    0x545b42
545b31:	6a 00                	push   $0x0
545b33:	51                   	push   %ecx
545b34:	e8 17 e0 fa ff       	call   0x4f3b50
545b39:	8b 8d 5c fe ff ff    	mov    -0x1a4(%ebp),%ecx
545b3f:	83 c4 08             	add    $0x8,%esp
545b42:	51                   	push   %ecx
545b43:	e8 58 4b 00 00       	call   0x54a6a0
545b48:	89 85 48 fe ff ff    	mov    %eax,-0x1b8(%ebp)
545b4e:	83 c4 04             	add    $0x4,%esp
545b51:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
545b57:	89 95 40 fe ff ff    	mov    %edx,-0x1c0(%ebp)
545b5d:	8b 95 78 fe ff ff    	mov    -0x188(%ebp),%edx
545b63:	0f b7 48 08          	movzwl 0x8(%eax),%ecx
545b67:	66 89 50 08          	mov    %dx,0x8(%eax)
545b6b:	f6 c1 24             	test   $0x24,%cl
545b6e:	75 76                	jne    0x545be6
545b70:	f6 c1 08             	test   $0x8,%cl
545b73:	75 37                	jne    0x545bac
545b75:	f6 c1 01             	test   $0x1,%cl
545b78:	0f 85 23 2a 00 00    	jne    0x5485a1
545b7e:	83 fb 18             	cmp    $0x18,%ebx
545b81:	0f 83 1a 2a 00 00    	jae    0x5485a1
545b87:	8d 85 38 fe ff ff    	lea    -0x1c8(%ebp),%eax
545b8d:	50                   	push   %eax
545b8e:	ff 76 28             	push   0x28(%esi)
545b91:	e8 ca 6b fd ff       	call   0x51c760
545b96:	83 c4 08             	add    $0x8,%esp
545b99:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545b9f:	85 c0                	test   %eax,%eax
545ba1:	0f 85 57 33 00 00    	jne    0x548efe
545ba7:	e9 ce 01 00 00       	jmp    0x545d7a
545bac:	8b 95 40 fe ff ff    	mov    -0x1c0(%ebp),%edx
545bb2:	8b 8d 48 fe ff ff    	mov    -0x1b8(%ebp),%ecx
545bb8:	e8 e3 bc 09 00       	call   0x5e18a0
545bbd:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
545bc3:	f2 0f 10 08          	movsd  (%eax),%xmm1
545bc7:	66 0f 2f c1          	comisd %xmm1,%xmm0
545bcb:	76 0d                	jbe    0x545bda
545bcd:	f6 c3 01             	test   $0x1,%bl
545bd0:	8d 43 ff             	lea    -0x1(%ebx),%eax
545bd3:	0f 44 c3             	cmove  %ebx,%eax
545bd6:	8b d8                	mov    %eax,%ebx
545bd8:	eb 0c                	jmp    0x545be6
545bda:	66 0f 2f c8          	comisd %xmm0,%xmm1
545bde:	76 06                	jbe    0x545be6
545be0:	f6 c3 01             	test   $0x1,%bl
545be3:	75 01                	jne    0x545be6
545be5:	43                   	inc    %ebx
545be6:	8d 85 38 fe ff ff    	lea    -0x1c8(%ebp),%eax
545bec:	50                   	push   %eax
545bed:	6a 00                	push   $0x0
545bef:	ff b5 40 fe ff ff    	push   -0x1c0(%ebp)
545bf5:	ff b5 48 fe ff ff    	push   -0x1b8(%ebp)
545bfb:	6a 00                	push   $0x0
545bfd:	ff 76 28             	push   0x28(%esi)
545c00:	e8 bb 6c fd ff       	call   0x51c8c0
545c05:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545c0b:	83 c4 18             	add    $0x18,%esp
545c0e:	8b 85 48 fe ff ff    	mov    -0x1b8(%ebp),%eax
545c14:	89 46 40             	mov    %eax,0x40(%esi)
545c17:	8b 85 40 fe ff ff    	mov    -0x1c0(%ebp),%eax
545c1d:	89 46 44             	mov    %eax,0x44(%esi)
545c20:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
545c26:	85 c0                	test   %eax,%eax
545c28:	0f 85 d0 32 00 00    	jne    0x548efe
545c2e:	e9 92 00 00 00       	jmp    0x545cc5
545c33:	8b 46 28             	mov    0x28(%esi),%eax
545c36:	8a 40 03             	mov    0x3(%eax),%al
545c39:	24 02                	and    $0x2,%al
545c3b:	88 85 53 fe ff ff    	mov    %al,-0x1ad(%ebp)
545c41:	b8 00 00 00 00       	mov    $0x0,%eax
545c46:	0f 95 c0             	setne  %al
545c49:	f6 c3 01             	test   $0x1,%bl
545c4c:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
545c52:	8b 46 2c             	mov    0x2c(%esi),%eax
545c55:	89 45 98             	mov    %eax,-0x68(%ebp)
545c58:	66 8b 42 10          	mov    0x10(%edx),%ax
545c5c:	66 89 45 a0          	mov    %ax,-0x60(%ebp)
545c60:	0f 94 c0             	sete   %al
545c63:	c6 45 a6 00          	movb   $0x0,-0x5a(%ebp)
545c67:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
545c6e:	88 45 a2             	mov    %al,-0x5e(%ebp)
545c71:	8b 42 0c             	mov    0xc(%edx),%eax
545c74:	8d 04 80             	lea    (%eax,%eax,4),%eax
545c77:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
545c7a:	89 45 9c             	mov    %eax,-0x64(%ebp)
545c7d:	8d 85 38 fe ff ff    	lea    -0x1c8(%ebp),%eax
545c83:	50                   	push   %eax
545c84:	6a 00                	push   $0x0
545c86:	6a 00                	push   $0x0
545c88:	6a 00                	push   $0x0
545c8a:	8d 45 98             	lea    -0x68(%ebp),%eax
545c8d:	50                   	push   %eax
545c8e:	ff 76 28             	push   0x28(%esi)
545c91:	e8 2a 6c fd ff       	call   0x51c8c0
545c96:	83 c4 18             	add    $0x18,%esp
545c99:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545c9f:	85 c0                	test   %eax,%eax
545ca1:	0f 85 57 32 00 00    	jne    0x548efe
545ca7:	38 85 53 fe ff ff    	cmp    %al,-0x1ad(%ebp)
545cad:	74 16                	je     0x545cc5
545caf:	80 7d a6 00          	cmpb   $0x0,-0x5a(%ebp)
545cb3:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
545cb9:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
545cbf:	0f 84 b5 00 00 00    	je     0x545d7a
545cc5:	8b 85 38 fe ff ff    	mov    -0x1c8(%ebp),%eax
545ccb:	83 fb 18             	cmp    $0x18,%ebx
545cce:	0f 8c 8b 00 00 00    	jl     0x545d5f
545cd4:	85 c0                	test   %eax,%eax
545cd6:	78 3e                	js     0x545d16
545cd8:	75 05                	jne    0x545cdf
545cda:	83 fb 19             	cmp    $0x19,%ebx
545cdd:	74 37                	je     0x545d16
545cdf:	c7 85 38 fe ff ff 00 	movl   $0x0,-0x1c8(%ebp)
545ce6:	00 00 00
545ce9:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
545cef:	83 bd 88 fe ff ff 00 	cmpl   $0x0,-0x178(%ebp)
545cf6:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545cfc:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545d02:	8d 71 14             	lea    0x14(%ecx),%esi
545d05:	0f 44 f1             	cmove  %ecx,%esi
545d08:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545d0e:	83 c6 14             	add    $0x14,%esi
545d11:	e9 9e cb ff ff       	jmp    0x5428b4
545d16:	6a 00                	push   $0x0
545d18:	ff 76 28             	push   0x28(%esi)
545d1b:	c7 85 38 fe ff ff 00 	movl   $0x0,-0x1c8(%ebp)
545d22:	00 00 00
545d25:	e8 46 70 fd ff       	call   0x51cd70