40becf:	8b 45 08             	mov    0x8(%ebp),%eax
40bed2:	53                   	push   %ebx
40bed3:	8b 50 08             	mov    0x8(%eax),%edx
40bed6:	56                   	push   %esi
40bed7:	83 ce ff             	or     $0xffffffff,%esi
40beda:	57                   	push   %edi
40bedb:	85 d2                	test   %edx,%edx
40bedd:	74 14                	je     0x40bef3
40bedf:	8b 58 04             	mov    0x4(%eax),%ebx
40bee2:	8b 4c 93 fc          	mov    -0x4(%ebx,%edx,4),%ecx
40bee6:	e8 13 00 00 00       	call   0x40befe
40beeb:	84 c0                	test   %al,%al
40beed:	0f 84 a0 78 06 00    	je     0x473793
40bef3:	33 f6                	xor    %esi,%esi
40bef5:	5f                   	pop    %edi
40bef6:	8b c6                	mov    %esi,%eax
40bef8:	5e                   	pop    %esi
40bef9:	5b                   	pop    %ebx
40befa:	5d                   	pop    %ebp
40befb:	c2 04 00             	ret    $0x4
40befe:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
40bf02:	66 83 f8 40          	cmp    $0x40,%ax
40bf06:	7c 0a                	jl     0x40bf12
40bf08:	66 83 f8 5f          	cmp    $0x5f,%ax
40bf0c:	7f 04                	jg     0x40bf12
40bf0e:	33 c0                	xor    %eax,%eax
40bf10:	40                   	inc    %eax
40bf11:	c3                   	ret
40bf12:	66 85 c0             	test   %ax,%ax
40bf15:	74 f7                	je     0x40bf0e
40bf17:	66 83 f8 30          	cmp    $0x30,%ax
40bf1b:	74 f1                	je     0x40bf0e
40bf1d:	33 c0                	xor    %eax,%eax
40bf1f:	c3                   	ret
40bf20:	55                   	push   %ebp
40bf21:	8b ec                	mov    %esp,%ebp
40bf23:	51                   	push   %ecx
40bf24:	53                   	push   %ebx
40bf25:	56                   	push   %esi
40bf26:	57                   	push   %edi
40bf27:	8b f9                	mov    %ecx,%edi
40bf29:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bf2c:	e8 91 02 00 00       	call   0x40c1c2
40bf31:	8b 75 0c             	mov    0xc(%ebp),%esi
40bf34:	33 db                	xor    %ebx,%ebx
40bf36:	88 5d ff             	mov    %bl,-0x1(%ebp)
40bf39:	39 1e                	cmp    %ebx,(%esi)
40bf3b:	76 29                	jbe    0x40bf66
40bf3d:	6a 01                	push   $0x1
40bf3f:	8d 45 0c             	lea    0xc(%ebp),%eax
40bf42:	50                   	push   %eax
40bf43:	8b cf                	mov    %edi,%ecx
40bf45:	e8 96 03 00 00       	call   0x40c2e0
40bf4a:	85 c0                	test   %eax,%eax
40bf4c:	0f 84 85 7f 06 00    	je     0x473ed7
40bf52:	ff 75 0c             	push   0xc(%ebp)
40bf55:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bf58:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40bf5c:	e8 10 00 00 00       	call   0x40bf71
40bf61:	43                   	inc    %ebx
40bf62:	3b 1e                	cmp    (%esi),%ebx
40bf64:	72 d7                	jb     0x40bf3d
40bf66:	89 1e                	mov    %ebx,(%esi)
40bf68:	b0 01                	mov    $0x1,%al
40bf6a:	5f                   	pop    %edi
40bf6b:	5e                   	pop    %esi
40bf6c:	5b                   	pop    %ebx
40bf6d:	c9                   	leave
40bf6e:	c2 08 00             	ret    $0x8
40bf71:	55                   	push   %ebp
40bf72:	8b ec                	mov    %esp,%ebp
40bf74:	57                   	push   %edi
40bf75:	8b f9                	mov    %ecx,%edi
40bf77:	8b 4f 0c             	mov    0xc(%edi),%ecx
40bf7a:	8b 01                	mov    (%ecx),%eax
40bf7c:	83 f8 01             	cmp    $0x1,%eax
40bf7f:	0f 8f b0 7d 06 00    	jg     0x473d35
40bf85:	8b 47 04             	mov    0x4(%edi),%eax
40bf88:	40                   	inc    %eax
40bf89:	50                   	push   %eax
40bf8a:	8b cf                	mov    %edi,%ecx
40bf8c:	e8 28 04 00 00       	call   0x40c3b9
40bf91:	8b 57 04             	mov    0x4(%edi),%edx
40bf94:	8b 0f                	mov    (%edi),%ecx
40bf96:	8a 45 08             	mov    0x8(%ebp),%al
40bf99:	88 04 0a             	mov    %al,(%edx,%ecx,1)
40bf9c:	ff 47 04             	incl   0x4(%edi)
40bf9f:	8b 07                	mov    (%edi),%eax
40bfa1:	8b 4f 04             	mov    0x4(%edi),%ecx
40bfa4:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
40bfa8:	8b c7                	mov    %edi,%eax
40bfaa:	5f                   	pop    %edi
40bfab:	5d                   	pop    %ebp
40bfac:	c2 04 00             	ret    $0x4
40bfaf:	55                   	push   %ebp
40bfb0:	8b ec                	mov    %esp,%ebp
40bfb2:	83 ec 14             	sub    $0x14,%esp
40bfb5:	53                   	push   %ebx
40bfb6:	56                   	push   %esi
40bfb7:	8b f1                	mov    %ecx,%esi
40bfb9:	f6 46 2c 03          	testb  $0x3,0x2c(%esi)
40bfbd:	0f 85 83 00 00 00    	jne    0x40c046
40bfc3:	f6 46 2c 04          	testb  $0x4,0x2c(%esi)
40bfc7:	74 0a                	je     0x40bfd3
40bfc9:	ff 75 08             	push   0x8(%ebp)
40bfcc:	e8 f1 9b 03 00       	call   0x445bc2
40bfd1:	eb 7b                	jmp    0x40c04e
40bfd3:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40bfd7:	6a 10                	push   $0x10
40bfd9:	58                   	pop    %eax
40bfda:	50                   	push   %eax
40bfdb:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bfde:	e8 07 35 01 00       	call   0x41f4ea
40bfe3:	59                   	pop    %ecx
40bfe4:	6a 04                	push   $0x4
40bfe6:	89 45 ec             	mov    %eax,-0x14(%ebp)
40bfe9:	c6 00 00             	movb   $0x0,(%eax)
40bfec:	e8 f9 34 01 00       	call   0x41f4ea
40bff1:	33 db                	xor    %ebx,%ebx
40bff3:	43                   	inc    %ebx
40bff4:	59                   	pop    %ecx
40bff5:	85 c0                	test   %eax,%eax
40bff7:	74 07                	je     0x40c000
40bff9:	89 18                	mov    %ebx,(%eax)
40bffb:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bffe:	eb 04                	jmp    0x40c004
40c000:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40c004:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c007:	50                   	push   %eax
40c008:	8b ce                	mov    %esi,%ecx
40c00a:	e8 51 00 00 00       	call   0x40c060
40c00f:	84 c0                	test   %al,%al
40c011:	74 16                	je     0x40c029
40c013:	ff 75 08             	push   0x8(%ebp)
40c016:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c019:	50                   	push   %eax
40c01a:	e8 bf 01 00 00       	call   0x40c1de
40c01f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40c022:	e8 10 0b 00 00       	call   0x40cb37
40c027:	eb 19                	jmp    0x40c042
40c029:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c02c:	ff 0e                	decl   (%esi)
40c02e:	75 10                	jne    0x40c040
40c030:	ff 75 ec             	push   -0x14(%ebp)
40c033:	e8 26 35 01 00       	call   0x41f55e
40c038:	59                   	pop    %ecx
40c039:	56                   	push   %esi
40c03a:	e8 1f 35 01 00       	call   0x41f55e
40c03f:	59                   	pop    %ecx
40c040:	32 db                	xor    %bl,%bl
40c042:	8a c3                	mov    %bl,%al
40c044:	eb 08                	jmp    0x40c04e
40c046:	ff 75 08             	push   0x8(%ebp)
40c049:	e8 76 9a 03 00       	call   0x445ac4
40c04e:	5e                   	pop    %esi
40c04f:	5b                   	pop    %ebx
40c050:	c9                   	leave
40c051:	c2 04 00             	ret    $0x4
40c054:	cc                   	int3
40c055:	cc                   	int3
40c056:	cc                   	int3
40c057:	cc                   	int3
40c058:	cc                   	int3
40c059:	cc                   	int3
40c05a:	cc                   	int3
40c05b:	cc                   	int3
40c05c:	cc                   	int3
40c05d:	cc                   	int3
40c05e:	cc                   	int3
40c05f:	cc                   	int3
40c060:	55                   	push   %ebp
40c061:	8b ec                	mov    %esp,%ebp
40c063:	83 ec 10             	sub    $0x10,%esp
40c066:	53                   	push   %ebx
40c067:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c06a:	56                   	push   %esi
40c06b:	57                   	push   %edi
40c06c:	8b f9                	mov    %ecx,%edi
40c06e:	8b cb                	mov    %ebx,%ecx
40c070:	e8 4d 01 00 00       	call   0x40c1c2
40c075:	32 c0                	xor    %al,%al
40c077:	88 45 ff             	mov    %al,-0x1(%ebp)
40c07a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40c080:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40c084:	0f 84 5d 7e 06 00    	je     0x473ee7
40c08a:	33 f6                	xor    %esi,%esi
40c08c:	8d 64 24 00          	lea    0x0(%esp),%esp
40c090:	8b 47 0c             	mov    0xc(%edi),%eax
40c093:	3b 47 08             	cmp    0x8(%edi),%eax
40c096:	0f 84 dd 00 00 00    	je     0x40c179
40c09c:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c09f:	8b 47 04             	mov    0x4(%edi),%eax
40c0a2:	46                   	inc    %esi
40c0a3:	8a 04 01             	mov    (%ecx,%eax,1),%al
40c0a6:	88 44 35 0a          	mov    %al,0xa(%ebp,%esi,1)
40c0aa:	8d 41 01             	lea    0x1(%ecx),%eax
40c0ad:	89 47 0c             	mov    %eax,0xc(%edi)
40c0b0:	83 fe 01             	cmp    $0x1,%esi
40c0b3:	72 db                	jb     0x40c090
40c0b5:	01 77 10             	add    %esi,0x10(%edi)
40c0b8:	83 57 14 00          	adcl   $0x0,0x14(%edi)
40c0bc:	85 f6                	test   %esi,%esi
40c0be:	0f 84 e3 00 00 00    	je     0x40c1a7
40c0c4:	8a 45 0b             	mov    0xb(%ebp),%al
40c0c7:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40c0cb:	3c 0d                	cmp    $0xd,%al
40c0cd:	74 39                	je     0x40c108
40c0cf:	3c 0a                	cmp    $0xa,%al
40c0d1:	74 50                	je     0x40c123
40c0d3:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40c0d6:	8b 01                	mov    (%ecx),%eax
40c0d8:	83 f8 01             	cmp    $0x1,%eax
40c0db:	0f 8f 2f 7e 06 00    	jg     0x473f10
40c0e1:	8b 43 04             	mov    0x4(%ebx),%eax
40c0e4:	83 c0 02             	add    $0x2,%eax
40c0e7:	39 43 08             	cmp    %eax,0x8(%ebx)
40c0ea:	72 42                	jb     0x40c12e
40c0ec:	8b 53 04             	mov    0x4(%ebx),%edx
40c0ef:	8b 0b                	mov    (%ebx),%ecx
40c0f1:	8a 45 0b             	mov    0xb(%ebp),%al
40c0f4:	88 04 0a             	mov    %al,(%edx,%ecx,1)
40c0f7:	ff 43 04             	incl   0x4(%ebx)
40c0fa:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c0fd:	8b 03                	mov    (%ebx),%eax
40c0ff:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
40c103:	e9 78 ff ff ff       	jmp    0x40c080
40c108:	6a 01                	push   $0x1
40c10a:	8d 45 0b             	lea    0xb(%ebp),%eax
40c10d:	50                   	push   %eax
40c10e:	8b cf                	mov    %edi,%ecx
40c110:	e8 cb 01 00 00       	call   0x40c2e0
40c115:	85 c0                	test   %eax,%eax
40c117:	74 0a                	je     0x40c123
40c119:	80 7d 0b 0a          	cmpb   $0xa,0xb(%ebp)
40c11d:	0f 85 e2 7e 06 00    	jne    0x474005
40c123:	5f                   	pop    %edi
40c124:	5e                   	pop    %esi
40c125:	b0 01                	mov    $0x1,%al
40c127:	5b                   	pop    %ebx
40c128:	8b e5                	mov    %ebp,%esp
40c12a:	5d                   	pop    %ebp
40c12b:	c2 04 00             	ret    $0x4
40c12e:	3d c2 41 00 00       	cmp    $0x41c2,%eax
40c133:	0f 83 0a 7e 06 00    	jae    0x473f43
40c139:	03 c0                	add    %eax,%eax
40c13b:	89 43 08             	mov    %eax,0x8(%ebx)
40c13e:	85 c0                	test   %eax,%eax
40c140:	74 79                	je     0x40c1bb
40c142:	83 c0 0f             	add    $0xf,%eax
40c145:	83 e0 f0             	and    $0xfffffff0,%eax
40c148:	50                   	push   %eax
40c149:	89 43 08             	mov    %eax,0x8(%ebx)
40c14c:	e8 99 33 01 00       	call   0x41f4ea
40c151:	8b f0                	mov    %eax,%esi
40c153:	8b 03                	mov    (%ebx),%eax
40c155:	83 c4 04             	add    $0x4,%esp
40c158:	85 c0                	test   %eax,%eax
40c15a:	74 16                	je     0x40c172
40c15c:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c15f:	41                   	inc    %ecx
40c160:	51                   	push   %ecx
40c161:	50                   	push   %eax
40c162:	56                   	push   %esi
40c163:	e8 18 2d 01 00       	call   0x41ee80
40c168:	ff 33                	push   (%ebx)
40c16a:	e8 ef 33 01 00       	call   0x41f55e
40c16f:	83 c4 10             	add    $0x10,%esp
40c172:	89 33                	mov    %esi,(%ebx)
40c174:	e9 73 ff ff ff       	jmp    0x40c0ec
40c179:	6a 00                	push   $0x0
40c17b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c17e:	50                   	push   %eax
40c17f:	68 00 00 01 00       	push   $0x10000
40c184:	ff 77 04             	push   0x4(%edi)
40c187:	ff 37                	push   (%edi)
40c189:	ff 15 cc d1 48 00    	call   *0x48d1cc
40c18f:	85 c0                	test   %eax,%eax
40c191:	0f 84 1e ff ff ff    	je     0x40c0b5
40c197:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c19a:	85 c0                	test   %eax,%eax
40c19c:	0f 84 13 ff ff ff    	je     0x40c0b5
40c1a2:	e9 5a 7d 06 00       	jmp    0x473f01
40c1a7:	8a 45 ff             	mov    -0x1(%ebp),%al
40c1aa:	84 c0                	test   %al,%al
40c1ac:	0f 85 71 ff ff ff    	jne    0x40c123
40c1b2:	5f                   	pop    %edi
40c1b3:	5e                   	pop    %esi
40c1b4:	5b                   	pop    %ebx
40c1b5:	8b e5                	mov    %ebp,%esp
40c1b7:	5d                   	pop    %ebp
40c1b8:	c2 04 00             	ret    $0x4
40c1bb:	b8 10 00 00 00       	mov    $0x10,%eax
40c1c0:	eb 86                	jmp    0x40c148
40c1c2:	56                   	push   %esi
40c1c3:	8b f1                	mov    %ecx,%esi
40c1c5:	8b 4e 0c             	mov    0xc(%esi),%ecx
40c1c8:	8b 01                	mov    (%ecx),%eax
40c1ca:	83 f8 01             	cmp    $0x1,%eax
40c1cd:	0f 8f 76 7c 06 00    	jg     0x473e49
40c1d3:	8b 06                	mov    (%esi),%eax
40c1d5:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c1d9:	c6 00 00             	movb   $0x0,(%eax)
40c1dc:	5e                   	pop    %esi
40c1dd:	c3                   	ret
40c1de:	55                   	push   %ebp
40c1df:	8b ec                	mov    %esp,%ebp
40c1e1:	53                   	push   %ebx
40c1e2:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c1e5:	57                   	push   %edi
40c1e6:	8b 7b 04             	mov    0x4(%ebx),%edi
40c1e9:	33 c0                	xor    %eax,%eax
40c1eb:	50                   	push   %eax
40c1ec:	50                   	push   %eax
40c1ed:	47                   	inc    %edi
40c1ee:	57                   	push   %edi
40c1ef:	ff 33                	push   (%ebx)
40c1f1:	6a 01                	push   $0x1
40c1f3:	50                   	push   %eax
40c1f4:	ff 15 78 d1 48 00    	call   *0x48d178
40c1fa:	89 45 08             	mov    %eax,0x8(%ebp)
40c1fd:	85 c0                	test   %eax,%eax
40c1ff:	74 44                	je     0x40c245
40c201:	56                   	push   %esi
40c202:	33 c9                	xor    %ecx,%ecx
40c204:	6a 02                	push   $0x2
40c206:	5a                   	pop    %edx
40c207:	f7 e2                	mul    %edx
40c209:	0f 90 c1             	seto   %cl
40c20c:	f7 d9                	neg    %ecx
40c20e:	0b c8                	or     %eax,%ecx
40c210:	51                   	push   %ecx
40c211:	e8 d4 32 01 00       	call   0x41f4ea
40c216:	59                   	pop    %ecx
40c217:	ff 75 08             	push   0x8(%ebp)
40c21a:	8b f0                	mov    %eax,%esi
40c21c:	56                   	push   %esi
40c21d:	57                   	push   %edi
40c21e:	ff 33                	push   (%ebx)
40c220:	6a 01                	push   $0x1
40c222:	6a 00                	push   $0x0
40c224:	ff 15 78 d1 48 00    	call   *0x48d178
40c22a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c22d:	48                   	dec    %eax
40c22e:	50                   	push   %eax
40c22f:	6a 00                	push   $0x0
40c231:	56                   	push   %esi
40c232:	e8 18 00 00 00       	call   0x40c24f
40c237:	56                   	push   %esi
40c238:	e8 21 33 01 00       	call   0x41f55e
40c23d:	59                   	pop    %ecx