550815:	56                   	push   %esi
550816:	ff 75 d8             	push   -0x28(%ebp)
550819:	ff 75 dc             	push   -0x24(%ebp)
55081c:	e8 ff 2f 00 00       	call   0x553820
550821:	ff 75 b8             	push   -0x48(%ebp)
550824:	8b 4d b0             	mov    -0x50(%ebp),%ecx
550827:	ff 75 bc             	push   -0x44(%ebp)
55082a:	56                   	push   %esi
55082b:	8b 75 cc             	mov    -0x34(%ebp),%esi
55082e:	8b 41 6c             	mov    0x6c(%ecx),%eax
550831:	56                   	push   %esi
550832:	53                   	push   %ebx
550833:	51                   	push   %ecx
550834:	ff 75 dc             	push   -0x24(%ebp)
550837:	89 47 ec             	mov    %eax,-0x14(%edi)
55083a:	e8 81 01 00 00       	call   0x5509c0
55083f:	8b 4f e4             	mov    -0x1c(%edi),%ecx
550842:	46                   	inc    %esi
550843:	83 c4 2c             	add    $0x2c,%esp
550846:	89 75 cc             	mov    %esi,-0x34(%ebp)
550849:	83 c7 58             	add    $0x58,%edi
55084c:	89 45 bc             	mov    %eax,-0x44(%ebp)
55084f:	3b 75 c0             	cmp    -0x40(%ebp),%esi
550852:	8b 75 c4             	mov    -0x3c(%ebp),%esi
550855:	89 55 b8             	mov    %edx,-0x48(%ebp)
550858:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
55085b:	0f 8c 6f ff ff ff    	jl     0x5507d0
550861:	8b 4d fc             	mov    -0x4(%ebp),%ecx
550864:	8b c3                	mov    %ebx,%eax
550866:	5f                   	pop    %edi
550867:	5e                   	pop    %esi
550868:	33 cd                	xor    %ebp,%ecx
55086a:	5b                   	pop    %ebx
55086b:	e8 6a 0c 09 00       	call   0x5e14da
550870:	8b e5                	mov    %ebp,%esp
550872:	5d                   	pop    %ebp
550873:	c3                   	ret
550874:	8b 45 d0             	mov    -0x30(%ebp),%eax
550877:	8b 5d ac             	mov    -0x54(%ebp),%ebx
55087a:	8b 4d 20             	mov    0x20(%ebp),%ecx
55087d:	80 7b 2e 00          	cmpb   $0x0,0x2e(%ebx)
550881:	74 23                	je     0x5508a6
550883:	8b 45 cc             	mov    -0x34(%ebp),%eax
550886:	8b 40 10             	mov    0x10(%eax),%eax
550889:	8b 40 08             	mov    0x8(%eax),%eax
55088c:	85 c0                	test   %eax,%eax
55088e:	74 0c                	je     0x55089c
550890:	3b c7                	cmp    %edi,%eax
550892:	74 08                	je     0x55089c
550894:	8b 40 14             	mov    0x14(%eax),%eax
550897:	41                   	inc    %ecx
550898:	85 c0                	test   %eax,%eax
55089a:	75 f4                	jne    0x550890
55089c:	ba 61 00 00 00       	mov    $0x61,%edx
5508a1:	89 4b 18             	mov    %ecx,0x18(%ebx)
5508a4:	eb 21                	jmp    0x5508c7
5508a6:	85 c9                	test   %ecx,%ecx
5508a8:	74 0b                	je     0x5508b5
5508aa:	a8 20                	test   $0x20,%al
5508ac:	74 07                	je     0x5508b5
5508ae:	ba 5f 00 00 00       	mov    $0x5f,%edx
5508b3:	eb 12                	jmp    0x5508c7
5508b5:	8b 45 dc             	mov    -0x24(%ebp),%eax
5508b8:	8b 5d dc             	mov    -0x24(%ebp),%ebx
5508bb:	8b 48 28             	mov    0x28(%eax),%ecx
5508be:	8d 41 01             	lea    0x1(%ecx),%eax
5508c1:	89 43 28             	mov    %eax,0x28(%ebx)
5508c4:	8b 5d ac             	mov    -0x54(%ebp),%ebx
5508c7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5508ca:	56                   	push   %esi
5508cb:	89 48 c0             	mov    %ecx,-0x40(%eax)
5508ce:	ff 77 2c             	push   0x2c(%edi)
5508d1:	51                   	push   %ecx
5508d2:	52                   	push   %edx
5508d3:	ff 75 b0             	push   -0x50(%ebp)
5508d6:	e8 65 12 ff ff       	call   0x541b40
5508db:	57                   	push   %edi
5508dc:	8b 7d dc             	mov    -0x24(%ebp),%edi
5508df:	57                   	push   %edi
5508e0:	e8 6b c7 ff ff       	call   0x54d050
5508e5:	8b 45 a4             	mov    -0x5c(%ebp),%eax
5508e8:	83 c4 1c             	add    $0x1c,%esp
5508eb:	8b 40 24             	mov    0x24(%eax),%eax
5508ee:	a8 0f                	test   $0xf,%al
5508f0:	0f 84 59 fe ff ff    	je     0x55074f
5508f6:	a9 02 80 08 00       	test   $0x88002,%eax
5508fb:	0f 85 4e fe ff ff    	jne    0x55074f
550901:	f6 43 28 01          	testb  $0x1,0x28(%ebx)
550905:	0f 85 44 fe ff ff    	jne    0x55074f
55090b:	80 7b 2f 02          	cmpb   $0x2,0x2f(%ebx)
55090f:	0f 84 3a fe ff ff    	je     0x55074f
550915:	6a 02                	push   $0x2
550917:	ff 75 b0             	push   -0x50(%ebp)
55091a:	e8 11 17 ff ff       	call   0x542030
55091f:	83 c4 08             	add    $0x8,%esp
550922:	e9 28 fe ff ff       	jmp    0x55074f
550927:	cc                   	int3
550928:	cc                   	int3
550929:	cc                   	int3
55092a:	cc                   	int3
55092b:	cc                   	int3
55092c:	cc                   	int3
55092d:	cc                   	int3
55092e:	cc                   	int3
55092f:	cc                   	int3
550930:	55                   	push   %ebp
550931:	8b ec                	mov    %esp,%ebp
550933:	51                   	push   %ecx
550934:	53                   	push   %ebx
550935:	56                   	push   %esi
550936:	57                   	push   %edi
550937:	8b 7d 08             	mov    0x8(%ebp),%edi
55093a:	8b 07                	mov    (%edi),%eax
55093c:	8b 5f 0c             	mov    0xc(%edi),%ebx
55093f:	83 eb 01             	sub    $0x1,%ebx
550942:	8b 77 14             	mov    0x14(%edi),%esi
550945:	8b 00                	mov    (%eax),%eax
550947:	8b 08                	mov    (%eax),%ecx
550949:	89 4d fc             	mov    %ecx,-0x4(%ebp)
55094c:	78 4e                	js     0x55099c
55094e:	66 90                	xchg   %ax,%ax
550950:	f6 46 0a 01          	testb  $0x1,0xa(%esi)
550954:	74 10                	je     0x550966
550956:	8b 06                	mov    (%esi),%eax
550958:	85 c0                	test   %eax,%eax
55095a:	74 0a                	je     0x550966
55095c:	50                   	push   %eax
55095d:	51                   	push   %ecx
55095e:	e8 4d 5e fd ff       	call   0x5267b0
550963:	83 c4 08             	add    $0x8,%esp
550966:	0f b7 46 0a          	movzwl 0xa(%esi),%eax
55096a:	a8 10                	test   $0x10,%al
55096c:	75 04                	jne    0x550972
55096e:	a8 20                	test   $0x20,%al
550970:	74 1c                	je     0x55098e
550972:	8b 7e 1c             	mov    0x1c(%esi),%edi
550975:	57                   	push   %edi
550976:	e8 b5 ff ff ff       	call   0x550930
55097b:	83 c4 04             	add    $0x4,%esp
55097e:	85 ff                	test   %edi,%edi
550980:	74 0c                	je     0x55098e
550982:	57                   	push   %edi
550983:	ff 75 fc             	push   -0x4(%ebp)
550986:	e8 e5 09 fd ff       	call   0x521370
55098b:	83 c4 08             	add    $0x8,%esp
55098e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
550991:	83 c6 30             	add    $0x30,%esi
550994:	83 eb 01             	sub    $0x1,%ebx
550997:	79 b7                	jns    0x550950
550999:	8b 7d 08             	mov    0x8(%ebp),%edi
55099c:	8b 57 14             	mov    0x14(%edi),%edx
55099f:	8d 47 18             	lea    0x18(%edi),%eax
5509a2:	5f                   	pop    %edi
5509a3:	5e                   	pop    %esi
5509a4:	5b                   	pop    %ebx
5509a5:	3b d0                	cmp    %eax,%edx
5509a7:	74 0e                	je     0x5509b7
5509a9:	85 d2                	test   %edx,%edx
5509ab:	74 0a                	je     0x5509b7
5509ad:	52                   	push   %edx
5509ae:	51                   	push   %ecx
5509af:	e8 bc 09 fd ff       	call   0x521370
5509b4:	83 c4 08             	add    $0x8,%esp
5509b7:	8b e5                	mov    %ebp,%esp
5509b9:	5d                   	pop    %ebp
5509ba:	c3                   	ret
5509bb:	cc                   	int3
5509bc:	cc                   	int3
5509bd:	cc                   	int3
5509be:	cc                   	int3
5509bf:	cc                   	int3
5509c0:	55                   	push   %ebp
5509c1:	8b ec                	mov    %esp,%ebp
5509c3:	81 ec 24 01 00 00    	sub    $0x124,%esp
5509c9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5509ce:	33 c5                	xor    %ebp,%eax
5509d0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5509d3:	8b 55 10             	mov    0x10(%ebp),%edx
5509d6:	53                   	push   %ebx
5509d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
5509da:	56                   	push   %esi
5509db:	8b 75 18             	mov    0x18(%ebp),%esi
5509de:	8d 42 50             	lea    0x50(%edx),%eax
5509e1:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
5509e7:	8b 03                	mov    (%ebx),%eax
5509e9:	89 85 f4 fe ff ff    	mov    %eax,-0x10c(%ebp)
5509ef:	8b 46 48             	mov    0x48(%esi),%eax
5509f2:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
5509f8:	0f b6 46 34          	movzbl 0x34(%esi),%eax
5509fc:	89 95 1c ff ff ff    	mov    %edx,-0xe4(%ebp)
550a02:	57                   	push   %edi
550a03:	8b 7d 0c             	mov    0xc(%ebp),%edi
550a06:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
550a09:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
550a0f:	8b 42 04             	mov    0x4(%edx),%eax
550a12:	8b 92 ec 01 00 00    	mov    0x1ec(%edx),%edx
550a18:	89 bd fc fe ff ff    	mov    %edi,-0x104(%ebp)
550a1e:	89 b5 2c ff ff ff    	mov    %esi,-0xd4(%ebp)
550a24:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
550a27:	c7 85 18 ff ff ff 00 	movl   $0x0,-0xe8(%ebp)
550a2e:	00 00 00
550a31:	83 c0 08             	add    $0x8,%eax
550a34:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
550a3a:	8b 40 2c             	mov    0x2c(%eax),%eax
550a3d:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
550a43:	33 c0                	xor    %eax,%eax
550a45:	85 d2                	test   %edx,%edx
550a47:	7e 33                	jle    0x550a7c
550a49:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550a4f:	81 c1 f0 01 00 00    	add    $0x1f0,%ecx
550a55:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
550a5c:	00 00 00 00
550a60:	8b bd 40 ff ff ff    	mov    -0xc0(%ebp),%edi
550a66:	39 39                	cmp    %edi,(%ecx)
550a68:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
550a6e:	0f 84 01 01 00 00    	je     0x550b75
550a74:	40                   	inc    %eax
550a75:	83 c1 04             	add    $0x4,%ecx
550a78:	3b c2                	cmp    %edx,%eax
550a7a:	7c e4                	jl     0x550a60
550a7c:	0f 57 c0             	xorps  %xmm0,%xmm0
550a7f:	66 0f 13 85 e0 fe ff 	movlpd %xmm0,-0x120(%ebp)
550a86:	ff
550a87:	8b 95 e4 fe ff ff    	mov    -0x11c(%ebp),%edx
550a8d:	8b 8d e0 fe ff ff    	mov    -0x120(%ebp),%ecx
550a93:	f7 d1                	not    %ecx
550a95:	f7 d2                	not    %edx
550a97:	23 4d 1c             	and    0x1c(%ebp),%ecx
550a9a:	23 55 20             	and    0x20(%ebp),%edx
550a9d:	89 4e 50             	mov    %ecx,0x50(%esi)
550aa0:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550aa6:	89 56 54             	mov    %edx,0x54(%esi)
550aa9:	8b 41 48             	mov    0x48(%ecx),%eax
550aac:	8b 51 4c             	mov    0x4c(%ecx),%edx
550aaf:	8b 4d 14             	mov    0x14(%ebp),%ecx
550ab2:	e8 a9 15 09 00       	call   0x5e2060
550ab7:	83 e0 01             	and    $0x1,%eax
550aba:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
550ac0:	8b 43 38             	mov    0x38(%ebx),%eax
550ac3:	48                   	dec    %eax
550ac4:	89 43 38             	mov    %eax,0x38(%ebx)
550ac7:	89 46 10             	mov    %eax,0x10(%esi)
550aca:	89 46 0c             	mov    %eax,0xc(%esi)
550acd:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
550ad3:	8b 43 38             	mov    0x38(%ebx),%eax
550ad6:	48                   	dec    %eax
550ad7:	89 43 38             	mov    %eax,0x38(%ebx)
550ada:	80 7e 34 00          	cmpb   $0x0,0x34(%esi)
550ade:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
550ae4:	89 46 18             	mov    %eax,0x18(%esi)
550ae7:	76 23                	jbe    0x550b0c
550ae9:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
550aef:	f6 40 24 08          	testb  $0x8,0x24(%eax)
550af3:	74 17                	je     0x550b0c
550af5:	8b 43 2c             	mov    0x2c(%ebx),%eax
550af8:	40                   	inc    %eax
550af9:	50                   	push   %eax
550afa:	6a 00                	push   $0x0
550afc:	6a 45                	push   $0x45
550afe:	89 43 2c             	mov    %eax,0x2c(%ebx)
550b01:	57                   	push   %edi
550b02:	89 06                	mov    %eax,(%esi)
550b04:	e8 d7 0f ff ff       	call   0x541ae0
550b09:	83 c4 10             	add    $0x10,%esp
550b0c:	8b 45 14             	mov    0x14(%ebp),%eax
550b0f:	8b c8                	mov    %eax,%ecx
550b11:	85 c0                	test   %eax,%eax
550b13:	7e 1e                	jle    0x550b33
550b15:	8b 95 1c ff ff ff    	mov    -0xe4(%ebp),%edx
550b1b:	6b c0 58             	imul   $0x58,%eax,%eax
550b1e:	81 c2 f0 02 00 00    	add    $0x2f0,%edx
550b24:	03 c2                	add    %edx,%eax
550b26:	83 38 00             	cmpl   $0x0,(%eax)
550b29:	75 08                	jne    0x550b33
550b2b:	49                   	dec    %ecx
550b2c:	83 e8 58             	sub    $0x58,%eax
550b2f:	85 c9                	test   %ecx,%ecx
550b31:	7f f3                	jg     0x550b26
550b33:	6b c1 58             	imul   $0x58,%ecx,%eax
550b36:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550b3c:	8b 84 08 fc 02 00 00 	mov    0x2fc(%eax,%ecx,1),%eax
550b43:	89 45 98             	mov    %eax,-0x68(%ebp)
550b46:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
550b4c:	f6 40 28 10          	testb  $0x10,0x28(%eax)
550b50:	0f 84 3e 01 00 00    	je     0x550c94
550b56:	8b 4f 6c             	mov    0x6c(%edi),%ecx
550b59:	8b 58 1c             	mov    0x1c(%eax),%ebx
550b5c:	8b 50 18             	mov    0x18(%eax),%edx
550b5f:	39 4f 70             	cmp    %ecx,0x70(%edi)
550b62:	7f 2b                	jg     0x550b8f
550b64:	52                   	push   %edx
550b65:	6a 00                	push   $0x0
550b67:	53                   	push   %ebx
550b68:	6a 0d                	push   $0xd
550b6a:	57                   	push   %edi
550b6b:	e8 90 59 fb ff       	call   0x506500
550b70:	83 c4 14             	add    $0x14,%esp
550b73:	eb 45                	jmp    0x550bba
550b75:	33 c9                	xor    %ecx,%ecx
550b77:	33 d2                	xor    %edx,%edx
550b79:	0f ab c1             	bts    %eax,%ecx
550b7c:	83 f8 20             	cmp    $0x20,%eax
550b7f:	0f 43 d1             	cmovae %ecx,%edx
550b82:	33 ca                	xor    %edx,%ecx
550b84:	83 f8 40             	cmp    $0x40,%eax
550b87:	0f 43 d1             	cmovae %ecx,%edx
550b8a:	e9 04 ff ff ff       	jmp    0x550a93
550b8f:	8d 41 01             	lea    0x1(%ecx),%eax
550b92:	89 47 6c             	mov    %eax,0x6c(%edi)
550b95:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
550b98:	8b 47 68             	mov    0x68(%edi),%eax
550b9b:	c7 04 88 0d 00 00 00 	movl   $0xd,(%eax,%ecx,4)
550ba2:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
550ba6:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
550bad:	00
550bae:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
550bb2:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550bb9:	00
550bba:	8b 57 6c             	mov    0x6c(%edi),%edx
550bbd:	39 57 70             	cmp    %edx,0x70(%edi)
550bc0:	7f 18                	jg     0x550bda
550bc2:	6a 00                	push   $0x0
550bc4:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
550bca:	53                   	push   %ebx
550bcb:	6a 0e                	push   $0xe
550bcd:	57                   	push   %edi
550bce:	e8 2d 59 fb ff       	call   0x506500
550bd3:	83 c4 14             	add    $0x14,%esp
550bd6:	8b d0                	mov    %eax,%edx
550bd8:	eb 37                	jmp    0x550c11
550bda:	8d 42 01             	lea    0x1(%edx),%eax
550bdd:	89 47 6c             	mov    %eax,0x6c(%edi)
550be0:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
550be3:	8b 47 68             	mov    0x68(%edi),%eax
550be6:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
550bec:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
550bf0:	8b 9d 38 ff ff ff    	mov    -0xc8(%ebp),%ebx
550bf6:	c7 04 88 0e 00 00 00 	movl   $0xe,(%eax,%ecx,4)
550bfd:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
550c01:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
550c08:	00
550c09:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550c10:	00
550c11:	89 56 3c             	mov    %edx,0x3c(%esi)
550c14:	c6 46 35 0b          	movb   $0xb,0x35(%esi)
550c18:	33 c9                	xor    %ecx,%ecx
550c1a:	8b b5 f0 fe ff ff    	mov    -0x110(%ebp),%esi
550c20:	f7 d9                	neg    %ecx
550c22:	1b c9                	sbb    %ecx,%ecx
550c24:	83 c1 02             	add    $0x2,%ecx