41a874:	ff 75 d0             	push   -0x30(%ebp)
41a877:	89 45 e8             	mov    %eax,-0x18(%ebp)
41a87a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41a87d:	d1 f9                	sar    $1,%ecx
41a87f:	2b c1                	sub    %ecx,%eax
41a881:	50                   	push   %eax
41a882:	52                   	push   %edx
41a883:	e8 46 fe ff ff       	call   0x41a6ce
41a888:	83 c4 10             	add    $0x10,%esp
41a88b:	85 c0                	test   %eax,%eax
41a88d:	75 7f                	jne    0x41a90e
41a88f:	8b 45 ec             	mov    -0x14(%ebp),%eax
41a892:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41a895:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41a898:	89 14 01             	mov    %edx,(%ecx,%eax,1)
41a89b:	83 c0 04             	add    $0x4,%eax
41a89e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41a8a1:	89 45 ec             	mov    %eax,-0x14(%ebp)
41a8a4:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
41a8a7:	89 55 e4             	mov    %edx,-0x1c(%ebp)
41a8aa:	3b 45 d8             	cmp    -0x28(%ebp),%eax
41a8ad:	75 9f                	jne    0x41a84e
41a8af:	8b 45 e0             	mov    -0x20(%ebp),%eax
41a8b2:	89 7d f0             	mov    %edi,-0x10(%ebp)
41a8b5:	89 30                	mov    %esi,(%eax)
41a8b7:	8b f7                	mov    %edi,%esi
41a8b9:	57                   	push   %edi
41a8ba:	e8 4c 88 ff ff       	call   0x41310b
41a8bf:	59                   	pop    %ecx
41a8c0:	8b 45 d8             	mov    -0x28(%ebp),%eax
41a8c3:	8b d3                	mov    %ebx,%edx
41a8c5:	2b c2                	sub    %edx,%eax
41a8c7:	89 55 e0             	mov    %edx,-0x20(%ebp)
41a8ca:	83 c0 03             	add    $0x3,%eax
41a8cd:	c1 e8 02             	shr    $0x2,%eax
41a8d0:	39 55 d8             	cmp    %edx,-0x28(%ebp)
41a8d3:	1b c9                	sbb    %ecx,%ecx
41a8d5:	f7 d1                	not    %ecx
41a8d7:	23 c8                	and    %eax,%ecx
41a8d9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41a8dc:	74 18                	je     0x41a8f6
41a8de:	8b f1                	mov    %ecx,%esi
41a8e0:	ff 33                	push   (%ebx)
41a8e2:	e8 24 88 ff ff       	call   0x41310b
41a8e7:	47                   	inc    %edi
41a8e8:	8d 5b 04             	lea    0x4(%ebx),%ebx
41a8eb:	59                   	pop    %ecx
41a8ec:	3b fe                	cmp    %esi,%edi
41a8ee:	75 f0                	jne    0x41a8e0
41a8f0:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
41a8f3:	8b 75 f0             	mov    -0x10(%ebp),%esi
41a8f6:	53                   	push   %ebx
41a8f7:	e8 0f 88 ff ff       	call   0x41310b
41a8fc:	59                   	pop    %ecx
41a8fd:	5f                   	pop    %edi
41a8fe:	5b                   	pop    %ebx
41a8ff:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41a902:	8b c6                	mov    %esi,%eax
41a904:	33 cd                	xor    %ebp,%ecx
41a906:	5e                   	pop    %esi
41a907:	e8 00 cb fe ff       	call   0x40740c
41a90c:	c9                   	leave
41a90d:	c3                   	ret
41a90e:	57                   	push   %edi
41a90f:	57                   	push   %edi
41a910:	57                   	push   %edi
41a911:	57                   	push   %edi
41a912:	57                   	push   %edi
41a913:	e8 96 27 ff ff       	call   0x40d0ae
41a918:	cc                   	int3
41a919:	8b ff                	mov    %edi,%edi
41a91b:	55                   	push   %ebp
41a91c:	8b ec                	mov    %esp,%ebp
41a91e:	51                   	push   %ecx
41a91f:	8b 4d 08             	mov    0x8(%ebp),%ecx
41a922:	53                   	push   %ebx
41a923:	57                   	push   %edi
41a924:	33 db                	xor    %ebx,%ebx
41a926:	8d 51 02             	lea    0x2(%ecx),%edx
41a929:	66 8b 01             	mov    (%ecx),%ax
41a92c:	83 c1 02             	add    $0x2,%ecx
41a92f:	66 3b c3             	cmp    %bx,%ax
41a932:	75 f5                	jne    0x41a929
41a934:	8b 7d 10             	mov    0x10(%ebp),%edi
41a937:	2b ca                	sub    %edx,%ecx
41a939:	d1 f9                	sar    $1,%ecx
41a93b:	8b c7                	mov    %edi,%eax
41a93d:	41                   	inc    %ecx
41a93e:	f7 d0                	not    %eax
41a940:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41a943:	3b c8                	cmp    %eax,%ecx
41a945:	76 07                	jbe    0x41a94e
41a947:	6a 0c                	push   $0xc
41a949:	58                   	pop    %eax
41a94a:	5f                   	pop    %edi
41a94b:	5b                   	pop    %ebx
41a94c:	c9                   	leave
41a94d:	c3                   	ret
41a94e:	56                   	push   %esi
41a94f:	8d 5f 01             	lea    0x1(%edi),%ebx
41a952:	03 d9                	add    %ecx,%ebx
41a954:	6a 02                	push   $0x2
41a956:	53                   	push   %ebx
41a957:	e8 52 87 ff ff       	call   0x4130ae
41a95c:	8b f0                	mov    %eax,%esi
41a95e:	59                   	pop    %ecx
41a95f:	59                   	pop    %ecx
41a960:	85 ff                	test   %edi,%edi
41a962:	74 12                	je     0x41a976
41a964:	57                   	push   %edi
41a965:	ff 75 0c             	push   0xc(%ebp)
41a968:	53                   	push   %ebx
41a969:	56                   	push   %esi
41a96a:	e8 5f fd ff ff       	call   0x41a6ce
41a96f:	83 c4 10             	add    $0x10,%esp
41a972:	85 c0                	test   %eax,%eax
41a974:	75 4a                	jne    0x41a9c0
41a976:	ff 75 fc             	push   -0x4(%ebp)
41a979:	2b df                	sub    %edi,%ebx
41a97b:	8d 04 7e             	lea    (%esi,%edi,2),%eax
41a97e:	ff 75 08             	push   0x8(%ebp)
41a981:	53                   	push   %ebx
41a982:	50                   	push   %eax
41a983:	e8 46 fd ff ff       	call   0x41a6ce
41a988:	83 c4 10             	add    $0x10,%esp
41a98b:	85 c0                	test   %eax,%eax
41a98d:	75 31                	jne    0x41a9c0
41a98f:	8b 7d 14             	mov    0x14(%ebp),%edi
41a992:	8b cf                	mov    %edi,%ecx
41a994:	e8 ca 01 00 00       	call   0x41ab63
41a999:	8b d8                	mov    %eax,%ebx
41a99b:	85 db                	test   %ebx,%ebx
41a99d:	74 09                	je     0x41a9a8
41a99f:	56                   	push   %esi
41a9a0:	e8 66 87 ff ff       	call   0x41310b
41a9a5:	59                   	pop    %ecx
41a9a6:	eb 0b                	jmp    0x41a9b3
41a9a8:	8b 47 04             	mov    0x4(%edi),%eax
41a9ab:	89 30                	mov    %esi,(%eax)
41a9ad:	83 47 04 04          	addl   $0x4,0x4(%edi)
41a9b1:	33 db                	xor    %ebx,%ebx
41a9b3:	6a 00                	push   $0x0
41a9b5:	e8 51 87 ff ff       	call   0x41310b
41a9ba:	59                   	pop    %ecx
41a9bb:	8b c3                	mov    %ebx,%eax
41a9bd:	5e                   	pop    %esi
41a9be:	eb 8a                	jmp    0x41a94a
41a9c0:	33 c0                	xor    %eax,%eax
41a9c2:	50                   	push   %eax
41a9c3:	50                   	push   %eax
41a9c4:	50                   	push   %eax
41a9c5:	50                   	push   %eax
41a9c6:	50                   	push   %eax
41a9c7:	e8 e2 26 ff ff       	call   0x40d0ae
41a9cc:	cc                   	int3
41a9cd:	8b ff                	mov    %edi,%edi
41a9cf:	55                   	push   %ebp
41a9d0:	8b ec                	mov    %esp,%ebp
41a9d2:	81 ec 64 02 00 00    	sub    $0x264,%esp
41a9d8:	a1 14 30 43 00       	mov    0x433014,%eax
41a9dd:	33 c5                	xor    %ebp,%eax
41a9df:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a9e2:	8b 55 0c             	mov    0xc(%ebp),%edx
41a9e5:	8b 4d 10             	mov    0x10(%ebp),%ecx
41a9e8:	53                   	push   %ebx
41a9e9:	8b 5d 08             	mov    0x8(%ebp),%ebx
41a9ec:	89 8d a4 fd ff ff    	mov    %ecx,-0x25c(%ebp)
41a9f2:	56                   	push   %esi
41a9f3:	57                   	push   %edi
41a9f4:	3b d3                	cmp    %ebx,%edx
41a9f6:	74 20                	je     0x41aa18
41a9f8:	0f b7 02             	movzwl (%edx),%eax
41a9fb:	8d 8d ab fd ff ff    	lea    -0x255(%ebp),%ecx
41aa01:	50                   	push   %eax
41aa02:	e8 38 01 00 00       	call   0x41ab3f
41aa07:	84 c0                	test   %al,%al
41aa09:	75 07                	jne    0x41aa12
41aa0b:	83 ea 02             	sub    $0x2,%edx
41aa0e:	3b d3                	cmp    %ebx,%edx
41aa10:	75 e6                	jne    0x41a9f8
41aa12:	8b 8d a4 fd ff ff    	mov    -0x25c(%ebp),%ecx
41aa18:	0f b7 32             	movzwl (%edx),%esi
41aa1b:	83 fe 3a             	cmp    $0x3a,%esi
41aa1e:	75 1a                	jne    0x41aa3a
41aa20:	8d 43 02             	lea    0x2(%ebx),%eax
41aa23:	3b d0                	cmp    %eax,%edx
41aa25:	74 13                	je     0x41aa3a
41aa27:	51                   	push   %ecx
41aa28:	33 ff                	xor    %edi,%edi
41aa2a:	57                   	push   %edi
41aa2b:	57                   	push   %edi
41aa2c:	53                   	push   %ebx
41aa2d:	e8 e7 fe ff ff       	call   0x41a919
41aa32:	83 c4 10             	add    $0x10,%esp
41aa35:	e9 f6 00 00 00       	jmp    0x41ab30
41aa3a:	56                   	push   %esi
41aa3b:	8d 8d ab fd ff ff    	lea    -0x255(%ebp),%ecx
41aa41:	e8 f9 00 00 00       	call   0x41ab3f
41aa46:	2b d3                	sub    %ebx,%edx
41aa48:	0f b6 c0             	movzbl %al,%eax
41aa4b:	d1 fa                	sar    $1,%edx
41aa4d:	42                   	inc    %edx
41aa4e:	f7 d8                	neg    %eax
41aa50:	1b c0                	sbb    %eax,%eax
41aa52:	33 ff                	xor    %edi,%edi
41aa54:	57                   	push   %edi
41aa55:	57                   	push   %edi
41aa56:	23 c2                	and    %edx,%eax
41aa58:	57                   	push   %edi
41aa59:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
41aa5f:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
41aa65:	50                   	push   %eax
41aa66:	57                   	push   %edi
41aa67:	53                   	push   %ebx
41aa68:	ff 15 18 41 42 00    	call   *0x424118
41aa6e:	8b f0                	mov    %eax,%esi
41aa70:	8b 85 a4 fd ff ff    	mov    -0x25c(%ebp),%eax
41aa76:	83 fe ff             	cmp    $0xffffffff,%esi
41aa79:	75 13                	jne    0x41aa8e
41aa7b:	50                   	push   %eax
41aa7c:	57                   	push   %edi
41aa7d:	57                   	push   %edi
41aa7e:	53                   	push   %ebx
41aa7f:	e8 95 fe ff ff       	call   0x41a919
41aa84:	83 c4 10             	add    $0x10,%esp
41aa87:	8b f8                	mov    %eax,%edi
41aa89:	e9 a0 00 00 00       	jmp    0x41ab2e
41aa8e:	8b 48 04             	mov    0x4(%eax),%ecx
41aa91:	2b 08                	sub    (%eax),%ecx
41aa93:	c1 f9 02             	sar    $0x2,%ecx
41aa96:	6a 2e                	push   $0x2e
41aa98:	89 8d 9c fd ff ff    	mov    %ecx,-0x264(%ebp)
41aa9e:	59                   	pop    %ecx
41aa9f:	66 39 8d d8 fd ff ff 	cmp    %cx,-0x228(%ebp)
41aaa6:	75 1b                	jne    0x41aac3
41aaa8:	66 39 bd da fd ff ff 	cmp    %di,-0x226(%ebp)
41aaaf:	74 2d                	je     0x41aade
41aab1:	66 39 8d da fd ff ff 	cmp    %cx,-0x226(%ebp)
41aab8:	75 09                	jne    0x41aac3
41aaba:	66 39 bd dc fd ff ff 	cmp    %di,-0x224(%ebp)
41aac1:	74 1b                	je     0x41aade
41aac3:	50                   	push   %eax
41aac4:	ff b5 a0 fd ff ff    	push   -0x260(%ebp)
41aaca:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
41aad0:	53                   	push   %ebx
41aad1:	50                   	push   %eax
41aad2:	e8 42 fe ff ff       	call   0x41a919
41aad7:	83 c4 10             	add    $0x10,%esp
41aada:	85 c0                	test   %eax,%eax
41aadc:	75 47                	jne    0x41ab25
41aade:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
41aae4:	50                   	push   %eax
41aae5:	56                   	push   %esi
41aae6:	ff 15 1c 41 42 00    	call   *0x42411c
41aaec:	6a 2e                	push   $0x2e
41aaee:	85 c0                	test   %eax,%eax
41aaf0:	8b 85 a4 fd ff ff    	mov    -0x25c(%ebp),%eax
41aaf6:	59                   	pop    %ecx
41aaf7:	75 a6                	jne    0x41aa9f
41aaf9:	8b 10                	mov    (%eax),%edx
41aafb:	8b 40 04             	mov    0x4(%eax),%eax
41aafe:	8b 8d 9c fd ff ff    	mov    -0x264(%ebp),%ecx
41ab04:	2b c2                	sub    %edx,%eax
41ab06:	c1 f8 02             	sar    $0x2,%eax
41ab09:	3b c8                	cmp    %eax,%ecx
41ab0b:	74 1a                	je     0x41ab27
41ab0d:	68 d9 a6 41 00       	push   $0x41a6d9
41ab12:	2b c1                	sub    %ecx,%eax
41ab14:	6a 04                	push   $0x4
41ab16:	50                   	push   %eax
41ab17:	8d 04 8a             	lea    (%edx,%ecx,4),%eax
41ab1a:	50                   	push   %eax
41ab1b:	e8 60 66 00 00       	call   0x421180
41ab20:	83 c4 10             	add    $0x10,%esp
41ab23:	eb 02                	jmp    0x41ab27
41ab25:	8b f8                	mov    %eax,%edi
41ab27:	56                   	push   %esi
41ab28:	ff 15 14 41 42 00    	call   *0x424114
41ab2e:	8b c7                	mov    %edi,%eax
41ab30:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ab33:	5f                   	pop    %edi
41ab34:	5e                   	pop    %esi
41ab35:	33 cd                	xor    %ebp,%ecx
41ab37:	5b                   	pop    %ebx
41ab38:	e8 cf c8 fe ff       	call   0x40740c
41ab3d:	c9                   	leave
41ab3e:	c3                   	ret
41ab3f:	8b ff                	mov    %edi,%edi
41ab41:	55                   	push   %ebp
41ab42:	8b ec                	mov    %esp,%ebp
41ab44:	66 83 7d 08 2f       	cmpw   $0x2f,0x8(%ebp)
41ab49:	74 12                	je     0x41ab5d
41ab4b:	66 83 7d 08 5c       	cmpw   $0x5c,0x8(%ebp)
41ab50:	74 0b                	je     0x41ab5d
41ab52:	66 83 7d 08 3a       	cmpw   $0x3a,0x8(%ebp)
41ab57:	74 04                	je     0x41ab5d
41ab59:	32 c0                	xor    %al,%al
41ab5b:	eb 02                	jmp    0x41ab5f
41ab5d:	b0 01                	mov    $0x1,%al
41ab5f:	5d                   	pop    %ebp
41ab60:	c2 04 00             	ret    $0x4
41ab63:	8b ff                	mov    %edi,%edi
41ab65:	56                   	push   %esi
41ab66:	8b f1                	mov    %ecx,%esi
41ab68:	57                   	push   %edi
41ab69:	8b 7e 08             	mov    0x8(%esi),%edi
41ab6c:	39 7e 04             	cmp    %edi,0x4(%esi)
41ab6f:	74 04                	je     0x41ab75
41ab71:	33 c0                	xor    %eax,%eax
41ab73:	eb 72                	jmp    0x41abe7
41ab75:	83 3e 00             	cmpl   $0x0,(%esi)
41ab78:	75 26                	jne    0x41aba0
41ab7a:	6a 04                	push   $0x4
41ab7c:	6a 04                	push   $0x4
41ab7e:	e8 2b 85 ff ff       	call   0x4130ae
41ab83:	6a 00                	push   $0x0
41ab85:	89 06                	mov    %eax,(%esi)
41ab87:	e8 7f 85 ff ff       	call   0x41310b
41ab8c:	8b 06                	mov    (%esi),%eax
41ab8e:	83 c4 0c             	add    $0xc,%esp
41ab91:	85 c0                	test   %eax,%eax
41ab93:	74 18                	je     0x41abad
41ab95:	89 46 04             	mov    %eax,0x4(%esi)
41ab98:	83 c0 10             	add    $0x10,%eax
41ab9b:	89 46 08             	mov    %eax,0x8(%esi)
41ab9e:	eb d1                	jmp    0x41ab71
41aba0:	2b 3e                	sub    (%esi),%edi
41aba2:	c1 ff 02             	sar    $0x2,%edi
41aba5:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
41abab:	76 05                	jbe    0x41abb2
41abad:	6a 0c                	push   $0xc
41abaf:	58                   	pop    %eax
41abb0:	eb 35                	jmp    0x41abe7
41abb2:	53                   	push   %ebx
41abb3:	6a 04                	push   $0x4
41abb5:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
41abb8:	53                   	push   %ebx
41abb9:	ff 36                	push   (%esi)
41abbb:	e8 79 2f 00 00       	call   0x41db39
41abc0:	83 c4 0c             	add    $0xc,%esp
41abc3:	85 c0                	test   %eax,%eax
41abc5:	75 05                	jne    0x41abcc
41abc7:	6a 0c                	push   $0xc
41abc9:	5e                   	pop    %esi
41abca:	eb 10                	jmp    0x41abdc
41abcc:	89 06                	mov    %eax,(%esi)
41abce:	8d 0c b8             	lea    (%eax,%edi,4),%ecx
41abd1:	8d 04 98             	lea    (%eax,%ebx,4),%eax
41abd4:	89 4e 04             	mov    %ecx,0x4(%esi)
41abd7:	89 46 08             	mov    %eax,0x8(%esi)