53ba81:	0f 84 ce 02 00 00    	je     0x53bd55
53ba87:	33 ed                	xor    %ebp,%ebp
53ba89:	85 ff                	test   %edi,%edi
53ba8b:	0f 84 e1 00 00 00    	je     0x53bb72
53ba91:	8b 4c 24 10          	mov    0x10(%esp),%ecx
53ba95:	8b f9                	mov    %ecx,%edi
53ba97:	8b 44 24 70          	mov    0x70(%esp),%eax
53ba9b:	8b 74 24 18          	mov    0x18(%esp),%esi
53ba9f:	2b c1                	sub    %ecx,%eax
53baa1:	2b f1                	sub    %ecx,%esi
53baa3:	89 44 24 58          	mov    %eax,0x58(%esp)
53baa7:	89 74 24 34          	mov    %esi,0x34(%esp)
53baab:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
53bab0:	3b 6c 24 6c          	cmp    0x6c(%esp),%ebp
53bab4:	73 20                	jae    0x53bad6
53bab6:	ff 34 07             	push   (%edi,%eax,1)
53bab9:	8b 07                	mov    (%edi),%eax
53babb:	ff 30                	push   (%eax)
53babd:	e8 de 27 fd ff       	call   0x50e2a0
53bac2:	83 c4 08             	add    $0x8,%esp
53bac5:	85 c0                	test   %eax,%eax
53bac7:	75 25                	jne    0x53baee
53bac9:	8b 7c 24 14          	mov    0x14(%esp),%edi
53bacd:	8b 6c 24 10          	mov    0x10(%esp),%ebp
53bad1:	e9 55 fc ff ff       	jmp    0x53b72b
53bad6:	8b 07                	mov    (%edi),%eax
53bad8:	ff 74 24 50          	push   0x50(%esp)
53badc:	ff 30                	push   (%eax)
53bade:	e8 bd 27 fd ff       	call   0x50e2a0
53bae3:	83 c4 08             	add    $0x8,%esp
53bae6:	85 c0                	test   %eax,%eax
53bae8:	0f 84 77 ff ff ff    	je     0x53ba65
53baee:	83 3c 37 01          	cmpl   $0x1,(%edi,%esi,1)
53baf2:	76 6c                	jbe    0x53bb60
53baf4:	8b 07                	mov    (%edi),%eax
53baf6:	ff 74 24 78          	push   0x78(%esp)
53bafa:	ff 30                	push   (%eax)
53bafc:	ff 74 24 4c          	push   0x4c(%esp)
53bb00:	53                   	push   %ebx
53bb01:	e8 1a 28 fd ff       	call   0x50e320
53bb06:	83 c4 10             	add    $0x10,%esp
53bb09:	85 c0                	test   %eax,%eax
53bb0b:	0f 84 54 ff ff ff    	je     0x53ba65
53bb11:	8b 4c 24 34          	mov    0x34(%esp),%ecx
53bb15:	be 01 00 00 00       	mov    $0x1,%esi
53bb1a:	8b c6                	mov    %esi,%eax
53bb1c:	8b 0c 0f             	mov    (%edi,%ecx,1),%ecx
53bb1f:	49                   	dec    %ecx
53bb20:	d3 e0                	shl    %cl,%eax
53bb22:	3b c6                	cmp    %esi,%eax
53bb24:	76 36                	jbe    0x53bb5c
53bb26:	ff 74 24 78          	push   0x78(%esp)
53bb2a:	8b 07                	mov    (%edi),%eax
53bb2c:	ff 74 24 48          	push   0x48(%esp)
53bb30:	ff 74 b0 fc          	push   -0x4(%eax,%esi,4)
53bb34:	ff 34 b0             	push   (%eax,%esi,4)
53bb37:	53                   	push   %ebx
53bb38:	e8 e3 25 fd ff       	call   0x50e120
53bb3d:	83 c4 14             	add    $0x14,%esp
53bb40:	85 c0                	test   %eax,%eax
53bb42:	0f 84 1d ff ff ff    	je     0x53ba65
53bb48:	8b 44 24 34          	mov    0x34(%esp),%eax
53bb4c:	46                   	inc    %esi
53bb4d:	8b 0c 07             	mov    (%edi,%eax,1),%ecx
53bb50:	b8 01 00 00 00       	mov    $0x1,%eax
53bb55:	49                   	dec    %ecx
53bb56:	d3 e0                	shl    %cl,%eax
53bb58:	3b f0                	cmp    %eax,%esi
53bb5a:	72 ca                	jb     0x53bb26
53bb5c:	8b 74 24 34          	mov    0x34(%esp),%esi
53bb60:	8b 44 24 58          	mov    0x58(%esp),%eax
53bb64:	45                   	inc    %ebp
53bb65:	83 c7 04             	add    $0x4,%edi
53bb68:	3b 6c 24 38          	cmp    0x38(%esp),%ebp
53bb6c:	0f 82 3e ff ff ff    	jb     0x53bab0
53bb72:	8b 74 24 78          	mov    0x78(%esp),%esi
53bb76:	8b 7c 24 14          	mov    0x14(%esp),%edi
53bb7a:	56                   	push   %esi
53bb7b:	57                   	push   %edi
53bb7c:	ff 74 24 44          	push   0x44(%esp)
53bb80:	53                   	push   %ebx
53bb81:	e8 2a 2e fd ff       	call   0x50e9b0
53bb86:	83 c4 10             	add    $0x10,%esp
53bb89:	85 c0                	test   %eax,%eax
53bb8b:	0f 84 d4 fd ff ff    	je     0x53b965
53bb91:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
53bb95:	bd 01 00 00 00       	mov    $0x1,%ebp
53bb9a:	8b 7c 24 64          	mov    0x64(%esp),%edi
53bb9e:	2b cd                	sub    %ebp,%ecx
53bba0:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
53bba4:	0f 88 64 01 00 00    	js     0x53bd0e
53bbaa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
53bbb0:	85 ed                	test   %ebp,%ebp
53bbb2:	75 18                	jne    0x53bbcc
53bbb4:	56                   	push   %esi
53bbb5:	57                   	push   %edi
53bbb6:	57                   	push   %edi
53bbb7:	53                   	push   %ebx
53bbb8:	e8 63 27 fd ff       	call   0x50e320
53bbbd:	83 c4 10             	add    $0x10,%esp
53bbc0:	85 c0                	test   %eax,%eax
53bbc2:	0f 84 9d fe ff ff    	je     0x53ba65
53bbc8:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
53bbcc:	33 d2                	xor    %edx,%edx
53bbce:	89 54 24 3c          	mov    %edx,0x3c(%esp)
53bbd2:	39 54 24 20          	cmp    %edx,0x20(%esp)
53bbd6:	0f 86 fa 00 00 00    	jbe    0x53bcd6
53bbdc:	8b 5c 24 24          	mov    0x24(%esp),%ebx
53bbe0:	8b fb                	mov    %ebx,%edi
53bbe2:	8b 54 24 10          	mov    0x10(%esp),%edx
53bbe6:	8b 44 24 28          	mov    0x28(%esp),%eax
53bbea:	2b c7                	sub    %edi,%eax
53bbec:	89 54 24 48          	mov    %edx,0x48(%esp)
53bbf0:	29 7c 24 48          	sub    %edi,0x48(%esp)
53bbf4:	8b 7c 24 64          	mov    0x64(%esp),%edi
53bbf8:	8b 54 24 3c          	mov    0x3c(%esp),%edx
53bbfc:	89 44 24 38          	mov    %eax,0x38(%esp)
53bc00:	39 0c 18             	cmp    %ecx,(%eax,%ebx,1)
53bc03:	0f 86 b7 00 00 00    	jbe    0x53bcc0
53bc09:	8b 03                	mov    (%ebx),%eax
53bc0b:	8a 04 01             	mov    (%ecx,%eax,1),%al
53bc0e:	0f be c8             	movsbl %al,%ecx
53bc11:	84 c0                	test   %al,%al
53bc13:	0f 84 9f 00 00 00    	je     0x53bcb8
53bc19:	0f b6 c0             	movzbl %al,%eax
53bc1c:	8b f1                	mov    %ecx,%esi
53bc1e:	c1 e8 07             	shr    $0x7,%eax
53bc21:	f7 de                	neg    %esi
53bc23:	85 c0                	test   %eax,%eax
53bc25:	0f 44 f1             	cmove  %ecx,%esi
53bc28:	8b 4c 24 40          	mov    0x40(%esp),%ecx
53bc2c:	3b c1                	cmp    %ecx,%eax
53bc2e:	74 2c                	je     0x53bc5c
53bc30:	85 ed                	test   %ebp,%ebp
53bc32:	75 1d                	jne    0x53bc51
53bc34:	ff 74 24 78          	push   0x78(%esp)
53bc38:	57                   	push   %edi
53bc39:	ff 74 24 68          	push   0x68(%esp)
53bc3d:	e8 9e 28 fd ff       	call   0x50e4e0
53bc42:	83 c4 0c             	add    $0xc,%esp
53bc45:	85 c0                	test   %eax,%eax
53bc47:	0f 84 18 fe ff ff    	je     0x53ba65
53bc4d:	8b 4c 24 40          	mov    0x40(%esp),%ecx
53bc51:	33 c0                	xor    %eax,%eax
53bc53:	85 c9                	test   %ecx,%ecx
53bc55:	0f 94 c0             	sete   %al
53bc58:	89 44 24 40          	mov    %eax,0x40(%esp)
53bc5c:	8b 44 24 48          	mov    0x48(%esp),%eax
53bc60:	d1 fe                	sar    $1,%esi
53bc62:	8b 04 18             	mov    (%eax,%ebx,1),%eax
53bc65:	8b 04 b0             	mov    (%eax,%esi,4),%eax
53bc68:	85 ed                	test   %ebp,%ebp
53bc6a:	74 2c                	je     0x53bc98
53bc6c:	50                   	push   %eax
53bc6d:	57                   	push   %edi
53bc6e:	e8 2d 26 fd ff       	call   0x50e2a0
53bc73:	83 c4 08             	add    $0x8,%esp
53bc76:	85 c0                	test   %eax,%eax
53bc78:	0f 84 e7 fd ff ff    	je     0x53ba65
53bc7e:	8b 74 24 78          	mov    0x78(%esp),%esi
53bc82:	56                   	push   %esi
53bc83:	57                   	push   %edi
53bc84:	ff 74 24 68          	push   0x68(%esp)
53bc88:	e8 33 30 fd ff       	call   0x50ecc0
53bc8d:	83 c4 0c             	add    $0xc,%esp
53bc90:	85 c0                	test   %eax,%eax
53bc92:	74 66                	je     0x53bcfa
53bc94:	33 ed                	xor    %ebp,%ebp
53bc96:	eb 1c                	jmp    0x53bcb4
53bc98:	8b 74 24 78          	mov    0x78(%esp),%esi
53bc9c:	56                   	push   %esi
53bc9d:	50                   	push   %eax
53bc9e:	57                   	push   %edi
53bc9f:	57                   	push   %edi
53bca0:	ff 74 24 70          	push   0x70(%esp)
53bca4:	e8 77 24 fd ff       	call   0x50e120
53bca9:	83 c4 14             	add    $0x14,%esp
53bcac:	85 c0                	test   %eax,%eax
53bcae:	0f 84 b1 fd ff ff    	je     0x53ba65
53bcb4:	8b 54 24 3c          	mov    0x3c(%esp),%edx
53bcb8:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
53bcbc:	8b 44 24 38          	mov    0x38(%esp),%eax
53bcc0:	42                   	inc    %edx
53bcc1:	83 c3 04             	add    $0x4,%ebx
53bcc4:	89 54 24 3c          	mov    %edx,0x3c(%esp)
53bcc8:	3b 54 24 20          	cmp    0x20(%esp),%edx
53bccc:	0f 82 2e ff ff ff    	jb     0x53bc00
53bcd2:	8b 5c 24 60          	mov    0x60(%esp),%ebx
53bcd6:	83 e9 01             	sub    $0x1,%ecx
53bcd9:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
53bcdd:	0f 89 cd fe ff ff    	jns    0x53bbb0
53bce3:	85 ed                	test   %ebp,%ebp
53bce5:	75 27                	jne    0x53bd0e
53bce7:	39 6c 24 40          	cmp    %ebp,0x40(%esp)
53bceb:	74 33                	je     0x53bd20
53bced:	56                   	push   %esi
53bcee:	57                   	push   %edi
53bcef:	53                   	push   %ebx
53bcf0:	e8 eb 27 fd ff       	call   0x50e4e0
53bcf5:	83 c4 0c             	add    $0xc,%esp
53bcf8:	eb 1e                	jmp    0x53bd18
53bcfa:	68 f1 02 00 00       	push   $0x2f1
53bcff:	68 50 a2 64 00       	push   $0x64a250
53bd04:	68 a3 00 00 00       	push   $0xa3
53bd09:	e9 48 fd ff ff       	jmp    0x53ba56
53bd0e:	57                   	push   %edi
53bd0f:	53                   	push   %ebx
53bd10:	e8 3b 2c fd ff       	call   0x50e950
53bd15:	83 c4 08             	add    $0x8,%esp
53bd18:	85 c0                	test   %eax,%eax
53bd1a:	0f 84 45 fd ff ff    	je     0x53ba65
53bd20:	8b 6c 24 10          	mov    0x10(%esp),%ebp
53bd24:	8b 7c 24 14          	mov    0x14(%esp),%edi
53bd28:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)
53bd2f:	00
53bd30:	e9 f6 f9 ff ff       	jmp    0x53b72b
53bd35:	68 04 02 00 00       	push   $0x204
53bd3a:	68 50 a2 64 00       	push   $0x64a250
53bd3f:	6a 41                	push   $0x41
53bd41:	68 bb 00 00 00       	push   $0xbb
53bd46:	6a 10                	push   $0x10
53bd48:	e8 33 d2 f9 ff       	call   0x4d8f80
53bd4d:	83 c4 14             	add    $0x14,%esp
53bd50:	e9 d0 f9 ff ff       	jmp    0x53b725
53bd55:	8b 7c 24 14          	mov    0x14(%esp),%edi
53bd59:	8b 6c 24 10          	mov    0x10(%esp),%ebp
53bd5d:	e9 c9 f9 ff ff       	jmp    0x53b72b
53bd62:	cc                   	int3
53bd63:	cc                   	int3
53bd64:	cc                   	int3
53bd65:	cc                   	int3
53bd66:	cc                   	int3
53bd67:	cc                   	int3
53bd68:	cc                   	int3
53bd69:	cc                   	int3
53bd6a:	cc                   	int3
53bd6b:	cc                   	int3
53bd6c:	cc                   	int3
53bd6d:	cc                   	int3
53bd6e:	cc                   	int3
53bd6f:	cc                   	int3
53bd70:	56                   	push   %esi
53bd71:	e8 4a a1 02 00       	call   0x565ec0
53bd76:	50                   	push   %eax
53bd77:	e8 a4 1e fd ff       	call   0x50dc20
53bd7c:	8b f0                	mov    %eax,%esi
53bd7e:	83 c4 04             	add    $0x4,%esp
53bd81:	85 f6                	test   %esi,%esi
53bd83:	74 26                	je     0x53bdab
53bd85:	ff 74 24 14          	push   0x14(%esp)
53bd89:	ff 74 24 14          	push   0x14(%esp)
53bd8d:	ff 74 24 14          	push   0x14(%esp)
53bd91:	ff 74 24 14          	push   0x14(%esp)
53bd95:	56                   	push   %esi
53bd96:	e8 75 1f fd ff       	call   0x50dd10
53bd9b:	83 c4 14             	add    $0x14,%esp
53bd9e:	85 c0                	test   %eax,%eax
53bda0:	75 0d                	jne    0x53bdaf
53bda2:	56                   	push   %esi
53bda3:	e8 d8 15 fd ff       	call   0x50d380
53bda8:	83 c4 04             	add    $0x4,%esp
53bdab:	33 c0                	xor    %eax,%eax
53bdad:	5e                   	pop    %esi
53bdae:	c3                   	ret
53bdaf:	8b c6                	mov    %esi,%eax
53bdb1:	5e                   	pop    %esi
53bdb2:	c3                   	ret
53bdb3:	cc                   	int3
53bdb4:	cc                   	int3
53bdb5:	cc                   	int3
53bdb6:	cc                   	int3
53bdb7:	cc                   	int3
53bdb8:	cc                   	int3
53bdb9:	cc                   	int3
53bdba:	cc                   	int3
53bdbb:	cc                   	int3
53bdbc:	cc                   	int3
53bdbd:	cc                   	int3
53bdbe:	cc                   	int3
53bdbf:	cc                   	int3
53bdc0:	56                   	push   %esi
53bdc1:	e8 ba 8a 02 00       	call   0x564880
53bdc6:	50                   	push   %eax
53bdc7:	e8 54 1e fd ff       	call   0x50dc20
53bdcc:	8b f0                	mov    %eax,%esi
53bdce:	83 c4 04             	add    $0x4,%esp
53bdd1:	85 f6                	test   %esi,%esi
53bdd3:	74 26                	je     0x53bdfb
53bdd5:	ff 74 24 14          	push   0x14(%esp)
53bdd9:	ff 74 24 14          	push   0x14(%esp)
53bddd:	ff 74 24 14          	push   0x14(%esp)
53bde1:	ff 74 24 14          	push   0x14(%esp)
53bde5:	56                   	push   %esi
53bde6:	e8 25 1f fd ff       	call   0x50dd10
53bdeb:	83 c4 14             	add    $0x14,%esp
53bdee:	85 c0                	test   %eax,%eax
53bdf0:	75 0d                	jne    0x53bdff
53bdf2:	56                   	push   %esi
53bdf3:	e8 88 15 fd ff       	call   0x50d380
53bdf8:	83 c4 04             	add    $0x4,%esp
53bdfb:	33 c0                	xor    %eax,%eax
53bdfd:	5e                   	pop    %esi
53bdfe:	c3                   	ret
53bdff:	8b c6                	mov    %esi,%eax
53be01:	5e                   	pop    %esi
53be02:	c3                   	ret
53be03:	cc                   	int3
53be04:	cc                   	int3
53be05:	cc                   	int3
53be06:	cc                   	int3
53be07:	cc                   	int3
53be08:	cc                   	int3
53be09:	cc                   	int3
53be0a:	cc                   	int3
53be0b:	cc                   	int3
53be0c:	cc                   	int3
53be0d:	cc                   	int3
53be0e:	cc                   	int3
53be0f:	cc                   	int3
53be10:	b8 0c 00 00 00       	mov    $0xc,%eax
53be15:	e8 96 59 09 00       	call   0x5d17b0
53be1a:	57                   	push   %edi
53be1b:	8b 7c 24 20          	mov    0x20(%esp),%edi
53be1f:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
53be26:	00
53be27:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
53be2e:	00
53be2f:	85 ff                	test   %edi,%edi
53be31:	75 1f                	jne    0x53be52
53be33:	68 18 01 00 00       	push   $0x118
53be38:	68 64 a2 64 00       	push   $0x64a264
53be3d:	6a 64                	push   $0x64
53be3f:	6a 67                	push   $0x67
53be41:	6a 10                	push   $0x10
53be43:	e8 38 d1 f9 ff       	call   0x4d8f80
53be48:	83 c4 14             	add    $0x14,%esp
53be4b:	33 c0                	xor    %eax,%eax
53be4d:	5f                   	pop    %edi
53be4e:	83 c4 0c             	add    $0xc,%esp
53be51:	c3                   	ret
53be52:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
53be56:	55                   	push   %ebp
53be57:	56                   	push   %esi
53be58:	0f b6 31             	movzbl (%ecx),%esi
53be5b:	8b ee                	mov    %esi,%ebp
53be5d:	83 e5 01             	and    $0x1,%ebp
53be60:	83 e6 fe             	and    $0xfffffffe,%esi
53be63:	74 16                	je     0x53be7b
53be65:	83 fe 02             	cmp    $0x2,%esi
53be68:	74 43                	je     0x53bead