5487aa:	6a 01                	push   $0x1
5487ac:	8b 70 08             	mov    0x8(%eax),%esi
5487af:	8b 42 04             	mov    0x4(%edx),%eax
5487b2:	8d 04 80             	lea    (%eax,%eax,4),%eax
5487b5:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
5487b8:	50                   	push   %eax
5487b9:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
5487bf:	e8 fc 96 ff ff       	call   0x541ec0
5487c4:	83 c4 08             	add    $0x8,%esp
5487c7:	85 c0                	test   %eax,%eax
5487c9:	0f 85 2f 07 00 00    	jne    0x548efe
5487cf:	8b 8d 78 fe ff ff    	mov    -0x188(%ebp),%ecx
5487d5:	8b 06                	mov    (%esi),%eax
5487d7:	ff 71 10             	push   0x10(%ecx)
5487da:	8b 40 4c             	mov    0x4c(%eax),%eax
5487dd:	56                   	push   %esi
5487de:	ff d0                	call   *%eax
5487e0:	83 c4 08             	add    $0x8,%esp
5487e3:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5487e9:	85 db                	test   %ebx,%ebx
5487eb:	75 0d                	jne    0x5487fa
5487ed:	8b 47 24             	mov    0x24(%edi),%eax
5487f0:	81 67 20 ff ff ff fb 	andl   $0xfbffffff,0x20(%edi)
5487f7:	89 47 24             	mov    %eax,0x24(%edi)
5487fa:	56                   	push   %esi
5487fb:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
548801:	e8 1a 60 00 00       	call   0x54e820
548806:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54880c:	83 c4 08             	add    $0x8,%esp
54880f:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
548815:	83 a1 98 00 00 00 fc 	andl   $0xfffffffc,0x98(%ecx)
54881c:	e9 ee b0 ff ff       	jmp    0x54390f
548821:	80 7f 51 00          	cmpb   $0x0,0x51(%edi)
548825:	0f 85 af 07 00 00    	jne    0x548fda
54882b:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548831:	8b 42 10             	mov    0x10(%edx),%eax
548834:	8b 58 08             	mov    0x8(%eax),%ebx
548837:	85 db                	test   %ebx,%ebx
548839:	0f 84 02 08 00 00    	je     0x549041
54883f:	8b 03                	mov    (%ebx),%eax
548841:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
548847:	85 c0                	test   %eax,%eax
548849:	0f 84 f2 07 00 00    	je     0x549041
54884f:	83 78 34 00          	cmpl   $0x0,0x34(%eax)
548853:	8b 52 08             	mov    0x8(%edx),%edx
548856:	0f 84 05 b0 ff ff    	je     0x543861
54885c:	8a 47 56             	mov    0x56(%edi),%al
54885f:	8b 71 5c             	mov    0x5c(%ecx),%esi
548862:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
548868:	88 85 53 fe ff ff    	mov    %al,-0x1ad(%ebp)
54886e:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548874:	8b 40 0c             	mov    0xc(%eax),%eax
548877:	8d 04 80             	lea    (%eax,%eax,4),%eax
54887a:	8d 0c c1             	lea    (%ecx,%eax,8),%ecx
54887d:	33 c0                	xor    %eax,%eax
54887f:	85 d2                	test   %edx,%edx
548881:	7e 0b                	jle    0x54888e
548883:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
548886:	40                   	inc    %eax
548887:	83 c1 28             	add    $0x28,%ecx
54888a:	3b c2                	cmp    %edx,%eax
54888c:	7c f5                	jl     0x548883
54888e:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548894:	8a 40 02             	mov    0x2(%eax),%al
548897:	88 47 56             	mov    %al,0x56(%edi)
54889a:	8d 45 d4             	lea    -0x2c(%ebp),%eax
54889d:	50                   	push   %eax
54889e:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
5488a4:	56                   	push   %esi
5488a5:	52                   	push   %edx
5488a6:	53                   	push   %ebx
5488a7:	8b 40 34             	mov    0x34(%eax),%eax
5488aa:	ff d0                	call   *%eax
5488ac:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5488b2:	8a 85 53 fe ff ff    	mov    -0x1ad(%ebp),%al
5488b8:	53                   	push   %ebx
5488b9:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5488bf:	88 47 56             	mov    %al,0x56(%edi)
5488c2:	e8 59 5f 00 00       	call   0x54e820
5488c7:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5488cd:	83 c4 18             	add    $0x18,%esp
5488d0:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
5488d6:	85 c0                	test   %eax,%eax
5488d8:	75 17                	jne    0x5488f1
5488da:	39 41 04             	cmp    %eax,0x4(%ecx)
5488dd:	74 12                	je     0x5488f1
5488df:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5488e2:	89 47 28             	mov    %eax,0x28(%edi)
5488e5:	8b 45 d8             	mov    -0x28(%ebp),%eax
5488e8:	89 47 2c             	mov    %eax,0x2c(%edi)
5488eb:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5488f1:	3c 13                	cmp    $0x13,%al
5488f3:	75 58                	jne    0x54894d
5488f5:	8b 41 10             	mov    0x10(%ecx),%eax
5488f8:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
5488fc:	74 4f                	je     0x54894d
5488fe:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548904:	0f b7 40 02          	movzwl 0x2(%eax),%eax
548908:	83 f8 04             	cmp    $0x4,%eax
54890b:	75 28                	jne    0x548935
54890d:	33 c9                	xor    %ecx,%ecx
54890f:	89 8d 94 fe ff ff    	mov    %ecx,-0x16c(%ebp)
548915:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54891b:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548921:	83 c6 14             	add    $0x14,%esi
548924:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54892a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548930:	e9 7f 9f ff ff       	jmp    0x5428b4
548935:	83 f8 05             	cmp    $0x5,%eax
548938:	75 05                	jne    0x54893f
54893a:	b8 02 00 00 00       	mov    $0x2,%eax
54893f:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548945:	88 81 92 00 00 00    	mov    %al,0x92(%ecx)
54894b:	eb 09                	jmp    0x548956
54894d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548953:	ff 41 2c             	incl   0x2c(%ecx)
548956:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
54895c:	85 c0                	test   %eax,%eax
54895e:	0f 85 9a 05 00 00    	jne    0x548efe
548964:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54896a:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548970:	83 c6 14             	add    $0x14,%esi
548973:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548979:	e9 36 9f ff ff       	jmp    0x5428b4
54897e:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
548984:	51                   	push   %ecx
548985:	e8 06 37 fc ff       	call   0x50c090
54898a:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
548990:	83 c4 08             	add    $0x8,%esp
548993:	8b 51 04             	mov    0x4(%ecx),%edx
548996:	8b 4f 10             	mov    0x10(%edi),%ecx
548999:	c1 e2 04             	shl    $0x4,%edx
54899c:	8b 4c 0a 04          	mov    0x4(%edx,%ecx,1),%ecx
5489a0:	8b 49 04             	mov    0x4(%ecx),%ecx
5489a3:	8b 49 2c             	mov    0x2c(%ecx),%ecx
5489a6:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
5489ac:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
5489b3:	89 08                	mov    %ecx,(%eax)
5489b5:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5489bb:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5489c1:	83 c6 14             	add    $0x14,%esi
5489c4:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5489ca:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5489d0:	e9 df 9e ff ff       	jmp    0x5428b4
5489d5:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
5489db:	51                   	push   %ecx
5489dc:	e8 af 36 fc ff       	call   0x50c090
5489e1:	8b 4f 10             	mov    0x10(%edi),%ecx
5489e4:	8b d8                	mov    %eax,%ebx
5489e6:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5489ec:	83 c4 08             	add    $0x8,%esp
5489ef:	8b 50 04             	mov    0x4(%eax),%edx
5489f2:	03 d2                	add    %edx,%edx
5489f4:	8b 74 d1 04          	mov    0x4(%ecx,%edx,8),%esi
5489f8:	33 c9                	xor    %ecx,%ecx
5489fa:	8b 50 0c             	mov    0xc(%eax),%edx
5489fd:	85 d2                	test   %edx,%edx
5489ff:	74 11                	je     0x548a12
548a01:	8b 46 04             	mov    0x4(%esi),%eax
548a04:	8b 48 2c             	mov    0x2c(%eax),%ecx
548a07:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
548a0d:	3b ca                	cmp    %edx,%ecx
548a0f:	0f 42 ca             	cmovb  %edx,%ecx
548a12:	51                   	push   %ecx
548a13:	56                   	push   %esi
548a14:	e8 47 3e fd ff       	call   0x51c860
548a19:	99                   	cltd
548a1a:	83 c4 08             	add    $0x8,%esp
548a1d:	89 03                	mov    %eax,(%ebx)
548a1f:	89 53 04             	mov    %edx,0x4(%ebx)
548a22:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
548a28:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548a2e:	83 c6 14             	add    $0x14,%esi
548a31:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548a37:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548a3d:	e9 72 9e ff ff       	jmp    0x5428b4
548a42:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548a48:	8b 42 0c             	mov    0xc(%edx),%eax
548a4b:	8b 72 10             	mov    0x10(%edx),%esi
548a4e:	8b 95 8c fe ff ff    	mov    -0x174(%ebp),%edx
548a54:	8d 04 80             	lea    (%eax,%eax,4),%eax
548a57:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
548a5a:	89 9d 78 fe ff ff    	mov    %ebx,-0x188(%ebp)
548a60:	39 1e                	cmp    %ebx,(%esi)
548a62:	74 41                	je     0x548aa5
548a64:	89 4e 0c             	mov    %ecx,0xc(%esi)
548a67:	0f b6 4e 19          	movzbl 0x19(%esi),%ecx
548a6b:	83 e9 01             	sub    $0x1,%ecx
548a6e:	89 1e                	mov    %ebx,(%esi)
548a70:	78 33                	js     0x548aa5
548a72:	8b bd 98 fe ff ff    	mov    -0x168(%ebp),%edi
548a78:	8d 56 1c             	lea    0x1c(%esi),%edx
548a7b:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
548a81:	8d 14 8a             	lea    (%edx,%ecx,4),%edx
548a84:	8b 47 08             	mov    0x8(%edi),%eax
548a87:	03 c1                	add    %ecx,%eax
548a89:	8d 04 80             	lea    (%eax,%eax,4),%eax
548a8c:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
548a8f:	89 02                	mov    %eax,(%edx)
548a91:	83 ea 04             	sub    $0x4,%edx
548a94:	83 e9 01             	sub    $0x1,%ecx
548a97:	79 eb                	jns    0x548a84
548a99:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548a9f:	8b 9d 78 fe ff ff    	mov    -0x188(%ebp),%ebx
548aa5:	66 8b 43 08          	mov    0x8(%ebx),%ax
548aa9:	b9 40 3e 00 00       	mov    $0x3e40,%ecx
548aae:	66 23 c1             	and    %cx,%ax
548ab1:	66 83 c8 01          	or     $0x1,%ax
548ab5:	66 89 43 08          	mov    %ax,0x8(%ebx)
548ab9:	8d 46 1c             	lea    0x1c(%esi),%eax
548abc:	8b 4e 04             	mov    0x4(%esi),%ecx
548abf:	50                   	push   %eax
548ac0:	0f b6 46 19          	movzbl 0x19(%esi),%eax
548ac4:	50                   	push   %eax
548ac5:	8b 41 10             	mov    0x10(%ecx),%eax
548ac8:	56                   	push   %esi
548ac9:	ff d0                	call   *%eax
548acb:	8b 46 14             	mov    0x14(%esi),%eax
548ace:	83 c4 0c             	add    $0xc,%esp
548ad1:	85 c0                	test   %eax,%eax
548ad3:	74 5b                	je     0x548b30
548ad5:	7e 23                	jle    0x548afa
548ad7:	53                   	push   %ebx
548ad8:	e8 63 9b f9 ff       	call   0x4e2640
548add:	50                   	push   %eax
548ade:	68 04 d0 6a 00       	push   $0x6ad004
548ae3:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
548ae9:	e8 c2 9c ff ff       	call   0x5427b0
548aee:	8b 46 14             	mov    0x14(%esi),%eax
548af1:	83 c4 10             	add    $0x10,%esp
548af4:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548afa:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548b00:	ff 70 04             	push   0x4(%eax)
548b03:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
548b09:	ff 76 10             	push   0x10(%esi)
548b0c:	05 dc 00 00 00       	add    $0xdc,%eax
548b11:	50                   	push   %eax
548b12:	57                   	push   %edi
548b13:	e8 88 9a ff ff       	call   0x5425a0
548b18:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
548b1e:	83 c4 10             	add    $0x10,%esp
548b21:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
548b28:	85 c0                	test   %eax,%eax
548b2a:	0f 85 ce 03 00 00    	jne    0x548efe
548b30:	f6 43 08 12          	testb  $0x12,0x8(%ebx)
548b34:	0f 84 2c a0 ff ff    	je     0x542b66
548b3a:	0f b6 85 60 fe ff ff 	movzbl -0x1a0(%ebp),%eax
548b41:	50                   	push   %eax
548b42:	53                   	push   %ebx
548b43:	e8 78 93 ff ff       	call   0x541ec0
548b48:	53                   	push   %ebx
548b49:	e9 f2 f2 ff ff       	jmp    0x547e40
548b4e:	8a 4f 58             	mov    0x58(%edi),%cl
548b51:	8b 9d 9c fe ff ff    	mov    -0x164(%ebp),%ebx
548b57:	f6 c1 41             	test   $0x41,%cl
548b5a:	0f 84 ab 00 00 00    	je     0x548c0b
548b60:	f6 83 98 00 00 00 10 	testb  $0x10,0x98(%ebx)
548b67:	0f 85 9e 00 00 00    	jne    0x548c0b
548b6d:	8b 46 10             	mov    0x10(%esi),%eax
548b70:	85 c0                	test   %eax,%eax
548b72:	75 0e                	jne    0x548b82
548b74:	8b 83 c0 00 00 00    	mov    0xc0(%ebx),%eax
548b7a:	85 c0                	test   %eax,%eax
548b7c:	0f 84 89 00 00 00    	je     0x548c0b
548b82:	50                   	push   %eax
548b83:	f6 c1 40             	test   $0x40,%cl
548b86:	74 2e                	je     0x548bb6
548b88:	8b bf cc 00 00 00    	mov    0xcc(%edi),%edi
548b8e:	53                   	push   %ebx
548b8f:	e8 8c 0b 00 00       	call   0x549720
548b94:	8b f0                	mov    %eax,%esi
548b96:	8b 85 4c fe ff ff    	mov    -0x1b4(%ebp),%eax
548b9c:	56                   	push   %esi
548b9d:	ff b0 d0 00 00 00    	push   0xd0(%eax)
548ba3:	ff d7                	call   *%edi
548ba5:	56                   	push   %esi
548ba6:	e8 e5 21 fa ff       	call   0x4ead90
548bab:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
548bb1:	83 c4 14             	add    $0x14,%esp
548bb4:	eb 55                	jmp    0x548c0b
548bb6:	83 bf bc 00 00 00 01 	cmpl   $0x1,0xbc(%edi)
548bbd:	7e 38                	jle    0x548bf7
548bbf:	68 ec 8a 6b 00       	push   $0x6b8aec
548bc4:	57                   	push   %edi
548bc5:	e8 76 83 fe ff       	call   0x530f40
548bca:	8b 8f cc 00 00 00    	mov    0xcc(%edi),%ecx
548bd0:	8b f0                	mov    %eax,%esi
548bd2:	56                   	push   %esi
548bd3:	53                   	push   %ebx
548bd4:	ff b7 d0 00 00 00    	push   0xd0(%edi)
548bda:	6a 01                	push   $0x1
548bdc:	ff d1                	call   *%ecx
548bde:	83 c4 1c             	add    $0x1c,%esp
548be1:	85 f6                	test   %esi,%esi
548be3:	74 0a                	je     0x548bef
548be5:	56                   	push   %esi
548be6:	57                   	push   %edi
548be7:	e8 84 87 fd ff       	call   0x521370
548bec:	83 c4 08             	add    $0x8,%esp
548bef:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
548bf5:	eb 14                	jmp    0x548c0b
548bf7:	8b 87 cc 00 00 00    	mov    0xcc(%edi),%eax
548bfd:	53                   	push   %ebx
548bfe:	ff b7 d0 00 00 00    	push   0xd0(%edi)
548c04:	6a 01                	push   $0x1
548c06:	ff d0                	call   *%eax
548c08:	83 c4 10             	add    $0x10,%esp
548c0b:	8b 46 04             	mov    0x4(%esi),%eax
548c0e:	3b 05 0c 19 72 00    	cmp    0x72190c,%eax
548c14:	7c 3b                	jl     0x548c51
548c16:	80 3e aa             	cmpb   $0xaa,(%esi)
548c19:	0f 84 4d 9f ff ff    	je     0x542b6c
548c1f:	ba 01 00 00 00       	mov    $0x1,%edx
548c24:	39 53 6c             	cmp    %edx,0x6c(%ebx)
548c27:	7e 21                	jle    0x548c4a
548c29:	b8 14 00 00 00       	mov    $0x14,%eax
548c2e:	66 90                	xchg   %ax,%ax
548c30:	8b 4b 68             	mov    0x68(%ebx),%ecx
548c33:	80 3c 08 11          	cmpb   $0x11,(%eax,%ecx,1)
548c37:	75 08                	jne    0x548c41
548c39:	c7 44 08 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,1)
548c40:	00
548c41:	42                   	inc    %edx
548c42:	83 c0 14             	add    $0x14,%eax
548c45:	3b 53 6c             	cmp    0x6c(%ebx),%edx
548c48:	7c e6                	jl     0x548c30
548c4a:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
548c51:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548c57:	ff 46 04             	incl   0x4(%esi)
548c5a:	ff 81 bc 00 00 00    	incl   0xbc(%ecx)
548c60:	e9 bd 9c ff ff       	jmp    0x542922
548c65:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
548c6b:	8b ca                	mov    %edx,%ecx
548c6d:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548c73:	83 c6 14             	add    $0x14,%esi
548c76:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548c7c:	e9 33 9c ff ff       	jmp    0x5428b4
548c81:	8b 4a 04             	mov    0x4(%edx),%ecx
548c84:	89 4b 28             	mov    %ecx,0x28(%ebx)
548c87:	8a 42 08             	mov    0x8(%edx),%al
548c8a:	88 83 92 00 00 00    	mov    %al,0x92(%ebx)
548c90:	89 73 24             	mov    %esi,0x24(%ebx)
548c93:	85 c9                	test   %ecx,%ecx
548c95:	74 73                	je     0x548d0a
548c97:	0f b7 42 02          	movzwl 0x2(%edx),%eax
548c9b:	66 85 c0             	test   %ax,%ax
548c9e:	74 39                	je     0x548cd9
548ca0:	ff 34 85 a4 30 6b 00 	push   0x6b30a4(,%eax,4)
548ca7:	68 8c 88 6b 00       	push   $0x6b888c
548cac:	53                   	push   %ebx