40bdcf:	6a 00                	push   $0x0
40bdd1:	68 a0 0f 00 00       	push   $0xfa0
40bdd6:	8d 46 20             	lea    0x20(%esi),%eax
40bdd9:	50                   	push   %eax
40bdda:	e8 a7 d3 00 00       	call   0x419186
40bddf:	a1 40 9a 83 02       	mov    0x2839a40,%eax
40bde4:	8b d7                	mov    %edi,%edx
40bde6:	c1 fa 06             	sar    $0x6,%edx
40bde9:	89 34 b8             	mov    %esi,(%eax,%edi,4)
40bdec:	8b c7                	mov    %edi,%eax
40bdee:	83 e0 3f             	and    $0x3f,%eax
40bdf1:	6b c8 30             	imul   $0x30,%eax,%ecx
40bdf4:	8b 04 95 c0 9d 83 02 	mov    0x2839dc0(,%edx,4),%eax
40bdfb:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40bdff:	83 f8 ff             	cmp    $0xffffffff,%eax
40be02:	74 09                	je     0x40be0d
40be04:	83 f8 fe             	cmp    $0xfffffffe,%eax
40be07:	74 04                	je     0x40be0d
40be09:	85 c0                	test   %eax,%eax
40be0b:	75 07                	jne    0x40be14
40be0d:	c7 46 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%esi)
40be14:	83 c6 38             	add    $0x38,%esi
40be17:	47                   	inc    %edi
40be18:	81 fe 18 bb 43 00    	cmp    $0x43bb18,%esi
40be1e:	75 af                	jne    0x40bdcf
40be20:	5f                   	pop    %edi
40be21:	33 c0                	xor    %eax,%eax
40be23:	5e                   	pop    %esi
40be24:	c3                   	ret
40be25:	8b ff                	mov    %edi,%edi
40be27:	55                   	push   %ebp
40be28:	8b ec                	mov    %esp,%ebp
40be2a:	6b 45 08 38          	imul   $0x38,0x8(%ebp),%eax
40be2e:	05 70 ba 43 00       	add    $0x43ba70,%eax
40be33:	5d                   	pop    %ebp
40be34:	c3                   	ret
40be35:	8b ff                	mov    %edi,%edi
40be37:	56                   	push   %esi
40be38:	e8 98 d7 00 00       	call   0x4195d5
40be3d:	e8 46 d6 00 00       	call   0x419488
40be42:	33 f6                	xor    %esi,%esi
40be44:	a1 40 9a 83 02       	mov    0x2839a40,%eax
40be49:	ff 34 06             	push   (%esi,%eax,1)
40be4c:	e8 65 d8 00 00       	call   0x4196b6
40be51:	a1 40 9a 83 02       	mov    0x2839a40,%eax
40be56:	59                   	pop    %ecx
40be57:	8b 04 06             	mov    (%esi,%eax,1),%eax
40be5a:	83 c0 20             	add    $0x20,%eax
40be5d:	50                   	push   %eax
40be5e:	ff 15 40 71 42 00    	call   *0x427140
40be64:	83 c6 04             	add    $0x4,%esi
40be67:	83 fe 0c             	cmp    $0xc,%esi
40be6a:	75 d8                	jne    0x40be44
40be6c:	ff 35 40 9a 83 02    	push   0x2839a40
40be72:	e8 99 8e 00 00       	call   0x414d10
40be77:	83 25 40 9a 83 02 00 	andl   $0x0,0x2839a40
40be7e:	59                   	pop    %ecx
40be7f:	5e                   	pop    %esi
40be80:	c3                   	ret
40be81:	8b ff                	mov    %edi,%edi
40be83:	55                   	push   %ebp
40be84:	8b ec                	mov    %esp,%ebp
40be86:	8b 45 08             	mov    0x8(%ebp),%eax
40be89:	83 c0 20             	add    $0x20,%eax
40be8c:	50                   	push   %eax
40be8d:	ff 15 38 71 42 00    	call   *0x427138
40be93:	5d                   	pop    %ebp
40be94:	c3                   	ret
40be95:	8b ff                	mov    %edi,%edi
40be97:	55                   	push   %ebp
40be98:	8b ec                	mov    %esp,%ebp
40be9a:	8b 45 08             	mov    0x8(%ebp),%eax
40be9d:	83 c0 20             	add    $0x20,%eax
40bea0:	50                   	push   %eax
40bea1:	ff 15 3c 71 42 00    	call   *0x42713c
40bea7:	5d                   	pop    %ebp
40bea8:	c3                   	ret
40bea9:	6a 0c                	push   $0xc
40beab:	68 e0 7f 43 00       	push   $0x437fe0
40beb0:	e8 6b b7 ff ff       	call   0x407620
40beb5:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40beb9:	8b 45 08             	mov    0x8(%ebp),%eax
40bebc:	ff 30                	push   (%eax)
40bebe:	e8 be ff ff ff       	call   0x40be81
40bec3:	59                   	pop    %ecx
40bec4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bec8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40becb:	e8 b9 09 00 00       	call   0x40c889
40bed0:	8b f0                	mov    %eax,%esi
40bed2:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40bed5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bedc:	e8 0d 00 00 00       	call   0x40beee
40bee1:	8b c6                	mov    %esi,%eax
40bee3:	e8 7e b7 ff ff       	call   0x407666
40bee8:	c2 0c 00             	ret    $0xc
40beeb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40beee:	8b 45 10             	mov    0x10(%ebp),%eax
40bef1:	ff 30                	push   (%eax)
40bef3:	e8 9d ff ff ff       	call   0x40be95
40bef8:	59                   	pop    %ecx
40bef9:	c3                   	ret
40befa:	6a 0c                	push   $0xc
40befc:	68 c0 7f 43 00       	push   $0x437fc0
40bf01:	e8 1a b7 ff ff       	call   0x407620
40bf06:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40bf0a:	8b 45 08             	mov    0x8(%ebp),%eax
40bf0d:	ff 30                	push   (%eax)
40bf0f:	e8 6d ff ff ff       	call   0x40be81
40bf14:	59                   	pop    %ecx
40bf15:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bf19:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bf1c:	e8 25 0a 00 00       	call   0x40c946
40bf21:	8b f0                	mov    %eax,%esi
40bf23:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40bf26:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40bf2d:	e8 0d 00 00 00       	call   0x40bf3f
40bf32:	8b c6                	mov    %esi,%eax
40bf34:	e8 2d b7 ff ff       	call   0x407666
40bf39:	c2 0c 00             	ret    $0xc
40bf3c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40bf3f:	8b 45 10             	mov    0x10(%ebp),%eax
40bf42:	ff 30                	push   (%eax)
40bf44:	e8 4c ff ff ff       	call   0x40be95
40bf49:	59                   	pop    %ecx
40bf4a:	c3                   	ret
40bf4b:	8b ff                	mov    %edi,%edi
40bf4d:	55                   	push   %ebp
40bf4e:	8b ec                	mov    %esp,%ebp
40bf50:	83 ec 0c             	sub    $0xc,%esp
40bf53:	8b 45 08             	mov    0x8(%ebp),%eax
40bf56:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40bf59:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bf5c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bf5f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40bf62:	50                   	push   %eax
40bf63:	ff 75 0c             	push   0xc(%ebp)
40bf66:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bf69:	50                   	push   %eax
40bf6a:	e8 3a ff ff ff       	call   0x40bea9
40bf6f:	8b e5                	mov    %ebp,%esp
40bf71:	5d                   	pop    %ebp
40bf72:	c3                   	ret
40bf73:	8b ff                	mov    %edi,%edi
40bf75:	55                   	push   %ebp
40bf76:	8b ec                	mov    %esp,%ebp
40bf78:	83 ec 0c             	sub    $0xc,%esp
40bf7b:	8b 45 08             	mov    0x8(%ebp),%eax
40bf7e:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40bf81:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bf84:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bf87:	8d 45 f8             	lea    -0x8(%ebp),%eax
40bf8a:	50                   	push   %eax
40bf8b:	ff 75 0c             	push   0xc(%ebp)
40bf8e:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bf91:	50                   	push   %eax
40bf92:	e8 63 ff ff ff       	call   0x40befa
40bf97:	8b e5                	mov    %ebp,%esp
40bf99:	5d                   	pop    %ebp
40bf9a:	c3                   	ret
40bf9b:	8b ff                	mov    %edi,%edi
40bf9d:	55                   	push   %ebp
40bf9e:	8b ec                	mov    %esp,%ebp
40bfa0:	81 ec 84 04 00 00    	sub    $0x484,%esp
40bfa6:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40bfab:	33 c5                	xor    %ebp,%eax
40bfad:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bfb0:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40bfb4:	8b 45 10             	mov    0x10(%ebp),%eax
40bfb7:	53                   	push   %ebx
40bfb8:	8b 5d 14             	mov    0x14(%ebp),%ebx
40bfbb:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40bfc1:	75 18                	jne    0x40bfdb
40bfc3:	e8 a3 8a 00 00       	call   0x414a6b
40bfc8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40bfce:	e8 0f fd ff ff       	call   0x40bce2
40bfd3:	83 c8 ff             	or     $0xffffffff,%eax
40bfd6:	e9 11 01 00 00       	jmp    0x40c0ec
40bfdb:	85 db                	test   %ebx,%ebx
40bfdd:	74 04                	je     0x40bfe3
40bfdf:	85 c0                	test   %eax,%eax
40bfe1:	74 e0                	je     0x40bfc3
40bfe3:	56                   	push   %esi
40bfe4:	57                   	push   %edi
40bfe5:	ff 75 1c             	push   0x1c(%ebp)
40bfe8:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40bfee:	e8 d5 07 00 00       	call   0x40c7c8
40bff3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bff6:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40bffc:	33 c0                	xor    %eax,%eax
40bffe:	33 d2                	xor    %edx,%edx
40c000:	ab                   	stos   %eax,%es:(%edi)
40c001:	ab                   	stos   %eax,%es:(%edi)
40c002:	ab                   	stos   %eax,%es:(%edi)
40c003:	ab                   	stos   %eax,%es:(%edi)
40c004:	8b c1                	mov    %ecx,%eax
40c006:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
40c00c:	83 e0 02             	and    $0x2,%eax
40c00f:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40c015:	0b c2                	or     %edx,%eax
40c017:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40c01d:	89 9d 94 fb ff ff    	mov    %ebx,-0x46c(%ebp)
40c023:	89 95 98 fb ff ff    	mov    %edx,-0x468(%ebp)
40c029:	75 0a                	jne    0x40c035
40c02b:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
40c031:	85 ff                	test   %edi,%edi
40c033:	75 07                	jne    0x40c03c
40c035:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
40c03c:	ff 75 20             	push   0x20(%ebp)
40c03f:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
40c045:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c04b:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
40c051:	50                   	push   %eax
40c052:	ff 75 18             	push   0x18(%ebp)
40c055:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40c05b:	ff 75 0c             	push   0xc(%ebp)
40c05e:	51                   	push   %ecx
40c05f:	50                   	push   %eax
40c060:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c066:	e8 f3 06 00 00       	call   0x40c75e
40c06b:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c071:	e8 0a 0d 00 00       	call   0x40cd80
40c076:	8b f0                	mov    %eax,%esi
40c078:	85 ff                	test   %edi,%edi
40c07a:	74 4b                	je     0x40c0c7
40c07c:	8b 45 08             	mov    0x8(%ebp),%eax
40c07f:	33 c9                	xor    %ecx,%ecx
40c081:	83 e0 01             	and    $0x1,%eax
40c084:	0b c1                	or     %ecx,%eax
40c086:	74 1c                	je     0x40c0a4
40c088:	85 db                	test   %ebx,%ebx
40c08a:	75 04                	jne    0x40c090
40c08c:	85 f6                	test   %esi,%esi
40c08e:	75 6f                	jne    0x40c0ff
40c090:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c096:	3b c3                	cmp    %ebx,%eax
40c098:	75 2a                	jne    0x40c0c4
40c09a:	85 f6                	test   %esi,%esi
40c09c:	78 29                	js     0x40c0c7
40c09e:	3b f3                	cmp    %ebx,%esi
40c0a0:	76 25                	jbe    0x40c0c7
40c0a2:	eb 5b                	jmp    0x40c0ff
40c0a4:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
40c0aa:	0b c1                	or     %ecx,%eax
40c0ac:	74 4d                	je     0x40c0fb
40c0ae:	85 db                	test   %ebx,%ebx
40c0b0:	74 15                	je     0x40c0c7
40c0b2:	85 f6                	test   %esi,%esi
40c0b4:	79 04                	jns    0x40c0ba
40c0b6:	88 0f                	mov    %cl,(%edi)
40c0b8:	eb 0d                	jmp    0x40c0c7
40c0ba:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c0c0:	3b c3                	cmp    %ebx,%eax
40c0c2:	74 4d                	je     0x40c111
40c0c4:	88 0c 07             	mov    %cl,(%edi,%eax,1)
40c0c7:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
40c0cd:	e8 79 07 00 00       	call   0x40c84b
40c0d2:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
40c0d9:	74 0d                	je     0x40c0e8
40c0db:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
40c0e1:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40c0e8:	5f                   	pop    %edi
40c0e9:	8b c6                	mov    %esi,%eax
40c0eb:	5e                   	pop    %esi
40c0ec:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c0ef:	33 cd                	xor    %ebp,%ecx
40c0f1:	5b                   	pop    %ebx
40c0f2:	e8 69 af ff ff       	call   0x407060
40c0f7:	8b e5                	mov    %ebp,%esp
40c0f9:	5d                   	pop    %ebp
40c0fa:	c3                   	ret
40c0fb:	85 db                	test   %ebx,%ebx
40c0fd:	75 05                	jne    0x40c104
40c0ff:	83 ce ff             	or     $0xffffffff,%esi
40c102:	eb c3                	jmp    0x40c0c7
40c104:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c10a:	3b c3                	cmp    %ebx,%eax
40c10c:	75 b6                	jne    0x40c0c4
40c10e:	6a fe                	push   $0xfffffffe
40c110:	5e                   	pop    %esi
40c111:	88 4c 1f ff          	mov    %cl,-0x1(%edi,%ebx,1)
40c115:	eb b0                	jmp    0x40c0c7
40c117:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
40c11e:	75 06                	jne    0x40c126
40c120:	b8 00 02 00 00       	mov    $0x200,%eax
40c125:	c3                   	ret
40c126:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
40c12c:	d1 e8                	shr    $1,%eax
40c12e:	c3                   	ret
40c12f:	8b ff                	mov    %edi,%edi
40c131:	55                   	push   %ebp
40c132:	8b ec                	mov    %esp,%ebp
40c134:	51                   	push   %ecx
40c135:	83 c8 ff             	or     $0xffffffff,%eax
40c138:	33 d2                	xor    %edx,%edx
40c13a:	56                   	push   %esi
40c13b:	8b 75 08             	mov    0x8(%ebp),%esi
40c13e:	f7 f6                	div    %esi
40c140:	57                   	push   %edi
40c141:	83 e0 fe             	and    $0xfffffffe,%eax
40c144:	8b f9                	mov    %ecx,%edi
40c146:	83 f8 02             	cmp    $0x2,%eax
40c149:	73 0f                	jae    0x40c15a
40c14b:	e8 1b 89 00 00       	call   0x414a6b
40c150:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40c156:	32 c0                	xor    %al,%al
40c158:	eb 53                	jmp    0x40c1ad
40c15a:	53                   	push   %ebx
40c15b:	33 db                	xor    %ebx,%ebx
40c15d:	03 f6                	add    %esi,%esi
40c15f:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
40c165:	75 08                	jne    0x40c16f
40c167:	81 fe 00 04 00 00    	cmp    $0x400,%esi
40c16d:	76 08                	jbe    0x40c177
40c16f:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
40c175:	77 04                	ja     0x40c17b
40c177:	b0 01                	mov    $0x1,%al
40c179:	eb 31                	jmp    0x40c1ac
40c17b:	56                   	push   %esi
40c17c:	e8 c9 8b 00 00       	call   0x414d4a
40c181:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c184:	59                   	pop    %ecx
40c185:	85 c0                	test   %eax,%eax
40c187:	74 1a                	je     0x40c1a3
40c189:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c18c:	50                   	push   %eax
40c18d:	8d 8f 04 04 00 00    	lea    0x404(%edi),%ecx
40c193:	e8 cd 06 00 00       	call   0x40c865
40c198:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c19b:	b3 01                	mov    $0x1,%bl
40c19d:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
40c1a3:	50                   	push   %eax
40c1a4:	e8 67 8b 00 00       	call   0x414d10
40c1a9:	59                   	pop    %ecx
40c1aa:	8a c3                	mov    %bl,%al
40c1ac:	5b                   	pop    %ebx
40c1ad:	5f                   	pop    %edi
40c1ae:	5e                   	pop    %esi
40c1af:	8b e5                	mov    %ebp,%esp
40c1b1:	5d                   	pop    %ebp
40c1b2:	c2 04 00             	ret    $0x4
40c1b5:	8b ff                	mov    %edi,%edi
40c1b7:	55                   	push   %ebp
40c1b8:	8b ec                	mov    %esp,%ebp
40c1ba:	8b 45 14             	mov    0x14(%ebp),%eax
40c1bd:	48                   	dec    %eax
40c1be:	83 e8 01             	sub    $0x1,%eax
40c1c1:	74 2e                	je     0x40c1f1
40c1c3:	83 e8 01             	sub    $0x1,%eax
40c1c6:	74 25                	je     0x40c1ed
40c1c8:	83 e8 09             	sub    $0x9,%eax