4137fb:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4137fe:	0f 85 a8 01 00 00    	jne    0x4139ac
413804:	8b 45 f8             	mov    -0x8(%ebp),%eax
413807:	b9 00 00 00 c0       	mov    $0xc0000000,%ecx
41380c:	23 c1                	and    %ecx,%eax
41380e:	3d 00 00 00 40       	cmp    $0x40000000,%eax
413813:	0f 84 b7 00 00 00    	je     0x4138d0
413819:	3d 00 00 00 80       	cmp    $0x80000000,%eax
41381e:	74 77                	je     0x413897
413820:	3b c1                	cmp    %ecx,%eax
413822:	0f 85 84 01 00 00    	jne    0x4139ac
413828:	8b 45 ec             	mov    -0x14(%ebp),%eax
41382b:	3b c3                	cmp    %ebx,%eax
41382d:	0f 86 79 01 00 00    	jbe    0x4139ac
413833:	83 f8 02             	cmp    $0x2,%eax
413836:	76 0e                	jbe    0x413846
413838:	83 f8 04             	cmp    $0x4,%eax
41383b:	76 30                	jbe    0x41386d
41383d:	83 f8 05             	cmp    $0x5,%eax
413840:	0f 85 66 01 00 00    	jne    0x4139ac
413846:	0f be 45 fe          	movsbl -0x2(%ebp),%eax
41384a:	33 ff                	xor    %edi,%edi
41384c:	48                   	dec    %eax
41384d:	0f 84 26 01 00 00    	je     0x413979
413853:	48                   	dec    %eax
413854:	0f 85 52 01 00 00    	jne    0x4139ac
41385a:	c7 45 e8 ff fe 00 00 	movl   $0xfeff,-0x18(%ebp)
413861:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
413868:	e9 1a 01 00 00       	jmp    0x413987
41386d:	6a 02                	push   $0x2
41386f:	53                   	push   %ebx
413870:	53                   	push   %ebx
413871:	ff 36                	push   (%esi)
413873:	e8 16 e9 ff ff       	call   0x41218e
413878:	83 c4 10             	add    $0x10,%esp
41387b:	0b c2                	or     %edx,%eax
41387d:	74 c7                	je     0x413846
41387f:	53                   	push   %ebx
413880:	53                   	push   %ebx
413881:	53                   	push   %ebx
413882:	ff 36                	push   (%esi)
413884:	e8 05 e9 ff ff       	call   0x41218e
413889:	23 c2                	and    %edx,%eax
41388b:	83 c4 10             	add    $0x10,%esp
41388e:	83 f8 ff             	cmp    $0xffffffff,%eax
413891:	0f 84 8e fe ff ff    	je     0x413725
413897:	6a 03                	push   $0x3
413899:	8d 45 e8             	lea    -0x18(%ebp),%eax
41389c:	50                   	push   %eax
41389d:	ff 36                	push   (%esi)
41389f:	e8 6c 27 00 00       	call   0x416010
4138a4:	83 c4 0c             	add    $0xc,%esp
4138a7:	83 f8 ff             	cmp    $0xffffffff,%eax
4138aa:	0f 84 75 fe ff ff    	je     0x413725
4138b0:	83 f8 02             	cmp    $0x2,%eax
4138b3:	74 6b                	je     0x413920
4138b5:	83 f8 03             	cmp    $0x3,%eax
4138b8:	0f 85 ad 00 00 00    	jne    0x41396b
4138be:	81 7d e8 ef bb bf 00 	cmpl   $0xbfbbef,-0x18(%ebp)
4138c5:	75 59                	jne    0x413920
4138c7:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
4138cb:	e9 dc 00 00 00       	jmp    0x4139ac
4138d0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4138d3:	3b c3                	cmp    %ebx,%eax
4138d5:	0f 86 d1 00 00 00    	jbe    0x4139ac
4138db:	83 f8 02             	cmp    $0x2,%eax
4138de:	0f 86 62 ff ff ff    	jbe    0x413846
4138e4:	83 f8 04             	cmp    $0x4,%eax
4138e7:	0f 87 50 ff ff ff    	ja     0x41383d
4138ed:	6a 02                	push   $0x2
4138ef:	53                   	push   %ebx
4138f0:	53                   	push   %ebx
4138f1:	ff 36                	push   (%esi)
4138f3:	e8 96 e8 ff ff       	call   0x41218e
4138f8:	83 c4 10             	add    $0x10,%esp
4138fb:	0b c2                	or     %edx,%eax
4138fd:	0f 84 43 ff ff ff    	je     0x413846
413903:	53                   	push   %ebx
413904:	53                   	push   %ebx
413905:	53                   	push   %ebx
413906:	ff 36                	push   (%esi)
413908:	e8 81 e8 ff ff       	call   0x41218e
41390d:	83 c4 10             	add    $0x10,%esp
413910:	23 c2                	and    %edx,%eax
413912:	83 f8 ff             	cmp    $0xffffffff,%eax
413915:	0f 85 91 00 00 00    	jne    0x4139ac
41391b:	e9 05 fe ff ff       	jmp    0x413725
413920:	8b 45 e8             	mov    -0x18(%ebp),%eax
413923:	25 ff ff 00 00       	and    $0xffff,%eax
413928:	3d fe ff 00 00       	cmp    $0xfffe,%eax
41392d:	75 19                	jne    0x413948
41392f:	ff 36                	push   (%esi)
413931:	e8 82 89 ff ff       	call   0x40c2b8
413936:	59                   	pop    %ecx
413937:	e8 99 21 ff ff       	call   0x405ad5
41393c:	6a 16                	push   $0x16
41393e:	5e                   	pop    %esi
41393f:	89 30                	mov    %esi,(%eax)
413941:	8b c6                	mov    %esi,%eax
413943:	e9 64 01 00 00       	jmp    0x413aac
413948:	3d ff fe 00 00       	cmp    $0xfeff,%eax
41394d:	75 1c                	jne    0x41396b
41394f:	53                   	push   %ebx
413950:	6a 02                	push   $0x2
413952:	ff 36                	push   (%esi)
413954:	e8 d7 86 ff ff       	call   0x40c030
413959:	83 c4 0c             	add    $0xc,%esp
41395c:	83 f8 ff             	cmp    $0xffffffff,%eax
41395f:	0f 84 c0 fd ff ff    	je     0x413725
413965:	c6 45 fe 02          	movb   $0x2,-0x2(%ebp)
413969:	eb 41                	jmp    0x4139ac
41396b:	53                   	push   %ebx
41396c:	53                   	push   %ebx
41396d:	ff 36                	push   (%esi)
41396f:	e8 bc 86 ff ff       	call   0x40c030
413974:	83 c4 0c             	add    $0xc,%esp
413977:	eb 99                	jmp    0x413912
413979:	c7 45 e8 ef bb bf 00 	movl   $0xbfbbef,-0x18(%ebp)
413980:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
413987:	8b 45 ec             	mov    -0x14(%ebp),%eax
41398a:	2b c7                	sub    %edi,%eax
41398c:	50                   	push   %eax
41398d:	8d 44 3d e8          	lea    -0x18(%ebp,%edi,1),%eax
413991:	50                   	push   %eax
413992:	ff 36                	push   (%esi)
413994:	e8 c6 f0 ff ff       	call   0x412a5f
413999:	83 c4 0c             	add    $0xc,%esp
41399c:	83 f8 ff             	cmp    $0xffffffff,%eax
41399f:	0f 84 80 fd ff ff    	je     0x413725
4139a5:	03 f8                	add    %eax,%edi
4139a7:	39 7d ec             	cmp    %edi,-0x14(%ebp)
4139aa:	7f db                	jg     0x413987
4139ac:	8b 06                	mov    (%esi),%eax
4139ae:	8b c8                	mov    %eax,%ecx
4139b0:	c1 f9 05             	sar    $0x5,%ecx
4139b3:	8b 0c 8d 60 12 c7 00 	mov    0xc71260(,%ecx,4),%ecx
4139ba:	83 e0 1f             	and    $0x1f,%eax
4139bd:	c1 e0 06             	shl    $0x6,%eax
4139c0:	8d 44 01 24          	lea    0x24(%ecx,%eax,1),%eax
4139c4:	8a 08                	mov    (%eax),%cl
4139c6:	32 4d fe             	xor    -0x2(%ebp),%cl
4139c9:	80 e1 7f             	and    $0x7f,%cl
4139cc:	30 08                	xor    %cl,(%eax)
4139ce:	8b 06                	mov    (%esi),%eax
4139d0:	8b c8                	mov    %eax,%ecx
4139d2:	c1 f9 05             	sar    $0x5,%ecx
4139d5:	8b 0c 8d 60 12 c7 00 	mov    0xc71260(,%ecx,4),%ecx
4139dc:	83 e0 1f             	and    $0x1f,%eax
4139df:	c1 e0 06             	shl    $0x6,%eax
4139e2:	8d 44 01 24          	lea    0x24(%ecx,%eax,1),%eax
4139e6:	8b 4d 10             	mov    0x10(%ebp),%ecx
4139e9:	8a 10                	mov    (%eax),%dl
4139eb:	c1 e9 10             	shr    $0x10,%ecx
4139ee:	c0 e1 07             	shl    $0x7,%cl
4139f1:	80 e2 7f             	and    $0x7f,%dl
4139f4:	0a ca                	or     %dl,%cl
4139f6:	88 08                	mov    %cl,(%eax)
4139f8:	38 5d fd             	cmp    %bl,-0x3(%ebp)
4139fb:	75 21                	jne    0x413a1e
4139fd:	f6 45 10 08          	testb  $0x8,0x10(%ebp)
413a01:	74 1b                	je     0x413a1e
413a03:	8b 06                	mov    (%esi),%eax
413a05:	8b c8                	mov    %eax,%ecx
413a07:	83 e0 1f             	and    $0x1f,%eax
413a0a:	c1 f9 05             	sar    $0x5,%ecx
413a0d:	8b 0c 8d 60 12 c7 00 	mov    0xc71260(,%ecx,4),%ecx
413a14:	c1 e0 06             	shl    $0x6,%eax
413a17:	8d 44 01 04          	lea    0x4(%ecx,%eax,1),%eax
413a1b:	80 08 20             	orb    $0x20,(%eax)
413a1e:	8b 7d f8             	mov    -0x8(%ebp),%edi
413a21:	b8 00 00 00 c0       	mov    $0xc0000000,%eax
413a26:	8b cf                	mov    %edi,%ecx
413a28:	23 c8                	and    %eax,%ecx
413a2a:	3b c8                	cmp    %eax,%ecx
413a2c:	75 7c                	jne    0x413aaa
413a2e:	f6 45 10 01          	testb  $0x1,0x10(%ebp)
413a32:	74 76                	je     0x413aaa
413a34:	ff 75 e4             	push   -0x1c(%ebp)
413a37:	ff 15 14 a1 41 00    	call   *0x41a114
413a3d:	53                   	push   %ebx
413a3e:	ff 75 f4             	push   -0xc(%ebp)
413a41:	8d 45 d0             	lea    -0x30(%ebp),%eax
413a44:	6a 03                	push   $0x3
413a46:	50                   	push   %eax
413a47:	ff 75 f0             	push   -0x10(%ebp)
413a4a:	81 e7 ff ff ff 7f    	and    $0x7fffffff,%edi
413a50:	57                   	push   %edi
413a51:	ff 75 0c             	push   0xc(%ebp)
413a54:	ff 15 64 a1 41 00    	call   *0x41a164
413a5a:	83 f8 ff             	cmp    $0xffffffff,%eax
413a5d:	75 34                	jne    0x413a93
413a5f:	ff 15 98 a0 41 00    	call   *0x41a098
413a65:	50                   	push   %eax
413a66:	e8 90 20 ff ff       	call   0x405afb
413a6b:	8b 06                	mov    (%esi),%eax
413a6d:	8b c8                	mov    %eax,%ecx
413a6f:	83 e0 1f             	and    $0x1f,%eax
413a72:	c1 f9 05             	sar    $0x5,%ecx
413a75:	8b 0c 8d 60 12 c7 00 	mov    0xc71260(,%ecx,4),%ecx
413a7c:	c1 e0 06             	shl    $0x6,%eax
413a7f:	8d 44 01 04          	lea    0x4(%ecx,%eax,1),%eax
413a83:	80 20 fe             	andb   $0xfe,(%eax)
413a86:	ff 36                	push   (%esi)
413a88:	e8 ae 16 00 00       	call   0x41513b
413a8d:	59                   	pop    %ecx
413a8e:	e9 98 fb ff ff       	jmp    0x41362b
413a93:	8b 36                	mov    (%esi),%esi
413a95:	8b ce                	mov    %esi,%ecx
413a97:	c1 f9 05             	sar    $0x5,%ecx
413a9a:	8b 0c 8d 60 12 c7 00 	mov    0xc71260(,%ecx,4),%ecx
413aa1:	83 e6 1f             	and    $0x1f,%esi
413aa4:	c1 e6 06             	shl    $0x6,%esi
413aa7:	89 04 0e             	mov    %eax,(%esi,%ecx,1)
413aaa:	8b c3                	mov    %ebx,%eax
413aac:	5f                   	pop    %edi
413aad:	5e                   	pop    %esi
413aae:	5b                   	pop    %ebx
413aaf:	c9                   	leave
413ab0:	c3                   	ret
413ab1:	6a 14                	push   $0x14
413ab3:	68 90 9a 42 00       	push   $0x429a90
413ab8:	e8 1f 69 ff ff       	call   0x40a3dc
413abd:	33 f6                	xor    %esi,%esi
413abf:	89 75 e4             	mov    %esi,-0x1c(%ebp)
413ac2:	33 c0                	xor    %eax,%eax
413ac4:	8b 7d 18             	mov    0x18(%ebp),%edi
413ac7:	3b fe                	cmp    %esi,%edi
413ac9:	0f 95 c0             	setne  %al
413acc:	3b c6                	cmp    %esi,%eax
413ace:	75 1b                	jne    0x413aeb
413ad0:	e8 00 20 ff ff       	call   0x405ad5
413ad5:	6a 16                	push   $0x16
413ad7:	5f                   	pop    %edi
413ad8:	89 38                	mov    %edi,(%eax)
413ada:	56                   	push   %esi
413adb:	56                   	push   %esi
413adc:	56                   	push   %esi
413add:	56                   	push   %esi
413ade:	56                   	push   %esi
413adf:	e8 41 17 ff ff       	call   0x405225
413ae4:	83 c4 14             	add    $0x14,%esp
413ae7:	8b c7                	mov    %edi,%eax
413ae9:	eb 59                	jmp    0x413b44
413aeb:	83 0f ff             	orl    $0xffffffff,(%edi)
413aee:	33 c0                	xor    %eax,%eax
413af0:	39 75 08             	cmp    %esi,0x8(%ebp)
413af3:	0f 95 c0             	setne  %al
413af6:	3b c6                	cmp    %esi,%eax
413af8:	74 d6                	je     0x413ad0
413afa:	39 75 1c             	cmp    %esi,0x1c(%ebp)
413afd:	74 0f                	je     0x413b0e
413aff:	8b 45 14             	mov    0x14(%ebp),%eax
413b02:	25 7f fe ff ff       	and    $0xfffffe7f,%eax
413b07:	f7 d8                	neg    %eax
413b09:	1b c0                	sbb    %eax,%eax
413b0b:	40                   	inc    %eax
413b0c:	74 c2                	je     0x413ad0
413b0e:	89 75 fc             	mov    %esi,-0x4(%ebp)
413b11:	ff 75 14             	push   0x14(%ebp)
413b14:	ff 75 10             	push   0x10(%ebp)
413b17:	ff 75 0c             	push   0xc(%ebp)
413b1a:	ff 75 08             	push   0x8(%ebp)
413b1d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
413b20:	50                   	push   %eax
413b21:	8b c7                	mov    %edi,%eax
413b23:	e8 6a f8 ff ff       	call   0x413392
413b28:	83 c4 14             	add    $0x14,%esp
413b2b:	89 45 e0             	mov    %eax,-0x20(%ebp)
413b2e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
413b35:	e8 15 00 00 00       	call   0x413b4f
413b3a:	8b 45 e0             	mov    -0x20(%ebp),%eax
413b3d:	3b c6                	cmp    %esi,%eax
413b3f:	74 03                	je     0x413b44
413b41:	83 0f ff             	orl    $0xffffffff,(%edi)
413b44:	e8 d8 68 ff ff       	call   0x40a421
413b49:	c3                   	ret
413b4a:	33 f6                	xor    %esi,%esi
413b4c:	8b 7d 18             	mov    0x18(%ebp),%edi
413b4f:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
413b52:	74 28                	je     0x413b7c
413b54:	39 75 e0             	cmp    %esi,-0x20(%ebp)
413b57:	74 1b                	je     0x413b74
413b59:	8b 07                	mov    (%edi),%eax
413b5b:	8b c8                	mov    %eax,%ecx
413b5d:	c1 f9 05             	sar    $0x5,%ecx
413b60:	83 e0 1f             	and    $0x1f,%eax
413b63:	c1 e0 06             	shl    $0x6,%eax
413b66:	8b 0c 8d 60 12 c7 00 	mov    0xc71260(,%ecx,4),%ecx
413b6d:	8d 44 01 04          	lea    0x4(%ecx,%eax,1),%eax
413b71:	80 20 fe             	andb   $0xfe,(%eax)
413b74:	ff 37                	push   (%edi)
413b76:	e8 5d 17 00 00       	call   0x4152d8
413b7b:	59                   	pop    %ecx
413b7c:	c3                   	ret
413b7d:	8b ff                	mov    %edi,%edi
413b7f:	55                   	push   %ebp
413b80:	8b ec                	mov    %esp,%ebp
413b82:	6a 01                	push   $0x1
413b84:	ff 75 08             	push   0x8(%ebp)
413b87:	ff 75 18             	push   0x18(%ebp)
413b8a:	ff 75 14             	push   0x14(%ebp)
413b8d:	ff 75 10             	push   0x10(%ebp)
413b90:	ff 75 0c             	push   0xc(%ebp)
413b93:	e8 19 ff ff ff       	call   0x413ab1
413b98:	83 c4 18             	add    $0x18,%esp
413b9b:	5d                   	pop    %ebp
413b9c:	c3                   	ret
413b9d:	8b ff                	mov    %edi,%edi
413b9f:	55                   	push   %ebp
413ba0:	8b ec                	mov    %esp,%ebp
413ba2:	83 ec 18             	sub    $0x18,%esp
413ba5:	53                   	push   %ebx
413ba6:	ff 75 14             	push   0x14(%ebp)
413ba9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
413bac:	e8 b3 3c ff ff       	call   0x407864
413bb1:	33 db                	xor    %ebx,%ebx
413bb3:	39 5d 10             	cmp    %ebx,0x10(%ebp)
413bb6:	75 13                	jne    0x413bcb
413bb8:	38 5d f4             	cmp    %bl,-0xc(%ebp)
413bbb:	74 07                	je     0x413bc4
413bbd:	8b 45 f0             	mov    -0x10(%ebp),%eax
413bc0:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
413bc4:	33 c0                	xor    %eax,%eax
413bc6:	e9 e6 01 00 00       	jmp    0x413db1
413bcb:	8b 45 ec             	mov    -0x14(%ebp),%eax
413bce:	39 58 08             	cmp    %ebx,0x8(%eax)
413bd1:	75 26                	jne    0x413bf9
413bd3:	ff 75 10             	push   0x10(%ebp)
413bd6:	ff 75 0c             	push   0xc(%ebp)
413bd9:	ff 75 08             	push   0x8(%ebp)
413bdc:	e8 f1 1f 00 00       	call   0x415bd2
413be1:	83 c4 0c             	add    $0xc,%esp
413be4:	38 5d f4             	cmp    %bl,-0xc(%ebp)
413be7:	0f 84 c4 01 00 00    	je     0x413db1
413bed:	8b 4d f0             	mov    -0x10(%ebp),%ecx
413bf0:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
413bf4:	e9 b8 01 00 00       	jmp    0x413db1
413bf9:	39 5d 08             	cmp    %ebx,0x8(%ebp)
413bfc:	75 2e                	jne    0x413c2c
413bfe:	e8 d2 1e ff ff       	call   0x405ad5
413c03:	53                   	push   %ebx
413c04:	53                   	push   %ebx
413c05:	53                   	push   %ebx
413c06:	53                   	push   %ebx
413c07:	53                   	push   %ebx
413c08:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
413c0e:	e8 12 16 ff ff       	call   0x405225
413c13:	83 c4 14             	add    $0x14,%esp
413c16:	38 5d f4             	cmp    %bl,-0xc(%ebp)
413c19:	74 07                	je     0x413c22