40f7c7:	53                   	push   %ebx
40f7c8:	56                   	push   %esi
40f7c9:	ff d0                	call   *%eax
40f7cb:	5f                   	pop    %edi
40f7cc:	5e                   	pop    %esi
40f7cd:	5b                   	pop    %ebx
40f7ce:	c9                   	leave
40f7cf:	c3                   	ret
40f7d0:	55                   	push   %ebp
40f7d1:	8b ec                	mov    %esp,%ebp
40f7d3:	51                   	push   %ecx
40f7d4:	51                   	push   %ecx
40f7d5:	53                   	push   %ebx
40f7d6:	56                   	push   %esi
40f7d7:	57                   	push   %edi
40f7d8:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f7db:	be 3f 00 0f 00       	mov    $0xf003f,%esi
40f7e0:	50                   	push   %eax
40f7e1:	56                   	push   %esi
40f7e2:	33 ff                	xor    %edi,%edi
40f7e4:	bb 80 46 41 00       	mov    $0x414680,%ebx
40f7e9:	57                   	push   %edi
40f7ea:	53                   	push   %ebx
40f7eb:	68 01 00 00 80       	push   $0x80000001
40f7f0:	ff 15 14 20 41 00    	call   *0x412014
40f7f6:	85 c0                	test   %eax,%eax
40f7f8:	74 19                	je     0x40f813
40f7fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f7fd:	50                   	push   %eax
40f7fe:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f801:	50                   	push   %eax
40f802:	57                   	push   %edi
40f803:	56                   	push   %esi
40f804:	57                   	push   %edi
40f805:	57                   	push   %edi
40f806:	57                   	push   %edi
40f807:	53                   	push   %ebx
40f808:	68 01 00 00 80       	push   $0x80000001
40f80d:	ff 15 6c 20 41 00    	call   *0x41206c
40f813:	be a8 68 41 00       	mov    $0x4168a8,%esi
40f818:	56                   	push   %esi
40f819:	ff 15 fc 21 41 00    	call   *0x4121fc
40f81f:	c1 e0 02             	shl    $0x2,%eax
40f822:	50                   	push   %eax
40f823:	56                   	push   %esi
40f824:	6a 01                	push   $0x1
40f826:	57                   	push   %edi
40f827:	68 a0 46 41 00       	push   $0x4146a0
40f82c:	ff 75 fc             	push   -0x4(%ebp)
40f82f:	ff 15 38 20 41 00    	call   *0x412038
40f835:	ff 75 fc             	push   -0x4(%ebp)
40f838:	ff 15 20 20 41 00    	call   *0x412020
40f83e:	5f                   	pop    %edi
40f83f:	5e                   	pop    %esi
40f840:	5b                   	pop    %ebx
40f841:	c9                   	leave
40f842:	c3                   	ret
40f843:	56                   	push   %esi
40f844:	57                   	push   %edi
40f845:	bf 08 02 00 00       	mov    $0x208,%edi
40f84a:	be a8 68 41 00       	mov    $0x4168a8,%esi
40f84f:	57                   	push   %edi
40f850:	6a 00                	push   $0x0
40f852:	56                   	push   %esi
40f853:	e8 fa 17 ff ff       	call   0x401052
40f858:	83 c4 0c             	add    $0xc,%esp
40f85b:	57                   	push   %edi
40f85c:	56                   	push   %esi
40f85d:	6a 00                	push   $0x0
40f85f:	ff 15 08 21 41 00    	call   *0x412108
40f865:	ff 15 50 22 41 00    	call   *0x412250
40f86b:	85 c0                	test   %eax,%eax
40f86d:	75 4c                	jne    0x40f8bb
40f86f:	e8 23 e3 ff ff       	call   0x40db97
40f874:	83 f8 01             	cmp    $0x1,%eax
40f877:	74 42                	je     0x40f8bb
40f879:	53                   	push   %ebx
40f87a:	e8 51 ff ff ff       	call   0x40f7d0
40f87f:	e8 70 03 00 00       	call   0x40fbf4
40f884:	68 d8 46 41 00       	push   $0x4146d8
40f889:	8b d8                	mov    %eax,%ebx
40f88b:	6a 66                	push   $0x66
40f88d:	53                   	push   %ebx
40f88e:	ff 15 10 21 41 00    	call   *0x412110
40f894:	8b f8                	mov    %eax,%edi
40f896:	57                   	push   %edi
40f897:	53                   	push   %ebx
40f898:	ff 15 0c 21 41 00    	call   *0x41210c
40f89e:	57                   	push   %edi
40f89f:	53                   	push   %ebx
40f8a0:	8b f0                	mov    %eax,%esi
40f8a2:	ff 15 6c 21 41 00    	call   *0x41216c
40f8a8:	56                   	push   %esi
40f8a9:	ff 15 78 21 41 00    	call   *0x412178
40f8af:	5b                   	pop    %ebx
40f8b0:	85 c0                	test   %eax,%eax
40f8b2:	74 07                	je     0x40f8bb
40f8b4:	8b c8                	mov    %eax,%ecx
40f8b6:	e8 82 fe ff ff       	call   0x40f73d
40f8bb:	5f                   	pop    %edi
40f8bc:	33 c0                	xor    %eax,%eax
40f8be:	5e                   	pop    %esi
40f8bf:	c3                   	ret
40f8c0:	55                   	push   %ebp
40f8c1:	8b ec                	mov    %esp,%ebp
40f8c3:	81 ec 4c 06 00 00    	sub    $0x64c,%esp
40f8c9:	56                   	push   %esi
40f8ca:	57                   	push   %edi
40f8cb:	e8 c7 e2 ff ff       	call   0x40db97
40f8d0:	83 f8 01             	cmp    $0x1,%eax
40f8d3:	0f 84 14 01 00 00    	je     0x40f9ed
40f8d9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f8dc:	33 ff                	xor    %edi,%edi
40f8de:	50                   	push   %eax
40f8df:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f8e2:	ff 15 e8 20 41 00    	call   *0x4120e8
40f8e8:	50                   	push   %eax
40f8e9:	ff 15 20 22 41 00    	call   *0x412220
40f8ef:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40f8f2:	74 08                	je     0x40f8fc
40f8f4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f8f7:	e8 df dc ff ff       	call   0x40d5db
40f8fc:	e8 c0 fd ff ff       	call   0x40f6c1
40f901:	be 00 04 00 00       	mov    $0x400,%esi
40f906:	8d 85 b4 f9 ff ff    	lea    -0x64c(%ebp),%eax
40f90c:	56                   	push   %esi
40f90d:	57                   	push   %edi
40f90e:	50                   	push   %eax
40f90f:	e8 3e 17 ff ff       	call   0x401052
40f914:	83 c4 0c             	add    $0xc,%esp
40f917:	8d 85 b4 f9 ff ff    	lea    -0x64c(%ebp),%eax
40f91d:	56                   	push   %esi
40f91e:	50                   	push   %eax
40f91f:	57                   	push   %edi
40f920:	ff 15 14 22 41 00    	call   *0x412214
40f926:	8d 85 b4 f9 ff ff    	lea    -0x64c(%ebp),%eax
40f92c:	be 13 47 41 00       	mov    $0x414713,%esi
40f931:	50                   	push   %eax
40f932:	56                   	push   %esi
40f933:	e8 24 fd ff ff       	call   0x40f65c
40f938:	56                   	push   %esi
40f939:	68 14 47 41 00       	push   $0x414714
40f93e:	e8 19 fd ff ff       	call   0x40f65c
40f943:	83 c4 10             	add    $0x10,%esp
40f946:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f94c:	68 04 01 00 00       	push   $0x104
40f951:	50                   	push   %eax
40f952:	ff 15 74 21 41 00    	call   *0x412174
40f958:	68 24 47 41 00       	push   $0x414724
40f95d:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f963:	50                   	push   %eax
40f964:	ff 15 04 22 41 00    	call   *0x412204
40f96a:	6a 01                	push   $0x1
40f96c:	57                   	push   %edi
40f96d:	57                   	push   %edi
40f96e:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f974:	be 48 26 41 00       	mov    $0x412648,%esi
40f979:	50                   	push   %eax
40f97a:	56                   	push   %esi
40f97b:	57                   	push   %edi
40f97c:	ff 15 44 22 41 00    	call   *0x412244
40f982:	0f 28 05 c0 49 41 00 	movaps 0x4149c0,%xmm0
40f989:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f98f:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f992:	8d 45 bc             	lea    -0x44(%ebp),%eax
40f995:	50                   	push   %eax
40f996:	c7 45 bc 3c 00 00 00 	movl   $0x3c,-0x44(%ebp)
40f99d:	c7 45 c0 40 00 00 00 	movl   $0x40,-0x40(%ebp)
40f9a4:	89 7d c4             	mov    %edi,-0x3c(%ebp)
40f9a7:	89 75 c8             	mov    %esi,-0x38(%ebp)
40f9aa:	0f 11 45 d0          	movups %xmm0,-0x30(%ebp)
40f9ae:	ff 15 4c 22 41 00    	call   *0x41224c
40f9b4:	57                   	push   %edi
40f9b5:	ff 75 f4             	push   -0xc(%ebp)
40f9b8:	ff 15 54 21 41 00    	call   *0x412154
40f9be:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40f9c1:	74 08                	je     0x40f9cb
40f9c3:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f9c6:	e8 e9 db ff ff       	call   0x40d5b4
40f9cb:	68 d0 07 00 00       	push   $0x7d0
40f9d0:	ff 15 e4 21 41 00    	call   *0x4121e4
40f9d6:	68 e8 46 41 00       	push   $0x4146e8
40f9db:	68 01 00 00 80       	push   $0x80000001
40f9e0:	ff 15 04 20 41 00    	call   *0x412004
40f9e6:	57                   	push   %edi
40f9e7:	ff 15 b0 21 41 00    	call   *0x4121b0
40f9ed:	5f                   	pop    %edi
40f9ee:	33 c0                	xor    %eax,%eax
40f9f0:	5e                   	pop    %esi
40f9f1:	c9                   	leave
40f9f2:	c3                   	ret
40f9f3:	55                   	push   %ebp
40f9f4:	8b ec                	mov    %esp,%ebp
40f9f6:	53                   	push   %ebx
40f9f7:	8b da                	mov    %edx,%ebx
40f9f9:	8b c3                	mov    %ebx,%eax
40f9fb:	99                   	cltd
40f9fc:	83 e2 03             	and    $0x3,%edx
40f9ff:	56                   	push   %esi
40fa00:	57                   	push   %edi
40fa01:	8d 3c 02             	lea    (%edx,%eax,1),%edi
40fa04:	ba ad 10 00 00       	mov    $0x10ad,%edx
40fa09:	c1 ff 02             	sar    $0x2,%edi
40fa0c:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
40fa0f:	f7 df                	neg    %edi
40fa11:	74 23                	je     0x40fa36
40fa13:	69 04 be 51 2d 9e cc 	imul   $0xcc9e2d51,(%esi,%edi,4),%eax
40fa1a:	c1 c0 0f             	rol    $0xf,%eax
40fa1d:	69 c0 93 35 87 1b    	imul   $0x1b873593,%eax,%eax
40fa23:	33 c2                	xor    %edx,%eax
40fa25:	c1 c0 0d             	rol    $0xd,%eax
40fa28:	6b d0 05             	imul   $0x5,%eax,%edx
40fa2b:	81 ea 9c 94 ab 19    	sub    $0x19ab949c,%edx
40fa31:	83 c7 01             	add    $0x1,%edi
40fa34:	75 dd                	jne    0x40fa13
40fa36:	8b c3                	mov    %ebx,%eax
40fa38:	33 c9                	xor    %ecx,%ecx
40fa3a:	83 e0 03             	and    $0x3,%eax
40fa3d:	83 e8 01             	sub    $0x1,%eax
40fa40:	74 1a                	je     0x40fa5c
40fa42:	83 e8 01             	sub    $0x1,%eax
40fa45:	74 0c                	je     0x40fa53
40fa47:	83 e8 01             	sub    $0x1,%eax
40fa4a:	75 26                	jne    0x40fa72
40fa4c:	0f b6 4e 02          	movzbl 0x2(%esi),%ecx
40fa50:	c1 e1 10             	shl    $0x10,%ecx
40fa53:	0f b6 46 01          	movzbl 0x1(%esi),%eax
40fa57:	c1 e0 08             	shl    $0x8,%eax
40fa5a:	33 c8                	xor    %eax,%ecx
40fa5c:	0f b6 06             	movzbl (%esi),%eax
40fa5f:	33 c1                	xor    %ecx,%eax
40fa61:	69 c0 51 2d 9e cc    	imul   $0xcc9e2d51,%eax,%eax
40fa67:	c1 c0 0f             	rol    $0xf,%eax
40fa6a:	69 c0 93 35 87 1b    	imul   $0x1b873593,%eax,%eax
40fa70:	33 d0                	xor    %eax,%edx
40fa72:	33 d3                	xor    %ebx,%edx
40fa74:	8b c2                	mov    %edx,%eax
40fa76:	c1 e8 10             	shr    $0x10,%eax
40fa79:	33 c2                	xor    %edx,%eax
40fa7b:	69 c8 6b ca eb 85    	imul   $0x85ebca6b,%eax,%ecx
40fa81:	5f                   	pop    %edi
40fa82:	5e                   	pop    %esi
40fa83:	5b                   	pop    %ebx
40fa84:	8b c1                	mov    %ecx,%eax
40fa86:	c1 e8 0d             	shr    $0xd,%eax
40fa89:	33 c1                	xor    %ecx,%eax
40fa8b:	69 c0 35 ae b2 c2    	imul   $0xc2b2ae35,%eax,%eax
40fa91:	8b c8                	mov    %eax,%ecx
40fa93:	c1 e9 10             	shr    $0x10,%ecx
40fa96:	33 c8                	xor    %eax,%ecx
40fa98:	8b 45 0c             	mov    0xc(%ebp),%eax
40fa9b:	89 08                	mov    %ecx,(%eax)
40fa9d:	5d                   	pop    %ebp
40fa9e:	c3                   	ret
40fa9f:	55                   	push   %ebp
40faa0:	8b ec                	mov    %esp,%ebp
40faa2:	51                   	push   %ecx
40faa3:	53                   	push   %ebx
40faa4:	56                   	push   %esi
40faa5:	be 9f fa 40 00       	mov    $0x40fa9f,%esi
40faaa:	c7 45 fc 4d 5a 90 00 	movl   $0x905a4d,-0x4(%ebp)
40fab1:	33 db                	xor    %ebx,%ebx
40fab3:	6a 04                	push   $0x4
40fab5:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fab8:	56                   	push   %esi
40fab9:	50                   	push   %eax
40faba:	e8 41 15 ff ff       	call   0x401000
40fabf:	83 c4 0c             	add    $0xc,%esp
40fac2:	85 c0                	test   %eax,%eax
40fac4:	74 13                	je     0x40fad9
40fac6:	33 c9                	xor    %ecx,%ecx
40fac8:	8d 43 01             	lea    0x1(%ebx),%eax
40facb:	4e                   	dec    %esi
40facc:	81 fb e7 03 00 00    	cmp    $0x3e7,%ebx
40fad2:	0f 45 c8             	cmovne %eax,%ecx
40fad5:	8b d9                	mov    %ecx,%ebx
40fad7:	eb da                	jmp    0x40fab3
40fad9:	8b c6                	mov    %esi,%eax
40fadb:	5e                   	pop    %esi
40fadc:	5b                   	pop    %ebx
40fadd:	c9                   	leave
40fade:	c3                   	ret
40fadf:	56                   	push   %esi
40fae0:	57                   	push   %edi
40fae1:	8b f9                	mov    %ecx,%edi
40fae3:	33 f6                	xor    %esi,%esi
40fae5:	56                   	push   %esi
40fae6:	e8 1e 00 00 00       	call   0x40fb09
40faeb:	59                   	pop    %ecx
40faec:	33 d2                	xor    %edx,%edx
40faee:	6a 3e                	push   $0x3e
40faf0:	59                   	pop    %ecx
40faf1:	f7 f1                	div    %ecx
40faf3:	8a 82 60 47 41 00    	mov    0x414760(%edx),%al
40faf9:	88 04 3e             	mov    %al,(%esi,%edi,1)
40fafc:	46                   	inc    %esi
40fafd:	83 fe 0a             	cmp    $0xa,%esi
40fb00:	7c e3                	jl     0x40fae5
40fb02:	c6 47 0a 00          	movb   $0x0,0xa(%edi)
40fb06:	5f                   	pop    %edi
40fb07:	5e                   	pop    %esi
40fb08:	c3                   	ret
40fb09:	55                   	push   %ebp
40fb0a:	8b ec                	mov    %esp,%ebp
40fb0c:	6a 01                	push   $0x1
40fb0e:	ff 15 e4 21 41 00    	call   *0x4121e4
40fb14:	ff 15 c8 21 41 00    	call   *0x4121c8
40fb1a:	69 4d 08 59 03 00 00 	imul   $0x359,0x8(%ebp),%ecx
40fb21:	33 d2                	xor    %edx,%edx
40fb23:	41                   	inc    %ecx
40fb24:	0f af c1             	imul   %ecx,%eax
40fb27:	b9 10 27 00 00       	mov    $0x2710,%ecx
40fb2c:	f7 f1                	div    %ecx
40fb2e:	8b c2                	mov    %edx,%eax
40fb30:	5d                   	pop    %ebp
40fb31:	c3                   	ret
40fb32:	53                   	push   %ebx
40fb33:	56                   	push   %esi
40fb34:	57                   	push   %edi
40fb35:	68 88 49 41 00       	push   $0x414988
40fb3a:	8b da                	mov    %edx,%ebx
40fb3c:	8b f9                	mov    %ecx,%edi
40fb3e:	e8 92 15 ff ff       	call   0x4010d5
40fb43:	59                   	pop    %ecx
40fb44:	33 f6                	xor    %esi,%esi
40fb46:	8b c8                	mov    %eax,%ecx
40fb48:	85 db                	test   %ebx,%ebx
40fb4a:	7e 13                	jle    0x40fb5f
40fb4c:	8b c6                	mov    %esi,%eax
40fb4e:	99                   	cltd
40fb4f:	f7 f9                	idiv   %ecx
40fb51:	8a 82 88 49 41 00    	mov    0x414988(%edx),%al
40fb57:	30 04 3e             	xor    %al,(%esi,%edi,1)
40fb5a:	46                   	inc    %esi
40fb5b:	3b f3                	cmp    %ebx,%esi
40fb5d:	7c ed                	jl     0x40fb4c
40fb5f:	8b c7                	mov    %edi,%eax
40fb61:	5f                   	pop    %edi
40fb62:	5e                   	pop    %esi
40fb63:	5b                   	pop    %ebx
40fb64:	c3                   	ret
40fb65:	55                   	push   %ebp
40fb66:	8b ec                	mov    %esp,%ebp
40fb68:	51                   	push   %ecx
40fb69:	51                   	push   %ecx
40fb6a:	53                   	push   %ebx
40fb6b:	56                   	push   %esi
40fb6c:	57                   	push   %edi
40fb6d:	6a 04                	push   $0x4
40fb6f:	8b c2                	mov    %edx,%eax