40c7c1:	85 ff                	test   %edi,%edi
40c7c3:	74 2a                	je     0x40c7ef
40c7c5:	57                   	push   %edi
40c7c6:	ff 15 d4 20 41 00    	call   *0x4120d4
40c7cc:	85 c0                	test   %eax,%eax
40c7ce:	74 1f                	je     0x40c7ef
40c7d0:	ff 74 24 14          	push   0x14(%esp)
40c7d4:	b9 e5 15 00 00       	mov    $0x15e5,%ecx
40c7d9:	ff 73 18             	push   0x18(%ebx)
40c7dc:	57                   	push   %edi
40c7dd:	e8 6f d2 ff ff       	call   0x409a51
40c7e2:	50                   	push   %eax
40c7e3:	6a 03                	push   $0x3
40c7e5:	e8 81 cf ff ff       	call   0x40976b
40c7ea:	83 c4 14             	add    $0x14,%esp
40c7ed:	eb c1                	jmp    0x40c7b0
40c7ef:	ff 74 24 14          	push   0x14(%esp)
40c7f3:	b9 ea 15 00 00       	mov    $0x15ea,%ecx
40c7f8:	ff 73 18             	push   0x18(%ebx)
40c7fb:	eb a3                	jmp    0x40c7a0
40c7fd:	ff 15 48 20 41 00    	call   *0x412048
40c803:	85 c0                	test   %eax,%eax
40c805:	0f 85 95 00 00 00    	jne    0x40c8a0
40c80b:	68 2b 04 00 00       	push   $0x42b
40c810:	e9 85 00 00 00       	jmp    0x40c89a
40c815:	83 79 20 00          	cmpl   $0x0,0x20(%ecx)
40c819:	75 4b                	jne    0x40c866
40c81b:	81 e2 00 00 04 00    	and    $0x40000,%edx
40c821:	83 ca 00             	or     $0x0,%edx
40c824:	75 23                	jne    0x40c849
40c826:	ff 15 48 20 41 00    	call   *0x412048
40c82c:	85 c0                	test   %eax,%eax
40c82e:	75 0b                	jne    0x40c83b
40c830:	68 2b 04 00 00       	push   $0x42b
40c835:	ff 15 74 20 41 00    	call   *0x412074
40c83b:	e8 b4 cf ff ff       	call   0x4097f4
40c840:	8b d6                	mov    %esi,%edx
40c842:	e8 72 fc ff ff       	call   0x40c4b9
40c847:	eb 5c                	jmp    0x40c8a5
40c849:	8b 79 24             	mov    0x24(%ecx),%edi
40c84c:	85 ff                	test   %edi,%edi
40c84e:	74 2d                	je     0x40c87d
40c850:	57                   	push   %edi
40c851:	ff 15 d4 20 41 00    	call   *0x4120d4
40c857:	85 c0                	test   %eax,%eax
40c859:	74 22                	je     0x40c87d
40c85b:	53                   	push   %ebx
40c85c:	b9 e4 15 00 00       	mov    $0x15e4,%ecx
40c861:	e9 39 ff ff ff       	jmp    0x40c79f
40c866:	8b 79 24             	mov    0x24(%ecx),%edi
40c869:	85 ff                	test   %edi,%edi
40c86b:	75 e3                	jne    0x40c850
40c86d:	8b 49 20             	mov    0x20(%ecx),%ecx
40c870:	e8 b1 f1 ff ff       	call   0x40ba26
40c875:	8b f8                	mov    %eax,%edi
40c877:	85 ff                	test   %edi,%edi
40c879:	75 d5                	jne    0x40c850
40c87b:	eb be                	jmp    0x40c83b
40c87d:	53                   	push   %ebx
40c87e:	b9 e8 15 00 00       	mov    $0x15e8,%ecx
40c883:	e8 c9 d1 ff ff       	call   0x409a51
40c888:	50                   	push   %eax
40c889:	6a 01                	push   $0x1
40c88b:	e8 db ce ff ff       	call   0x40976b
40c890:	83 c4 0c             	add    $0xc,%esp
40c893:	e9 18 ff ff ff       	jmp    0x40c7b0
40c898:	6a 57                	push   $0x57
40c89a:	ff 15 74 20 41 00    	call   *0x412074
40c8a0:	e8 4f cf ff ff       	call   0x4097f4
40c8a5:	33 c0                	xor    %eax,%eax
40c8a7:	5f                   	pop    %edi
40c8a8:	5e                   	pop    %esi
40c8a9:	5b                   	pop    %ebx
40c8aa:	8b e5                	mov    %ebp,%esp
40c8ac:	5d                   	pop    %ebp
40c8ad:	c2 10 00             	ret    $0x10
40c8b0:	8d 49 00             	lea    0x0(%ecx),%ecx
40c8b3:	97                   	xchg   %eax,%edi
40c8b4:	c6 40 00 d1          	movb   $0xd1,0x0(%eax)
40c8b8:	c6 40 00 00          	movb   $0x0,0x0(%eax)
40c8bc:	00 00                	add    %al,(%eax)
40c8be:	01 01                	add    %eax,(%ecx)
40c8c0:	01 00                	add    %eax,(%eax)
40c8c2:	00 00                	add    %al,(%eax)
40c8c4:	01 8b ff 55 8b ec    	add    %ecx,-0x1374aa01(%ebx)
40c8ca:	53                   	push   %ebx
40c8cb:	56                   	push   %esi
40c8cc:	57                   	push   %edi
40c8cd:	8b fa                	mov    %edx,%edi
40c8cf:	85 ff                	test   %edi,%edi
40c8d1:	74 34                	je     0x40c907
40c8d3:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40c8d7:	74 2e                	je     0x40c907
40c8d9:	33 f6                	xor    %esi,%esi
40c8db:	8d 5f 04             	lea    0x4(%edi),%ebx
40c8de:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c8e1:	8b d3                	mov    %ebx,%edx
40c8e3:	6a 01                	push   $0x1
40c8e5:	e8 fe d4 ff ff       	call   0x409de8
40c8ea:	85 c0                	test   %eax,%eax
40c8ec:	75 0e                	jne    0x40c8fc
40c8ee:	46                   	inc    %esi
40c8ef:	81 c3 d0 00 00 00    	add    $0xd0,%ebx
40c8f5:	83 fe 06             	cmp    $0x6,%esi
40c8f8:	72 e4                	jb     0x40c8de
40c8fa:	eb 18                	jmp    0x40c914
40c8fc:	69 c6 d0 00 00 00    	imul   $0xd0,%esi,%eax
40c902:	8b 04 38             	mov    (%eax,%edi,1),%eax
40c905:	eb 0f                	jmp    0x40c916
40c907:	6a 57                	push   $0x57
40c909:	ff 15 74 20 41 00    	call   *0x412074
40c90f:	e8 e0 ce ff ff       	call   0x4097f4
40c914:	33 c0                	xor    %eax,%eax
40c916:	5f                   	pop    %edi
40c917:	5e                   	pop    %esi
40c918:	5b                   	pop    %ebx
40c919:	5d                   	pop    %ebp
40c91a:	c2 04 00             	ret    $0x4
40c91d:	8b ff                	mov    %edi,%edi
40c91f:	55                   	push   %ebp
40c920:	8b ec                	mov    %esp,%ebp
40c922:	85 c9                	test   %ecx,%ecx
40c924:	74 32                	je     0x40c958
40c926:	85 d2                	test   %edx,%edx
40c928:	74 2e                	je     0x40c958
40c92a:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
40c92e:	75 07                	jne    0x40c937
40c930:	b8 ff 00 00 00       	mov    $0xff,%eax
40c935:	eb 30                	jmp    0x40c967
40c937:	ff 75 0c             	push   0xc(%ebp)
40c93a:	6a 01                	push   $0x1
40c93c:	e8 59 db ff ff       	call   0x40a49a
40c941:	85 c0                	test   %eax,%eax
40c943:	75 05                	jne    0x40c94a
40c945:	6a 02                	push   $0x2
40c947:	58                   	pop    %eax
40c948:	eb 1d                	jmp    0x40c967
40c94a:	79 04                	jns    0x40c950
40c94c:	6a 04                	push   $0x4
40c94e:	eb f7                	jmp    0x40c947
40c950:	85 c0                	test   %eax,%eax
40c952:	7e 11                	jle    0x40c965
40c954:	6a 08                	push   $0x8
40c956:	eb ef                	jmp    0x40c947
40c958:	6a 57                	push   $0x57
40c95a:	ff 15 74 20 41 00    	call   *0x412074
40c960:	e8 8f ce ff ff       	call   0x4097f4
40c965:	33 c0                	xor    %eax,%eax
40c967:	5d                   	pop    %ebp
40c968:	c2 08 00             	ret    $0x8
40c96b:	8b ff                	mov    %edi,%edi
40c96d:	55                   	push   %ebp
40c96e:	8b ec                	mov    %esp,%ebp
40c970:	81 ec 00 07 00 00    	sub    $0x700,%esp
40c976:	a1 44 10 41 00       	mov    0x411044,%eax
40c97b:	33 c5                	xor    %ebp,%eax
40c97d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c980:	53                   	push   %ebx
40c981:	56                   	push   %esi
40c982:	57                   	push   %edi
40c983:	89 8d 10 f9 ff ff    	mov    %ecx,-0x6f0(%ebp)
40c989:	8d 75 08             	lea    0x8(%ebp),%esi
40c98c:	b9 37 01 00 00       	mov    $0x137,%ecx
40c991:	8d bd 14 f9 ff ff    	lea    -0x6ec(%ebp),%edi
40c997:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40c999:	68 fe 01 00 00       	push   $0x1fe
40c99e:	33 ff                	xor    %edi,%edi
40c9a0:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40c9a6:	57                   	push   %edi
40c9a7:	50                   	push   %eax
40c9a8:	8b da                	mov    %edx,%ebx
40c9aa:	e8 15 2a 00 00       	call   0x40f3c4
40c9af:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40c9b5:	83 c4 0c             	add    $0xc,%esp
40c9b8:	85 c9                	test   %ecx,%ecx
40c9ba:	0f 84 7d 02 00 00    	je     0x40cc3d
40c9c0:	85 db                	test   %ebx,%ebx
40c9c2:	0f 84 75 02 00 00    	je     0x40cc3d
40c9c8:	8b 85 e4 fb ff ff    	mov    -0x41c(%ebp),%eax
40c9ce:	25 ff 0f 00 00       	and    $0xfff,%eax
40c9d3:	6a 08                	push   $0x8
40c9d5:	48                   	dec    %eax
40c9d6:	5e                   	pop    %esi
40c9d7:	3b c6                	cmp    %esi,%eax
40c9d9:	0f 87 55 02 00 00    	ja     0x40cc34
40c9df:	ff 24 85 5f cc 40 00 	jmp    *0x40cc5f(,%eax,4)
40c9e6:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40c9ec:	e8 1e c4 ff ff       	call   0x408e0f
40c9f1:	6a 03                	push   $0x3
40c9f3:	5a                   	pop    %edx
40c9f4:	8b cb                	mov    %ebx,%ecx
40c9f6:	89 85 10 f9 ff ff    	mov    %eax,-0x6f0(%ebp)
40c9fc:	e8 0e c4 ff ff       	call   0x408e0f
40ca01:	8b d8                	mov    %eax,%ebx
40ca03:	39 bd 10 f9 ff ff    	cmp    %edi,-0x6f0(%ebp)
40ca09:	0f 84 3b 02 00 00    	je     0x40cc4a
40ca0f:	85 db                	test   %ebx,%ebx
40ca11:	0f 84 33 02 00 00    	je     0x40cc4a
40ca17:	f7 85 e4 fb ff ff 00 	testl  $0x2000,-0x41c(%ebp)
40ca1e:	20 00 00
40ca21:	74 46                	je     0x40ca69
40ca23:	68 fe 00 00 00       	push   $0xfe
40ca28:	8b d3                	mov    %ebx,%edx
40ca2a:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40ca30:	e8 c1 d9 ff ff       	call   0x40a3f6
40ca35:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40ca3b:	6a 2a                	push   $0x2a
40ca3d:	50                   	push   %eax
40ca3e:	ff 15 58 22 41 00    	call   *0x412258
40ca44:	59                   	pop    %ecx
40ca45:	59                   	pop    %ecx
40ca46:	85 c0                	test   %eax,%eax
40ca48:	74 1f                	je     0x40ca69
40ca4a:	50                   	push   %eax
40ca4b:	ff 15 d4 20 41 00    	call   *0x4120d4
40ca51:	8b f0                	mov    %eax,%esi
40ca53:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40ca59:	50                   	push   %eax
40ca5a:	ff 15 d4 20 41 00    	call   *0x4120d4
40ca60:	8b f8                	mov    %eax,%edi
40ca62:	2b fe                	sub    %esi,%edi
40ca64:	75 03                	jne    0x40ca69
40ca66:	83 cf ff             	or     $0xffffffff,%edi
40ca69:	57                   	push   %edi
40ca6a:	51                   	push   %ecx
40ca6b:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40ca71:	8b d3                	mov    %ebx,%edx
40ca73:	e8 a5 fe ff ff       	call   0x40c91d
40ca78:	8b f0                	mov    %eax,%esi
40ca7a:	e9 ba 01 00 00       	jmp    0x40cc39
40ca7f:	6a 03                	push   $0x3
40ca81:	5a                   	pop    %edx
40ca82:	8b cb                	mov    %ebx,%ecx
40ca84:	e8 86 c3 ff ff       	call   0x408e0f
40ca89:	89 85 08 f9 ff ff    	mov    %eax,-0x6f8(%ebp)
40ca8f:	85 c0                	test   %eax,%eax
40ca91:	0f 84 b3 01 00 00    	je     0x40cc4a
40ca97:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40ca9d:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40caa3:	e8 82 c3 ff ff       	call   0x408e2a
40caa8:	8b 8d 08 f9 ff ff    	mov    -0x6f8(%ebp),%ecx
40caae:	8b d8                	mov    %eax,%ebx
40cab0:	e8 80 d1 ff ff       	call   0x409c35
40cab5:	3b d8                	cmp    %eax,%ebx
40cab7:	75 08                	jne    0x40cac1
40cab9:	6a 02                	push   $0x2
40cabb:	5e                   	pop    %esi
40cabc:	e9 78 01 00 00       	jmp    0x40cc39
40cac1:	7d 04                	jge    0x40cac7
40cac3:	6a 04                	push   $0x4
40cac5:	eb f4                	jmp    0x40cabb
40cac7:	0f 8f 6c 01 00 00    	jg     0x40cc39
40cacd:	8b f7                	mov    %edi,%esi
40cacf:	e9 65 01 00 00       	jmp    0x40cc39
40cad4:	6a 03                	push   $0x3
40cad6:	5a                   	pop    %edx
40cad7:	8b cb                	mov    %ebx,%ecx
40cad9:	e8 31 c3 ff ff       	call   0x408e0f
40cade:	8b d8                	mov    %eax,%ebx
40cae0:	85 db                	test   %ebx,%ebx
40cae2:	0f 84 62 01 00 00    	je     0x40cc4a
40cae8:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40caee:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40caf4:	e8 31 c3 ff ff       	call   0x408e2a
40caf9:	8b cb                	mov    %ebx,%ecx
40cafb:	8b f8                	mov    %eax,%edi
40cafd:	e8 33 d1 ff ff       	call   0x409c35
40cb02:	3b f8                	cmp    %eax,%edi
40cb04:	74 b3                	je     0x40cab9
40cb06:	72 bb                	jb     0x40cac3
40cb08:	3b c7                	cmp    %edi,%eax
40cb0a:	1b c0                	sbb    %eax,%eax
40cb0c:	23 f0                	and    %eax,%esi
40cb0e:	e9 26 01 00 00       	jmp    0x40cc39
40cb13:	6a 03                	push   $0x3
40cb15:	5a                   	pop    %edx
40cb16:	8b cb                	mov    %ebx,%ecx
40cb18:	e8 f2 c2 ff ff       	call   0x408e0f
40cb1d:	8b d8                	mov    %eax,%ebx
40cb1f:	85 db                	test   %ebx,%ebx
40cb21:	0f 84 23 01 00 00    	je     0x40cc4a
40cb27:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40cb2d:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40cb33:	e8 3f c3 ff ff       	call   0x408e77
40cb38:	d9 9d 08 f9 ff ff    	fstps  -0x6f8(%ebp)
40cb3e:	d9 85 08 f9 ff ff    	flds   -0x6f8(%ebp)
40cb44:	8b cb                	mov    %ebx,%ecx
40cb46:	dd 9d 0c f9 ff ff    	fstpl  -0x6f4(%ebp)
40cb4c:	e8 4d d0 ff ff       	call   0x409b9e
40cb51:	d9 9d 08 f9 ff ff    	fstps  -0x6f8(%ebp)
40cb57:	d9 85 08 f9 ff ff    	flds   -0x6f8(%ebp)
40cb5d:	dd 85 0c f9 ff ff    	fldl   -0x6f4(%ebp)
40cb63:	eb 65                	jmp    0x40cbca
40cb65:	dd d8                	fstp   %st(0)
40cb67:	dd d8                	fstp   %st(0)
40cb69:	e9 4b ff ff ff       	jmp    0x40cab9
40cb6e:	d8 d1                	fcom   %st(1)
40cb70:	df e0                	fnstsw %ax
40cb72:	f6 c4 05             	test   $0x5,%ah
40cb75:	7a 09                	jp     0x40cb80
40cb77:	dd d8                	fstp   %st(0)
40cb79:	dd d8                	fstp   %st(0)
40cb7b:	e9 43 ff ff ff       	jmp    0x40cac3
40cb80:	de d9                	fcompp
40cb82:	df e0                	fnstsw %ax
40cb84:	f6 c4 41             	test   $0x41,%ah
40cb87:	0f 84 ac 00 00 00    	je     0x40cc39
40cb8d:	e9 3b ff ff ff       	jmp    0x40cacd
40cb92:	6a 03                	push   $0x3
40cb94:	5a                   	pop    %edx
40cb95:	8b cb                	mov    %ebx,%ecx
40cb97:	e8 73 c2 ff ff       	call   0x408e0f
40cb9c:	8b d8                	mov    %eax,%ebx
40cb9e:	85 db                	test   %ebx,%ebx
40cba0:	0f 84 a4 00 00 00    	je     0x40cc4a
40cba6:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40cbac:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40cbb2:	e8 e1 c2 ff ff       	call   0x408e98
40cbb7:	dd 9d 04 f9 ff ff    	fstpl  -0x6fc(%ebp)
40cbbd:	8b cb                	mov    %ebx,%ecx
40cbbf:	e8 da cf ff ff       	call   0x409b9e
40cbc4:	dd 85 04 f9 ff ff    	fldl   -0x6fc(%ebp)
40cbca:	dd e1                	fucom  %st(1)
40cbcc:	df e0                	fnstsw %ax
40cbce:	f6 c4 44             	test   $0x44,%ah
40cbd1:	7b 92                	jnp    0x40cb65
40cbd3:	eb 99                	jmp    0x40cb6e
40cbd5:	33 d2                	xor    %edx,%edx
40cbd7:	8b cb                	mov    %ebx,%ecx
40cbd9:	42                   	inc    %edx
40cbda:	e8 30 c2 ff ff       	call   0x408e0f
40cbdf:	6a 02                	push   $0x2
40cbe1:	5a                   	pop    %edx
40cbe2:	8b cb                	mov    %ebx,%ecx
40cbe4:	8b f8                	mov    %eax,%edi
40cbe6:	e8 24 c2 ff ff       	call   0x408e0f
40cbeb:	6a 03                	push   $0x3
40cbed:	5a                   	pop    %edx
40cbee:	8b cb                	mov    %ebx,%ecx
40cbf0:	8b f0                	mov    %eax,%esi
40cbf2:	e8 18 c2 ff ff       	call   0x408e0f
40cbf7:	8b c8                	mov    %eax,%ecx
40cbf9:	85 ff                	test   %edi,%edi
40cbfb:	74 4d                	je     0x40cc4a
40cbfd:	85 f6                	test   %esi,%esi
40cbff:	74 49                	je     0x40cc4a
40cc01:	85 c9                	test   %ecx,%ecx
40cc03:	74 45                	je     0x40cc4a
40cc05:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
40cc0b:	85 c0                	test   %eax,%eax