4227be:	8b 45 08             	mov    0x8(%ebp),%eax
4227c1:	85 c0                	test   %eax,%eax
4227c3:	74 19                	je     0x4227de
4227c5:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4227c8:	51                   	push   %ecx
4227c9:	53                   	push   %ebx
4227ca:	ff 30                	push   (%eax)
4227cc:	e8 c6 fa fe ff       	call   0x412297
4227d1:	8b f0                	mov    %eax,%esi
4227d3:	85 f6                	test   %esi,%esi
4227d5:	79 1e                	jns    0x4227f5
4227d7:	68 9c af 45 00       	push   $0x45af9c
4227dc:	eb b2                	jmp    0x422790
4227de:	8d 45 fc             	lea    -0x4(%ebp),%eax
4227e1:	50                   	push   %eax
4227e2:	53                   	push   %ebx
4227e3:	e8 c2 f4 fe ff       	call   0x411caa
4227e8:	8b f0                	mov    %eax,%esi
4227ea:	85 f6                	test   %esi,%esi
4227ec:	79 07                	jns    0x4227f5
4227ee:	68 e0 24 45 00       	push   $0x4524e0
4227f3:	eb 9b                	jmp    0x422790
4227f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4227f8:	33 c9                	xor    %ecx,%ecx
4227fa:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
422800:	8b 45 fc             	mov    -0x4(%ebp),%eax
422803:	89 78 08             	mov    %edi,0x8(%eax)
422806:	83 3b 08             	cmpl   $0x8,(%ebx)
422809:	8b 45 fc             	mov    -0x4(%ebp),%eax
42280c:	0f 94 c1             	sete   %cl
42280f:	89 48 0c             	mov    %ecx,0xc(%eax)
422812:	8b 45 fc             	mov    -0x4(%ebp),%eax
422815:	8b 4f 5c             	mov    0x5c(%edi),%ecx
422818:	89 48 10             	mov    %ecx,0x10(%eax)
42281b:	8b 87 a0 00 00 00    	mov    0xa0(%edi),%eax
422821:	85 c0                	test   %eax,%eax
422823:	74 1f                	je     0x422844
422825:	6a 00                	push   $0x0
422827:	50                   	push   %eax
422828:	8b 45 fc             	mov    -0x4(%ebp),%eax
42282b:	83 c0 14             	add    $0x14,%eax
42282e:	50                   	push   %eax
42282f:	e8 71 f9 fd ff       	call   0x4021a5
422834:	8b f0                	mov    %eax,%esi
422836:	85 f6                	test   %esi,%esi
422838:	79 0a                	jns    0x422844
42283a:	68 c0 5c 45 00       	push   $0x455cc0
42283f:	e9 4c ff ff ff       	jmp    0x422790
422844:	8b 87 a4 00 00 00    	mov    0xa4(%edi),%eax
42284a:	85 c0                	test   %eax,%eax
42284c:	74 1f                	je     0x42286d
42284e:	6a 00                	push   $0x0
422850:	50                   	push   %eax
422851:	8b 45 fc             	mov    -0x4(%ebp),%eax
422854:	83 c0 18             	add    $0x18,%eax
422857:	50                   	push   %eax
422858:	e8 48 f9 fd ff       	call   0x4021a5
42285d:	8b f0                	mov    %eax,%esi
42285f:	85 f6                	test   %esi,%esi
422861:	79 0a                	jns    0x42286d
422863:	68 f8 5c 45 00       	push   $0x455cf8
422868:	e9 23 ff ff ff       	jmp    0x422790
42286d:	33 c0                	xor    %eax,%eax
42286f:	50                   	push   %eax
422870:	ff 75 18             	push   0x18(%ebp)
422873:	ff 75 14             	push   0x14(%ebp)
422876:	50                   	push   %eax
422877:	50                   	push   %eax
422878:	57                   	push   %edi
422879:	e8 3c 1a ff ff       	call   0x4142ba
42287e:	83 7f 60 00          	cmpl   $0x0,0x60(%edi)
422882:	0f 84 8a 00 00 00    	je     0x422912
422888:	8d 45 fc             	lea    -0x4(%ebp),%eax
42288b:	50                   	push   %eax
42288c:	53                   	push   %ebx
42288d:	e8 5f f4 fe ff       	call   0x411cf1
422892:	8b f0                	mov    %eax,%esi
422894:	85 f6                	test   %esi,%esi
422896:	79 0a                	jns    0x4228a2
422898:	68 4c 30 45 00       	push   $0x45304c
42289d:	e9 ee fe ff ff       	jmp    0x422790
4228a2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4228a5:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
4228ab:	8b 45 fc             	mov    -0x4(%ebp),%eax
4228ae:	89 78 08             	mov    %edi,0x8(%eax)
4228b1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4228b4:	8b 4f 60             	mov    0x60(%edi),%ecx
4228b7:	89 48 10             	mov    %ecx,0x10(%eax)
4228ba:	8b 87 a0 00 00 00    	mov    0xa0(%edi),%eax
4228c0:	85 c0                	test   %eax,%eax
4228c2:	74 19                	je     0x4228dd
4228c4:	6a 00                	push   $0x0
4228c6:	50                   	push   %eax
4228c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4228ca:	83 c0 14             	add    $0x14,%eax
4228cd:	50                   	push   %eax
4228ce:	e8 d2 f8 fd ff       	call   0x4021a5
4228d3:	8b f0                	mov    %eax,%esi
4228d5:	85 f6                	test   %esi,%esi
4228d7:	0f 88 5d ff ff ff    	js     0x42283a
4228dd:	8b 87 a4 00 00 00    	mov    0xa4(%edi),%eax
4228e3:	85 c0                	test   %eax,%eax
4228e5:	74 19                	je     0x422900
4228e7:	6a 00                	push   $0x0
4228e9:	50                   	push   %eax
4228ea:	8b 45 fc             	mov    -0x4(%ebp),%eax
4228ed:	83 c0 18             	add    $0x18,%eax
4228f0:	50                   	push   %eax
4228f1:	e8 af f8 fd ff       	call   0x4021a5
4228f6:	8b f0                	mov    %eax,%esi
4228f8:	85 f6                	test   %esi,%esi
4228fa:	0f 88 63 ff ff ff    	js     0x422863
422900:	6a 00                	push   $0x0
422902:	ff 75 18             	push   0x18(%ebp)
422905:	ff 75 14             	push   0x14(%ebp)
422908:	6a 01                	push   $0x1
42290a:	6a 00                	push   $0x0
42290c:	57                   	push   %edi
42290d:	e8 a8 19 ff ff       	call   0x4142ba
422912:	5f                   	pop    %edi
422913:	8b c6                	mov    %esi,%eax
422915:	5e                   	pop    %esi
422916:	5b                   	pop    %ebx
422917:	8b e5                	mov    %ebp,%esp
422919:	5d                   	pop    %ebp
42291a:	c2 1c 00             	ret    $0x1c
42291d:	55                   	push   %ebp
42291e:	8b ec                	mov    %esp,%ebp
422920:	51                   	push   %ecx
422921:	53                   	push   %ebx
422922:	8b 5d 08             	mov    0x8(%ebp),%ebx
422925:	56                   	push   %esi
422926:	57                   	push   %edi
422927:	33 f6                	xor    %esi,%esi
422929:	8b 7b 40             	mov    0x40(%ebx),%edi
42292c:	8b d6                	mov    %esi,%edx
42292e:	89 75 fc             	mov    %esi,-0x4(%ebp)
422931:	8d 47 ff             	lea    -0x1(%edi),%eax
422934:	83 e8 01             	sub    $0x1,%eax
422937:	0f 84 85 00 00 00    	je     0x4229c2
42293d:	48                   	dec    %eax
42293e:	83 e8 01             	sub    $0x1,%eax
422941:	74 2d                	je     0x422970
422943:	bf 57 00 07 80       	mov    $0x80070057,%edi
422948:	57                   	push   %edi
422949:	68 dc 00 00 00       	push   $0xdc
42294e:	68 20 af 45 00       	push   $0x45af20
422953:	8b f7                	mov    %edi,%esi
422955:	e8 79 0e fe ff       	call   0x4037d3
42295a:	ff 73 40             	push   0x40(%ebx)
42295d:	68 30 af 45 00       	push   $0x45af30
422962:	57                   	push   %edi
422963:	e8 c7 d7 01 00       	call   0x44012f
422968:	83 c4 0c             	add    $0xc,%esp
42296b:	e9 fa 00 00 00       	jmp    0x422a6a
422970:	8b 43 50             	mov    0x50(%ebx),%eax
422973:	8b c8                	mov    %eax,%ecx
422975:	83 e9 01             	sub    $0x1,%ecx
422978:	74 43                	je     0x4229bd
42297a:	83 e9 01             	sub    $0x1,%ecx
42297d:	74 34                	je     0x4229b3
42297f:	83 e9 01             	sub    $0x1,%ecx
422982:	74 2f                	je     0x4229b3
422984:	83 e9 01             	sub    $0x1,%ecx
422987:	74 1b                	je     0x4229a4
422989:	83 e9 01             	sub    $0x1,%ecx
42298c:	74 07                	je     0x422995
42298e:	8b ce                	mov    %esi,%ecx
422990:	e9 c3 00 00 00       	jmp    0x422a58
422995:	8b 8b ac 00 00 00    	mov    0xac(%ebx),%ecx
42299b:	f7 d9                	neg    %ecx
42299d:	1b c9                	sbb    %ecx,%ecx
42299f:	83 e1 05             	and    $0x5,%ecx
4229a2:	eb 40                	jmp    0x4229e4
4229a4:	8b 8b a8 00 00 00    	mov    0xa8(%ebx),%ecx
4229aa:	f7 d9                	neg    %ecx
4229ac:	1b c9                	sbb    %ecx,%ecx
4229ae:	83 e1 02             	and    $0x2,%ecx
4229b1:	eb 31                	jmp    0x4229e4
4229b3:	33 c9                	xor    %ecx,%ecx
4229b5:	39 73 18             	cmp    %esi,0x18(%ebx)
4229b8:	0f 95 c1             	setne  %cl
4229bb:	eb 27                	jmp    0x4229e4
4229bd:	33 c9                	xor    %ecx,%ecx
4229bf:	41                   	inc    %ecx
4229c0:	eb 22                	jmp    0x4229e4
4229c2:	8b 43 50             	mov    0x50(%ebx),%eax
4229c5:	8b c8                	mov    %eax,%ecx
4229c7:	83 e9 03             	sub    $0x3,%ecx
4229ca:	74 0f                	je     0x4229db
4229cc:	83 e9 01             	sub    $0x1,%ecx
4229cf:	74 05                	je     0x4229d6
4229d1:	83 e9 01             	sub    $0x1,%ecx
4229d4:	75 b8                	jne    0x42298e
4229d6:	6a 02                	push   $0x2
4229d8:	59                   	pop    %ecx
4229d9:	eb 0d                	jmp    0x4229e8
4229db:	8b ce                	mov    %esi,%ecx
4229dd:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4229e4:	85 c9                	test   %ecx,%ecx
4229e6:	74 70                	je     0x422a58
4229e8:	39 53 48             	cmp    %edx,0x48(%ebx)
4229eb:	0f 45 7b 48          	cmovne 0x48(%ebx),%edi
4229ef:	4f                   	dec    %edi
4229f0:	83 ef 01             	sub    $0x1,%edi
4229f3:	74 46                	je     0x422a3b
4229f5:	4f                   	dec    %edi
4229f6:	83 ef 01             	sub    $0x1,%edi
4229f9:	74 26                	je     0x422a21
4229fb:	bf 57 00 07 80       	mov    $0x80070057,%edi
422a00:	57                   	push   %edi
422a01:	68 08 01 00 00       	push   $0x108
422a06:	68 20 af 45 00       	push   $0x45af20
422a0b:	8b f7                	mov    %edi,%esi
422a0d:	e8 c1 0d fe ff       	call   0x4037d3
422a12:	68 54 af 45 00       	push   $0x45af54
422a17:	57                   	push   %edi
422a18:	e8 12 d7 01 00       	call   0x44012f
422a1d:	59                   	pop    %ecx
422a1e:	59                   	pop    %ecx
422a1f:	eb 49                	jmp    0x422a6a
422a21:	83 e8 01             	sub    $0x1,%eax
422a24:	74 10                	je     0x422a36
422a26:	83 e8 01             	sub    $0x1,%eax
422a29:	74 0b                	je     0x422a36
422a2b:	48                   	dec    %eax
422a2c:	83 e8 01             	sub    $0x1,%eax
422a2f:	74 27                	je     0x422a58
422a31:	83 e8 01             	sub    $0x1,%eax
422a34:	eb 22                	jmp    0x422a58
422a36:	6a 02                	push   $0x2
422a38:	5a                   	pop    %edx
422a39:	eb 1d                	jmp    0x422a58
422a3b:	83 e8 01             	sub    $0x1,%eax
422a3e:	74 18                	je     0x422a58
422a40:	83 e8 01             	sub    $0x1,%eax
422a43:	74 13                	je     0x422a58
422a45:	48                   	dec    %eax
422a46:	83 e8 01             	sub    $0x1,%eax
422a49:	74 05                	je     0x422a50
422a4b:	83 e8 01             	sub    $0x1,%eax
422a4e:	75 08                	jne    0x422a58
422a50:	33 d2                	xor    %edx,%edx
422a52:	39 73 18             	cmp    %esi,0x18(%ebx)
422a55:	0f 95 c2             	setne  %dl
422a58:	8b 45 0c             	mov    0xc(%ebp),%eax
422a5b:	89 4b 5c             	mov    %ecx,0x5c(%ebx)
422a5e:	89 53 60             	mov    %edx,0x60(%ebx)
422a61:	85 c0                	test   %eax,%eax
422a63:	74 05                	je     0x422a6a
422a65:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422a68:	89 08                	mov    %ecx,(%eax)
422a6a:	5f                   	pop    %edi
422a6b:	8b c6                	mov    %esi,%eax
422a6d:	5e                   	pop    %esi
422a6e:	5b                   	pop    %ebx
422a6f:	8b e5                	mov    %ebp,%esp
422a71:	5d                   	pop    %ebp
422a72:	c2 08 00             	ret    $0x8
422a75:	55                   	push   %ebp
422a76:	8b ec                	mov    %esp,%ebp
422a78:	8b 4d 14             	mov    0x14(%ebp),%ecx
422a7b:	8b 45 0c             	mov    0xc(%ebp),%eax
422a7e:	56                   	push   %esi
422a7f:	33 f6                	xor    %esi,%esi
422a81:	89 31                	mov    %esi,(%ecx)
422a83:	6a 01                	push   $0x1
422a85:	5a                   	pop    %edx
422a86:	2b c6                	sub    %esi,%eax
422a88:	74 7f                	je     0x422b09
422a8a:	2b c2                	sub    %edx,%eax
422a8c:	74 6e                	je     0x422afc
422a8e:	2b c2                	sub    %edx,%eax
422a90:	74 4f                	je     0x422ae1
422a92:	2b c2                	sub    %edx,%eax
422a94:	74 41                	je     0x422ad7
422a96:	2b c2                	sub    %edx,%eax
422a98:	74 24                	je     0x422abe
422a9a:	be ff ff 00 80       	mov    $0x8000ffff,%esi
422a9f:	56                   	push   %esi
422aa0:	68 37 06 00 00       	push   $0x637
422aa5:	68 58 b7 45 00       	push   $0x45b758
422aaa:	e8 24 0d fe ff       	call   0x4037d3
422aaf:	68 08 be 45 00       	push   $0x45be08
422ab4:	56                   	push   %esi
422ab5:	e8 75 d6 01 00       	call   0x44012f
422aba:	59                   	pop    %ecx
422abb:	59                   	pop    %ecx
422abc:	eb 56                	jmp    0x422b14
422abe:	6a 04                	push   $0x4
422ac0:	58                   	pop    %eax
422ac1:	39 45 08             	cmp    %eax,0x8(%ebp)
422ac4:	74 08                	je     0x422ace
422ac6:	c7 01 02 00 00 00    	movl   $0x2,(%ecx)
422acc:	eb 3d                	jmp    0x422b0b
422ace:	39 75 10             	cmp    %esi,0x10(%ebp)
422ad1:	74 38                	je     0x422b0b
422ad3:	89 01                	mov    %eax,(%ecx)
422ad5:	eb 34                	jmp    0x422b0b
422ad7:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
422adb:	74 12                	je     0x422aef
422add:	89 11                	mov    %edx,(%ecx)
422adf:	eb 2a                	jmp    0x422b0b
422ae1:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
422ae5:	74 08                	je     0x422aef
422ae7:	c7 01 05 00 00 00    	movl   $0x5,(%ecx)
422aed:	eb 1c                	jmp    0x422b0b
422aef:	39 75 10             	cmp    %esi,0x10(%ebp)
422af2:	74 17                	je     0x422b0b
422af4:	c7 01 04 00 00 00    	movl   $0x4,(%ecx)
422afa:	eb 0f                	jmp    0x422b0b
422afc:	39 55 08             	cmp    %edx,0x8(%ebp)
422aff:	74 0a                	je     0x422b0b
422b01:	c7 01 06 00 00 00    	movl   $0x6,(%ecx)
422b07:	eb 02                	jmp    0x422b0b
422b09:	89 31                	mov    %esi,(%ecx)
422b0b:	39 31                	cmp    %esi,(%ecx)
422b0d:	74 05                	je     0x422b14
422b0f:	8b 4d 18             	mov    0x18(%ebp),%ecx
422b12:	89 11                	mov    %edx,(%ecx)
422b14:	8b c6                	mov    %esi,%eax
422b16:	5e                   	pop    %esi
422b17:	5d                   	pop    %ebp
422b18:	c2 14 00             	ret    $0x14
422b1b:	55                   	push   %ebp
422b1c:	8b ec                	mov    %esp,%ebp
422b1e:	83 ec 20             	sub    $0x20,%esp
422b21:	8b 45 08             	mov    0x8(%ebp),%eax
422b24:	53                   	push   %ebx
422b25:	56                   	push   %esi
422b26:	33 f6                	xor    %esi,%esi
422b28:	33 db                	xor    %ebx,%ebx
422b2a:	21 75 fc             	and    %esi,-0x4(%ebp)
422b2d:	21 75 f8             	and    %esi,-0x8(%ebp)
422b30:	21 75 f4             	and    %esi,-0xc(%ebp)
422b33:	21 75 f0             	and    %esi,-0x10(%ebp)
422b36:	21 75 ec             	and    %esi,-0x14(%ebp)
422b39:	21 75 e8             	and    %esi,-0x18(%ebp)
422b3c:	21 75 e4             	and    %esi,-0x1c(%ebp)
422b3f:	39 98 c0 00 00 00    	cmp    %ebx,0xc0(%eax)
422b45:	0f 86 2b 03 00 00    	jbe    0x422e76
422b4b:	33 c9                	xor    %ecx,%ecx
422b4d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
422b50:	57                   	push   %edi
422b51:	8b b8 bc 00 00 00    	mov    0xbc(%eax),%edi
422b57:	8b 45 0c             	mov    0xc(%ebp),%eax
422b5a:	03 f9                	add    %ecx,%edi
422b5c:	8b 04 98             	mov    (%eax,%ebx,4),%eax
422b5f:	83 e8 01             	sub    $0x1,%eax
422b62:	0f 84 da 00 00 00    	je     0x422c42