41d7b0:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
41d7b4:	74 08                	je     0x41d7be
41d7b6:	8b 46 0c             	mov    0xc(%esi),%eax
41d7b9:	8b 40 04             	mov    0x4(%eax),%eax
41d7bc:	eb 45                	jmp    0x41d803
41d7be:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
41d7c2:	c7 46 18 2a 00 00 00 	movl   $0x2a,0x18(%esi)
41d7c9:	e9 7c ff ff ff       	jmp    0x41d74a
41d7ce:	33 c0                	xor    %eax,%eax
41d7d0:	39 45 08             	cmp    %eax,0x8(%ebp)
41d7d3:	0f 95 c0             	setne  %al
41d7d6:	50                   	push   %eax
41d7d7:	ff 75 08             	push   0x8(%ebp)
41d7da:	6a 01                	push   $0x1
41d7dc:	57                   	push   %edi
41d7dd:	6a 09                	push   $0x9
41d7df:	ff 75 fc             	push   -0x4(%ebp)
41d7e2:	e8 c1 2f 00 00       	call   0x4207a8
41d7e7:	83 c4 18             	add    $0x18,%esp
41d7ea:	85 c0                	test   %eax,%eax
41d7ec:	74 d0                	je     0x41d7be
41d7ee:	33 c0                	xor    %eax,%eax
41d7f0:	40                   	inc    %eax
41d7f1:	eb 10                	jmp    0x41d803
41d7f3:	33 d2                	xor    %edx,%edx
41d7f5:	89 15 e0 f7 43 00    	mov    %edx,0x43f7e0
41d7fb:	89 15 e4 f7 43 00    	mov    %edx,0x43f7e4
41d801:	33 c0                	xor    %eax,%eax
41d803:	5f                   	pop    %edi
41d804:	5e                   	pop    %esi
41d805:	5b                   	pop    %ebx
41d806:	c9                   	leave
41d807:	c3                   	ret
41d808:	8b ff                	mov    %edi,%edi
41d80a:	55                   	push   %ebp
41d80b:	8b ec                	mov    %esp,%ebp
41d80d:	83 ec 28             	sub    $0x28,%esp
41d810:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41d813:	56                   	push   %esi
41d814:	ff 75 14             	push   0x14(%ebp)
41d817:	e8 c6 f8 fe ff       	call   0x40d0e2
41d81c:	8d 45 d8             	lea    -0x28(%ebp),%eax
41d81f:	50                   	push   %eax
41d820:	ff 75 10             	push   0x10(%ebp)
41d823:	ff 75 0c             	push   0xc(%ebp)
41d826:	ff 75 08             	push   0x8(%ebp)
41d829:	e8 a7 fe ff ff       	call   0x41d6d5
41d82e:	83 c4 10             	add    $0x10,%esp
41d831:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41d834:	8b f0                	mov    %eax,%esi
41d836:	e8 ef f8 fe ff       	call   0x40d12a
41d83b:	8b c6                	mov    %esi,%eax
41d83d:	5e                   	pop    %esi
41d83e:	c9                   	leave
41d83f:	c3                   	ret
41d840:	8b ff                	mov    %edi,%edi
41d842:	55                   	push   %ebp
41d843:	8b ec                	mov    %esp,%ebp
41d845:	8b 45 08             	mov    0x8(%ebp),%eax
41d848:	85 c0                	test   %eax,%eax
41d84a:	75 15                	jne    0x41d861
41d84c:	e8 20 ee ff ff       	call   0x41c671
41d851:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41d857:	e8 92 fb fe ff       	call   0x40d3ee
41d85c:	83 c8 ff             	or     $0xffffffff,%eax
41d85f:	5d                   	pop    %ebp
41d860:	c3                   	ret
41d861:	8b 40 10             	mov    0x10(%eax),%eax
41d864:	90                   	nop
41d865:	5d                   	pop    %ebp
41d866:	c3                   	ret
41d867:	a1 e8 f7 43 00       	mov    0x43f7e8,%eax
41d86c:	56                   	push   %esi
41d86d:	6a 03                	push   $0x3
41d86f:	5e                   	pop    %esi
41d870:	85 c0                	test   %eax,%eax
41d872:	75 07                	jne    0x41d87b
41d874:	b8 00 02 00 00       	mov    $0x200,%eax
41d879:	eb 06                	jmp    0x41d881
41d87b:	3b c6                	cmp    %esi,%eax
41d87d:	7d 07                	jge    0x41d886
41d87f:	8b c6                	mov    %esi,%eax
41d881:	a3 e8 f7 43 00       	mov    %eax,0x43f7e8
41d886:	6a 04                	push   $0x4
41d888:	50                   	push   %eax
41d889:	e8 22 93 fe ff       	call   0x406bb0
41d88e:	6a 00                	push   $0x0
41d890:	a3 ec f7 43 00       	mov    %eax,0x43f7ec
41d895:	e8 76 93 fe ff       	call   0x406c10
41d89a:	83 c4 0c             	add    $0xc,%esp
41d89d:	83 3d ec f7 43 00 00 	cmpl   $0x0,0x43f7ec
41d8a4:	75 2b                	jne    0x41d8d1
41d8a6:	6a 04                	push   $0x4
41d8a8:	56                   	push   %esi
41d8a9:	89 35 e8 f7 43 00    	mov    %esi,0x43f7e8
41d8af:	e8 fc 92 fe ff       	call   0x406bb0
41d8b4:	6a 00                	push   $0x0
41d8b6:	a3 ec f7 43 00       	mov    %eax,0x43f7ec
41d8bb:	e8 50 93 fe ff       	call   0x406c10
41d8c0:	83 c4 0c             	add    $0xc,%esp
41d8c3:	83 3d ec f7 43 00 00 	cmpl   $0x0,0x43f7ec
41d8ca:	75 05                	jne    0x41d8d1
41d8cc:	83 c8 ff             	or     $0xffffffff,%eax
41d8cf:	5e                   	pop    %esi
41d8d0:	c3                   	ret
41d8d1:	57                   	push   %edi
41d8d2:	33 ff                	xor    %edi,%edi
41d8d4:	be 28 d2 43 00       	mov    $0x43d228,%esi
41d8d9:	6a 00                	push   $0x0
41d8db:	68 a0 0f 00 00       	push   $0xfa0
41d8e0:	8d 46 20             	lea    0x20(%esi),%eax
41d8e3:	50                   	push   %eax
41d8e4:	e8 df 0c 00 00       	call   0x41e5c8
41d8e9:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
41d8ee:	8b d7                	mov    %edi,%edx
41d8f0:	c1 fa 06             	sar    $0x6,%edx
41d8f3:	89 34 b8             	mov    %esi,(%eax,%edi,4)
41d8f6:	8b c7                	mov    %edi,%eax
41d8f8:	83 e0 3f             	and    $0x3f,%eax
41d8fb:	6b c8 38             	imul   $0x38,%eax,%ecx
41d8fe:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
41d905:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
41d909:	83 f8 ff             	cmp    $0xffffffff,%eax
41d90c:	74 09                	je     0x41d917
41d90e:	83 f8 fe             	cmp    $0xfffffffe,%eax
41d911:	74 04                	je     0x41d917
41d913:	85 c0                	test   %eax,%eax
41d915:	75 07                	jne    0x41d91e
41d917:	c7 46 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%esi)
41d91e:	83 c6 38             	add    $0x38,%esi
41d921:	47                   	inc    %edi
41d922:	81 fe d0 d2 43 00    	cmp    $0x43d2d0,%esi
41d928:	75 af                	jne    0x41d8d9
41d92a:	5f                   	pop    %edi
41d92b:	33 c0                	xor    %eax,%eax
41d92d:	5e                   	pop    %esi
41d92e:	c3                   	ret
41d92f:	8b ff                	mov    %edi,%edi
41d931:	55                   	push   %ebp
41d932:	8b ec                	mov    %esp,%ebp
41d934:	6b 45 08 38          	imul   $0x38,0x8(%ebp),%eax
41d938:	05 28 d2 43 00       	add    $0x43d228,%eax
41d93d:	5d                   	pop    %ebp
41d93e:	c3                   	ret
41d93f:	8b ff                	mov    %edi,%edi
41d941:	56                   	push   %esi
41d942:	e8 2b 26 00 00       	call   0x41ff72
41d947:	e8 89 a5 00 00       	call   0x427ed5
41d94c:	33 f6                	xor    %esi,%esi
41d94e:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
41d953:	ff 34 06             	push   (%esi,%eax,1)
41d956:	e8 d0 22 00 00       	call   0x41fc2b
41d95b:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
41d960:	59                   	pop    %ecx
41d961:	8b 04 06             	mov    (%esi,%eax,1),%eax
41d964:	83 c0 20             	add    $0x20,%eax
41d967:	50                   	push   %eax
41d968:	ff 15 1c 11 43 00    	call   *0x43111c
41d96e:	83 c6 04             	add    $0x4,%esi
41d971:	83 fe 0c             	cmp    $0xc,%esi
41d974:	75 d8                	jne    0x41d94e
41d976:	ff 35 ec f7 43 00    	push   0x43f7ec
41d97c:	e8 8f 92 fe ff       	call   0x406c10
41d981:	83 25 ec f7 43 00 00 	andl   $0x0,0x43f7ec
41d988:	59                   	pop    %ecx
41d989:	5e                   	pop    %esi
41d98a:	c3                   	ret
41d98b:	8b ff                	mov    %edi,%edi
41d98d:	55                   	push   %ebp
41d98e:	8b ec                	mov    %esp,%ebp
41d990:	8b 4d 08             	mov    0x8(%ebp),%ecx
41d993:	85 c9                	test   %ecx,%ecx
41d995:	75 15                	jne    0x41d9ac
41d997:	e8 d5 ec ff ff       	call   0x41c671
41d99c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41d9a2:	e8 47 fa fe ff       	call   0x40d3ee
41d9a7:	6a 16                	push   $0x16
41d9a9:	58                   	pop    %eax
41d9aa:	5d                   	pop    %ebp
41d9ab:	c3                   	ret
41d9ac:	8b 55 0c             	mov    0xc(%ebp),%edx
41d9af:	85 d2                	test   %edx,%edx
41d9b1:	74 05                	je     0x41d9b8
41d9b3:	8d 41 04             	lea    0x4(%ecx),%eax
41d9b6:	89 02                	mov    %eax,(%edx)
41d9b8:	8b 45 10             	mov    0x10(%ebp),%eax
41d9bb:	85 c0                	test   %eax,%eax
41d9bd:	74 02                	je     0x41d9c1
41d9bf:	89 08                	mov    %ecx,(%eax)
41d9c1:	8b 55 14             	mov    0x14(%ebp),%edx
41d9c4:	85 d2                	test   %edx,%edx
41d9c6:	74 05                	je     0x41d9cd
41d9c8:	8d 41 08             	lea    0x8(%ecx),%eax
41d9cb:	89 02                	mov    %eax,(%edx)
41d9cd:	33 c0                	xor    %eax,%eax
41d9cf:	5d                   	pop    %ebp
41d9d0:	c3                   	ret
41d9d1:	8b ff                	mov    %edi,%edi
41d9d3:	55                   	push   %ebp
41d9d4:	8b ec                	mov    %esp,%ebp
41d9d6:	8b 45 08             	mov    0x8(%ebp),%eax
41d9d9:	83 c0 20             	add    $0x20,%eax
41d9dc:	50                   	push   %eax
41d9dd:	ff 15 14 10 43 00    	call   *0x431014
41d9e3:	5d                   	pop    %ebp
41d9e4:	c3                   	ret
41d9e5:	8b ff                	mov    %edi,%edi
41d9e7:	55                   	push   %ebp
41d9e8:	8b ec                	mov    %esp,%ebp
41d9ea:	8b 45 08             	mov    0x8(%ebp),%eax
41d9ed:	83 c0 20             	add    $0x20,%eax
41d9f0:	50                   	push   %eax
41d9f1:	ff 15 18 10 43 00    	call   *0x431018
41d9f7:	5d                   	pop    %ebp
41d9f8:	c3                   	ret
41d9f9:	8b 0d c0 d0 43 00    	mov    0x43d0c0,%ecx
41d9ff:	33 c0                	xor    %eax,%eax
41da01:	83 c9 01             	or     $0x1,%ecx
41da04:	39 0d f4 f7 43 00    	cmp    %ecx,0x43f7f4
41da0a:	0f 94 c0             	sete   %al
41da0d:	c3                   	ret
41da0e:	6a 10                	push   $0x10
41da10:	68 20 ae 43 00       	push   $0x43ae20
41da15:	e8 b6 ca fe ff       	call   0x40a4d0
41da1a:	8b 7d 0c             	mov    0xc(%ebp),%edi
41da1d:	33 f6                	xor    %esi,%esi
41da1f:	85 ff                	test   %edi,%edi
41da21:	75 24                	jne    0x41da47
41da23:	8b 45 10             	mov    0x10(%ebp),%eax
41da26:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41da2a:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41da31:	50                   	push   %eax
41da32:	56                   	push   %esi
41da33:	56                   	push   %esi
41da34:	56                   	push   %esi
41da35:	56                   	push   %esi
41da36:	56                   	push   %esi
41da37:	e8 35 f9 fe ff       	call   0x40d371
41da3c:	83 c4 18             	add    $0x18,%esp
41da3f:	83 c8 ff             	or     $0xffffffff,%eax
41da42:	e9 dd 00 00 00       	jmp    0x41db24
41da47:	89 75 e0             	mov    %esi,-0x20(%ebp)
41da4a:	57                   	push   %edi
41da4b:	e8 81 ff ff ff       	call   0x41d9d1
41da50:	59                   	pop    %ecx
41da51:	89 75 fc             	mov    %esi,-0x4(%ebp)
41da54:	8b 47 0c             	mov    0xc(%edi),%eax
41da57:	90                   	nop
41da58:	c1 e8 0c             	shr    $0xc,%eax
41da5b:	a8 01                	test   $0x1,%al
41da5d:	75 6b                	jne    0x41daca
41da5f:	57                   	push   %edi
41da60:	e8 db fd ff ff       	call   0x41d840
41da65:	59                   	pop    %ecx
41da66:	83 f8 ff             	cmp    $0xffffffff,%eax
41da69:	74 23                	je     0x41da8e
41da6b:	83 f8 fe             	cmp    $0xfffffffe,%eax
41da6e:	74 1e                	je     0x41da8e
41da70:	8b d0                	mov    %eax,%edx
41da72:	c1 fa 06             	sar    $0x6,%edx
41da75:	8b d8                	mov    %eax,%ebx
41da77:	83 e3 3f             	and    $0x3f,%ebx
41da7a:	6b cb 38             	imul   $0x38,%ebx,%ecx
41da7d:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
41da84:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41da87:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
41da8c:	eb 12                	jmp    0x41daa0
41da8e:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
41da93:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41da96:	8b d0                	mov    %eax,%edx
41da98:	c1 fa 06             	sar    $0x6,%edx
41da9b:	8b d8                	mov    %eax,%ebx
41da9d:	83 e3 3f             	and    $0x3f,%ebx
41daa0:	8b 7d e4             	mov    -0x1c(%ebp),%edi
41daa3:	80 7f 29 00          	cmpb   $0x0,0x29(%edi)
41daa7:	8b 7d 0c             	mov    0xc(%ebp),%edi
41daaa:	75 1a                	jne    0x41dac6
41daac:	83 f8 ff             	cmp    $0xffffffff,%eax
41daaf:	74 0f                	je     0x41dac0
41dab1:	83 f8 fe             	cmp    $0xfffffffe,%eax
41dab4:	74 0a                	je     0x41dac0
41dab6:	6b cb 38             	imul   $0x38,%ebx,%ecx
41dab9:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
41dac0:	f6 41 2d 01          	testb  $0x1,0x2d(%ecx)
41dac4:	74 04                	je     0x41daca
41dac6:	8b c6                	mov    %esi,%eax
41dac8:	eb 03                	jmp    0x41dacd
41daca:	33 c0                	xor    %eax,%eax
41dacc:	40                   	inc    %eax
41dacd:	85 c0                	test   %eax,%eax
41dacf:	75 31                	jne    0x41db02
41dad1:	8b 45 10             	mov    0x10(%ebp),%eax
41dad4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41dad8:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41dadf:	50                   	push   %eax
41dae0:	56                   	push   %esi
41dae1:	56                   	push   %esi
41dae2:	56                   	push   %esi
41dae3:	56                   	push   %esi
41dae4:	56                   	push   %esi
41dae5:	e8 87 f8 fe ff       	call   0x40d371
41daea:	6a fe                	push   $0xfffffffe
41daec:	8d 45 f0             	lea    -0x10(%ebp),%eax
41daef:	50                   	push   %eax
41daf0:	68 c0 d0 43 00       	push   $0x43d0c0
41daf5:	e8 56 f1 fe ff       	call   0x40cc50
41dafa:	83 c4 24             	add    $0x24,%esp
41dafd:	e9 3d ff ff ff       	jmp    0x41da3f
41db02:	ff 75 10             	push   0x10(%ebp)
41db05:	57                   	push   %edi
41db06:	ff 75 08             	push   0x8(%ebp)
41db09:	e8 34 00 00 00       	call   0x41db42
41db0e:	83 c4 0c             	add    $0xc,%esp
41db11:	8b f0                	mov    %eax,%esi
41db13:	89 75 e0             	mov    %esi,-0x20(%ebp)
41db16:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41db1d:	e8 18 00 00 00       	call   0x41db3a
41db22:	8b c6                	mov    %esi,%eax
41db24:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41db27:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41db2e:	59                   	pop    %ecx
41db2f:	5f                   	pop    %edi
41db30:	5e                   	pop    %esi
41db31:	5b                   	pop    %ebx
41db32:	c9                   	leave
41db33:	c3                   	ret
41db34:	8b 7d 0c             	mov    0xc(%ebp),%edi
41db37:	8b 75 e0             	mov    -0x20(%ebp),%esi
41db3a:	57                   	push   %edi
41db3b:	e8 a5 fe ff ff       	call   0x41d9e5
41db40:	59                   	pop    %ecx
41db41:	c3                   	ret
41db42:	8b ff                	mov    %edi,%edi
41db44:	55                   	push   %ebp
41db45:	8b ec                	mov    %esp,%ebp
41db47:	8b 55 0c             	mov    0xc(%ebp),%edx
41db4a:	83 6a 08 01          	subl   $0x1,0x8(%edx)
41db4e:	79 11                	jns    0x41db61
41db50:	ff 75 10             	push   0x10(%ebp)
41db53:	52                   	push   %edx
41db54:	ff 75 08             	push   0x8(%ebp)
41db57:	e8 71 a6 00 00       	call   0x4281cd
41db5c:	83 c4 0c             	add    $0xc,%esp
41db5f:	5d                   	pop    %ebp
41db60:	c3                   	ret
41db61:	8b 02                	mov    (%edx),%eax
41db63:	8a 4d 08             	mov    0x8(%ebp),%cl
41db66:	88 08                	mov    %cl,(%eax)
41db68:	ff 02                	incl   (%edx)
41db6a:	0f b6 c1             	movzbl %cl,%eax