4106b5:	e9 92 01 00 00       	jmp    0x41084c
4106ba:	ff 33                	push   (%ebx)
4106bc:	56                   	push   %esi
4106bd:	e8 05 ff ff ff       	call   0x4105c7
4106c2:	59                   	pop    %ecx
4106c3:	59                   	pop    %ecx
4106c4:	33 c9                	xor    %ecx,%ecx
4106c6:	85 c0                	test   %eax,%eax
4106c8:	0f 95 c1             	setne  %cl
4106cb:	85 c9                	test   %ecx,%ecx
4106cd:	75 12                	jne    0x4106e1
4106cf:	e8 33 76 ff ff       	call   0x407d07
4106d4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4106da:	e8 4f 75 ff ff       	call   0x407c2e
4106df:	eb d1                	jmp    0x4106b2
4106e1:	83 c0 08             	add    $0x8,%eax
4106e4:	32 c9                	xor    %cl,%cl
4106e6:	88 4d e3             	mov    %cl,-0x1d(%ebp)
4106e9:	89 45 d8             	mov    %eax,-0x28(%ebp)
4106ec:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
4106f0:	84 c9                	test   %cl,%cl
4106f2:	74 0b                	je     0x4106ff
4106f4:	6a 03                	push   $0x3
4106f6:	e8 aa e7 ff ff       	call   0x40eea5
4106fb:	59                   	pop    %ecx
4106fc:	8a 4d e3             	mov    -0x1d(%ebp),%cl
4106ff:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
410703:	c6 45 e2 00          	movb   $0x0,-0x1e(%ebp)
410707:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41070b:	8b 45 d8             	mov    -0x28(%ebp),%eax
41070e:	84 c9                	test   %cl,%cl
410710:	74 14                	je     0x410726
410712:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
410718:	8b ca                	mov    %edx,%ecx
41071a:	83 e1 1f             	and    $0x1f,%ecx
41071d:	33 10                	xor    (%eax),%edx
41071f:	d3 ca                	ror    %cl,%edx
410721:	8a 4d e3             	mov    -0x1d(%ebp),%cl
410724:	eb 02                	jmp    0x410728
410726:	8b 10                	mov    (%eax),%edx
410728:	8b c2                	mov    %edx,%eax
41072a:	89 45 dc             	mov    %eax,-0x24(%ebp)
41072d:	33 d2                	xor    %edx,%edx
41072f:	83 f8 01             	cmp    $0x1,%eax
410732:	0f 94 c2             	sete   %dl
410735:	89 55 c8             	mov    %edx,-0x38(%ebp)
410738:	88 55 e2             	mov    %dl,-0x1e(%ebp)
41073b:	84 d2                	test   %dl,%dl
41073d:	0f 85 8a 00 00 00    	jne    0x4107cd
410743:	85 c0                	test   %eax,%eax
410745:	75 13                	jne    0x41075a
410747:	84 c9                	test   %cl,%cl
410749:	74 08                	je     0x410753
41074b:	6a 03                	push   $0x3
41074d:	e8 9b e7 ff ff       	call   0x40eeed
410752:	59                   	pop    %ecx
410753:	6a 03                	push   $0x3
410755:	e8 77 7d ff ff       	call   0x4084d1
41075a:	3b f7                	cmp    %edi,%esi
41075c:	74 0a                	je     0x410768
41075e:	83 fe 0b             	cmp    $0xb,%esi
410761:	74 05                	je     0x410768
410763:	83 fe 04             	cmp    $0x4,%esi
410766:	75 23                	jne    0x41078b
410768:	8b 43 04             	mov    0x4(%ebx),%eax
41076b:	89 45 d0             	mov    %eax,-0x30(%ebp)
41076e:	83 63 04 00          	andl   $0x0,0x4(%ebx)
410772:	3b f7                	cmp    %edi,%esi
410774:	75 3b                	jne    0x4107b1
410776:	e8 c6 fe ff ff       	call   0x410641
41077b:	8b 00                	mov    (%eax),%eax
41077d:	89 45 cc             	mov    %eax,-0x34(%ebp)
410780:	e8 bc fe ff ff       	call   0x410641
410785:	c7 00 8c 00 00 00    	movl   $0x8c,(%eax)
41078b:	3b f7                	cmp    %edi,%esi
41078d:	75 22                	jne    0x4107b1
41078f:	6b 05 2c bf 41 00 0c 	imul   $0xc,0x41bf2c,%eax
410796:	03 03                	add    (%ebx),%eax
410798:	6b 0d 30 bf 41 00 0c 	imul   $0xc,0x41bf30,%ecx
41079f:	03 c8                	add    %eax,%ecx
4107a1:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4107a4:	3b c1                	cmp    %ecx,%eax
4107a6:	74 25                	je     0x4107cd
4107a8:	83 60 08 00          	andl   $0x0,0x8(%eax)
4107ac:	83 c0 0c             	add    $0xc,%eax
4107af:	eb f0                	jmp    0x4107a1
4107b1:	a1 0c 30 42 00       	mov    0x42300c,%eax
4107b6:	83 e0 1f             	and    $0x1f,%eax
4107b9:	6a 20                	push   $0x20
4107bb:	59                   	pop    %ecx
4107bc:	2b c8                	sub    %eax,%ecx
4107be:	33 c0                	xor    %eax,%eax
4107c0:	d3 c8                	ror    %cl,%eax
4107c2:	33 05 0c 30 42 00    	xor    0x42300c,%eax
4107c8:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4107cb:	89 01                	mov    %eax,(%ecx)
4107cd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4107d4:	e8 31 00 00 00       	call   0x41080a
4107d9:	80 7d c8 00          	cmpb   $0x0,-0x38(%ebp)
4107dd:	75 6b                	jne    0x41084a
4107df:	3b f7                	cmp    %edi,%esi
4107e1:	75 36                	jne    0x410819
4107e3:	e8 3a a2 ff ff       	call   0x40aa22
4107e8:	ff 70 08             	push   0x8(%eax)
4107eb:	57                   	push   %edi
4107ec:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4107ef:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4107f5:	ff 55 dc             	call   *-0x24(%ebp)
4107f8:	59                   	pop    %ecx
4107f9:	eb 2b                	jmp    0x410826
4107fb:	6a 08                	push   $0x8
4107fd:	5f                   	pop    %edi
4107fe:	8b 75 08             	mov    0x8(%ebp),%esi
410801:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
410804:	8a 45 e2             	mov    -0x1e(%ebp),%al
410807:	89 45 c8             	mov    %eax,-0x38(%ebp)
41080a:	80 7d e3 00          	cmpb   $0x0,-0x1d(%ebp)
41080e:	74 08                	je     0x410818
410810:	6a 03                	push   $0x3
410812:	e8 d6 e6 ff ff       	call   0x40eeed
410817:	59                   	pop    %ecx
410818:	c3                   	ret
410819:	56                   	push   %esi
41081a:	8b 4d dc             	mov    -0x24(%ebp),%ecx
41081d:	ff 15 a8 b1 41 00    	call   *0x41b1a8
410823:	ff 55 dc             	call   *-0x24(%ebp)
410826:	59                   	pop    %ecx
410827:	3b f7                	cmp    %edi,%esi
410829:	74 0a                	je     0x410835
41082b:	83 fe 0b             	cmp    $0xb,%esi
41082e:	74 05                	je     0x410835
410830:	83 fe 04             	cmp    $0x4,%esi
410833:	75 15                	jne    0x41084a
410835:	8b 45 d0             	mov    -0x30(%ebp),%eax
410838:	89 43 04             	mov    %eax,0x4(%ebx)
41083b:	3b f7                	cmp    %edi,%esi
41083d:	75 0b                	jne    0x41084a
41083f:	e8 de a1 ff ff       	call   0x40aa22
410844:	8b 4d cc             	mov    -0x34(%ebp),%ecx
410847:	89 48 08             	mov    %ecx,0x8(%eax)
41084a:	33 c0                	xor    %eax,%eax
41084c:	e8 d8 7a 00 00       	call   0x418329
410851:	c3                   	ret
410852:	8b ff                	mov    %edi,%edi
410854:	55                   	push   %ebp
410855:	8b ec                	mov    %esp,%ebp
410857:	51                   	push   %ecx
410858:	8b 55 14             	mov    0x14(%ebp),%edx
41085b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41085e:	56                   	push   %esi
41085f:	85 d2                	test   %edx,%edx
410861:	75 0d                	jne    0x410870
410863:	85 c9                	test   %ecx,%ecx
410865:	75 0d                	jne    0x410874
410867:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
41086a:	75 26                	jne    0x410892
41086c:	33 c0                	xor    %eax,%eax
41086e:	eb 33                	jmp    0x4108a3
410870:	85 c9                	test   %ecx,%ecx
410872:	74 1e                	je     0x410892
410874:	8b 45 0c             	mov    0xc(%ebp),%eax
410877:	85 c0                	test   %eax,%eax
410879:	74 17                	je     0x410892
41087b:	85 d2                	test   %edx,%edx
41087d:	75 07                	jne    0x410886
41087f:	33 c0                	xor    %eax,%eax
410881:	66 89 01             	mov    %ax,(%ecx)
410884:	eb e6                	jmp    0x41086c
410886:	8b 75 10             	mov    0x10(%ebp),%esi
410889:	85 f6                	test   %esi,%esi
41088b:	75 1b                	jne    0x4108a8
41088d:	33 c0                	xor    %eax,%eax
41088f:	66 89 01             	mov    %ax,(%ecx)
410892:	e8 70 74 ff ff       	call   0x407d07
410897:	6a 16                	push   $0x16
410899:	5e                   	pop    %esi
41089a:	89 30                	mov    %esi,(%eax)
41089c:	e8 8d 73 ff ff       	call   0x407c2e
4108a1:	8b c6                	mov    %esi,%eax
4108a3:	5e                   	pop    %esi
4108a4:	8b e5                	mov    %ebp,%esp
4108a6:	5d                   	pop    %ebp
4108a7:	c3                   	ret
4108a8:	53                   	push   %ebx
4108a9:	2b f1                	sub    %ecx,%esi
4108ab:	8b d8                	mov    %eax,%ebx
4108ad:	57                   	push   %edi
4108ae:	8b f9                	mov    %ecx,%edi
4108b0:	83 fa ff             	cmp    $0xffffffff,%edx
4108b3:	75 16                	jne    0x4108cb
4108b5:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
4108b9:	66 89 07             	mov    %ax,(%edi)
4108bc:	8d 7f 02             	lea    0x2(%edi),%edi
4108bf:	66 85 c0             	test   %ax,%ax
4108c2:	74 2c                	je     0x4108f0
4108c4:	83 eb 01             	sub    $0x1,%ebx
4108c7:	75 ec                	jne    0x4108b5
4108c9:	eb 25                	jmp    0x4108f0
4108cb:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
4108cf:	66 89 07             	mov    %ax,(%edi)
4108d2:	8d 7f 02             	lea    0x2(%edi),%edi
4108d5:	66 85 c0             	test   %ax,%ax
4108d8:	74 0a                	je     0x4108e4
4108da:	83 eb 01             	sub    $0x1,%ebx
4108dd:	74 05                	je     0x4108e4
4108df:	83 ea 01             	sub    $0x1,%edx
4108e2:	75 e7                	jne    0x4108cb
4108e4:	85 d2                	test   %edx,%edx
4108e6:	8b 55 14             	mov    0x14(%ebp),%edx
4108e9:	75 05                	jne    0x4108f0
4108eb:	33 c0                	xor    %eax,%eax
4108ed:	66 89 07             	mov    %ax,(%edi)
4108f0:	5f                   	pop    %edi
4108f1:	85 db                	test   %ebx,%ebx
4108f3:	5b                   	pop    %ebx
4108f4:	0f 85 72 ff ff ff    	jne    0x41086c
4108fa:	83 fa ff             	cmp    $0xffffffff,%edx
4108fd:	75 0f                	jne    0x41090e
4108ff:	8b 45 0c             	mov    0xc(%ebp),%eax
410902:	33 d2                	xor    %edx,%edx
410904:	6a 50                	push   $0x50
410906:	66 89 54 41 fe       	mov    %dx,-0x2(%ecx,%eax,2)
41090b:	58                   	pop    %eax
41090c:	eb 95                	jmp    0x4108a3
41090e:	33 c0                	xor    %eax,%eax
410910:	66 89 01             	mov    %ax,(%ecx)
410913:	e8 ef 73 ff ff       	call   0x407d07
410918:	6a 22                	push   $0x22
41091a:	e9 7a ff ff ff       	jmp    0x410899
41091f:	8b ff                	mov    %edi,%edi
410921:	55                   	push   %ebp
410922:	8b ec                	mov    %esp,%ebp
410924:	5d                   	pop    %ebp
410925:	e9 28 ff ff ff       	jmp    0x410852
41092a:	8b ff                	mov    %edi,%edi
41092c:	55                   	push   %ebp
41092d:	8b ec                	mov    %esp,%ebp
41092f:	51                   	push   %ecx
410930:	e8 ed a0 ff ff       	call   0x40aa22
410935:	8b 48 4c             	mov    0x4c(%eax),%ecx
410938:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41093b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41093e:	51                   	push   %ecx
41093f:	50                   	push   %eax
410940:	e8 2c a2 ff ff       	call   0x40ab71
410945:	8b 45 fc             	mov    -0x4(%ebp),%eax
410948:	59                   	pop    %ecx
410949:	59                   	pop    %ecx
41094a:	8b 00                	mov    (%eax),%eax
41094c:	8b e5                	mov    %ebp,%esp
41094e:	5d                   	pop    %ebp
41094f:	c3                   	ret
410950:	8b ff                	mov    %edi,%edi
410952:	55                   	push   %ebp
410953:	8b ec                	mov    %esp,%ebp
410955:	51                   	push   %ecx
410956:	e8 c7 a0 ff ff       	call   0x40aa22
41095b:	8b 48 4c             	mov    0x4c(%eax),%ecx
41095e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410961:	8d 4d fc             	lea    -0x4(%ebp),%ecx
410964:	51                   	push   %ecx
410965:	50                   	push   %eax
410966:	e8 06 a2 ff ff       	call   0x40ab71
41096b:	8b 45 fc             	mov    -0x4(%ebp),%eax
41096e:	59                   	pop    %ecx
41096f:	59                   	pop    %ecx
410970:	8b 40 08             	mov    0x8(%eax),%eax
410973:	8b e5                	mov    %ebp,%esp
410975:	5d                   	pop    %ebp
410976:	c3                   	ret
410977:	8b ff                	mov    %edi,%edi
410979:	55                   	push   %ebp
41097a:	8b ec                	mov    %esp,%ebp
41097c:	56                   	push   %esi
41097d:	8b 75 08             	mov    0x8(%ebp),%esi
410980:	85 f6                	test   %esi,%esi
410982:	0f 84 ea 00 00 00    	je     0x410a72
410988:	8b 46 0c             	mov    0xc(%esi),%eax
41098b:	3b 05 dc 37 42 00    	cmp    0x4237dc,%eax
410991:	74 07                	je     0x41099a
410993:	50                   	push   %eax
410994:	e8 8b 8e ff ff       	call   0x409824
410999:	59                   	pop    %ecx
41099a:	8b 46 10             	mov    0x10(%esi),%eax
41099d:	3b 05 e0 37 42 00    	cmp    0x4237e0,%eax
4109a3:	74 07                	je     0x4109ac
4109a5:	50                   	push   %eax
4109a6:	e8 79 8e ff ff       	call   0x409824
4109ab:	59                   	pop    %ecx
4109ac:	8b 46 14             	mov    0x14(%esi),%eax
4109af:	3b 05 e4 37 42 00    	cmp    0x4237e4,%eax
4109b5:	74 07                	je     0x4109be
4109b7:	50                   	push   %eax
4109b8:	e8 67 8e ff ff       	call   0x409824
4109bd:	59                   	pop    %ecx
4109be:	8b 46 18             	mov    0x18(%esi),%eax
4109c1:	3b 05 e8 37 42 00    	cmp    0x4237e8,%eax
4109c7:	74 07                	je     0x4109d0
4109c9:	50                   	push   %eax
4109ca:	e8 55 8e ff ff       	call   0x409824
4109cf:	59                   	pop    %ecx
4109d0:	8b 46 1c             	mov    0x1c(%esi),%eax
4109d3:	3b 05 ec 37 42 00    	cmp    0x4237ec,%eax
4109d9:	74 07                	je     0x4109e2
4109db:	50                   	push   %eax
4109dc:	e8 43 8e ff ff       	call   0x409824
4109e1:	59                   	pop    %ecx
4109e2:	8b 46 20             	mov    0x20(%esi),%eax
4109e5:	3b 05 f0 37 42 00    	cmp    0x4237f0,%eax
4109eb:	74 07                	je     0x4109f4
4109ed:	50                   	push   %eax
4109ee:	e8 31 8e ff ff       	call   0x409824
4109f3:	59                   	pop    %ecx
4109f4:	8b 46 24             	mov    0x24(%esi),%eax
4109f7:	3b 05 f4 37 42 00    	cmp    0x4237f4,%eax
4109fd:	74 07                	je     0x410a06
4109ff:	50                   	push   %eax
410a00:	e8 1f 8e ff ff       	call   0x409824
410a05:	59                   	pop    %ecx
410a06:	8b 46 38             	mov    0x38(%esi),%eax
410a09:	3b 05 08 38 42 00    	cmp    0x423808,%eax
410a0f:	74 07                	je     0x410a18
410a11:	50                   	push   %eax
410a12:	e8 0d 8e ff ff       	call   0x409824
410a17:	59                   	pop    %ecx
410a18:	8b 46 3c             	mov    0x3c(%esi),%eax
410a1b:	3b 05 0c 38 42 00    	cmp    0x42380c,%eax
410a21:	74 07                	je     0x410a2a
410a23:	50                   	push   %eax
410a24:	e8 fb 8d ff ff       	call   0x409824
410a29:	59                   	pop    %ecx
410a2a:	8b 46 40             	mov    0x40(%esi),%eax
410a2d:	3b 05 10 38 42 00    	cmp    0x423810,%eax
410a33:	74 07                	je     0x410a3c
410a35:	50                   	push   %eax
410a36:	e8 e9 8d ff ff       	call   0x409824
410a3b:	59                   	pop    %ecx
410a3c:	8b 46 44             	mov    0x44(%esi),%eax
410a3f:	3b 05 14 38 42 00    	cmp    0x423814,%eax
410a45:	74 07                	je     0x410a4e
410a47:	50                   	push   %eax
410a48:	e8 d7 8d ff ff       	call   0x409824
410a4d:	59                   	pop    %ecx
410a4e:	8b 46 48             	mov    0x48(%esi),%eax
410a51:	3b 05 18 38 42 00    	cmp    0x423818,%eax
410a57:	74 07                	je     0x410a60
410a59:	50                   	push   %eax
410a5a:	e8 c5 8d ff ff       	call   0x409824
410a5f:	59                   	pop    %ecx
410a60:	8b 46 4c             	mov    0x4c(%esi),%eax