40bf46:	68 a0 0f 00 00       	push   $0xfa0
40bf4b:	8d 46 0c             	lea    0xc(%esi),%eax
40bf4e:	50                   	push   %eax
40bf4f:	e8 08 71 00 00       	call   0x41305c
40bf54:	59                   	pop    %ecx
40bf55:	59                   	pop    %ecx
40bf56:	85 c0                	test   %eax,%eax
40bf58:	0f 84 c9 00 00 00    	je     0x40c027
40bf5e:	ff 46 08             	incl   0x8(%esi)
40bf61:	ff 45 e0             	incl   -0x20(%ebp)
40bf64:	43                   	inc    %ebx
40bf65:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
40bf69:	39 7d e0             	cmp    %edi,-0x20(%ebp)
40bf6c:	7c 93                	jl     0x40bf01
40bf6e:	33 db                	xor    %ebx,%ebx
40bf70:	8b f3                	mov    %ebx,%esi
40bf72:	c1 e6 06             	shl    $0x6,%esi
40bf75:	03 35 60 12 c7 00    	add    0xc71260,%esi
40bf7b:	8b 06                	mov    (%esi),%eax
40bf7d:	83 f8 ff             	cmp    $0xffffffff,%eax
40bf80:	74 0b                	je     0x40bf8d
40bf82:	83 f8 fe             	cmp    $0xfffffffe,%eax
40bf85:	74 06                	je     0x40bf8d
40bf87:	80 4e 04 80          	orb    $0x80,0x4(%esi)
40bf8b:	eb 72                	jmp    0x40bfff
40bf8d:	c6 46 04 81          	movb   $0x81,0x4(%esi)
40bf91:	85 db                	test   %ebx,%ebx
40bf93:	75 05                	jne    0x40bf9a
40bf95:	6a f6                	push   $0xfffffff6
40bf97:	58                   	pop    %eax
40bf98:	eb 0a                	jmp    0x40bfa4
40bf9a:	8b c3                	mov    %ebx,%eax
40bf9c:	48                   	dec    %eax
40bf9d:	f7 d8                	neg    %eax
40bf9f:	1b c0                	sbb    %eax,%eax
40bfa1:	83 c0 f5             	add    $0xfffffff5,%eax
40bfa4:	50                   	push   %eax
40bfa5:	ff 15 08 a1 41 00    	call   *0x41a108
40bfab:	8b f8                	mov    %eax,%edi
40bfad:	83 ff ff             	cmp    $0xffffffff,%edi
40bfb0:	74 43                	je     0x40bff5
40bfb2:	85 ff                	test   %edi,%edi
40bfb4:	74 3f                	je     0x40bff5
40bfb6:	57                   	push   %edi
40bfb7:	ff 15 0c a1 41 00    	call   *0x41a10c
40bfbd:	85 c0                	test   %eax,%eax
40bfbf:	74 34                	je     0x40bff5
40bfc1:	89 3e                	mov    %edi,(%esi)
40bfc3:	25 ff 00 00 00       	and    $0xff,%eax
40bfc8:	83 f8 02             	cmp    $0x2,%eax
40bfcb:	75 06                	jne    0x40bfd3
40bfcd:	80 4e 04 40          	orb    $0x40,0x4(%esi)
40bfd1:	eb 09                	jmp    0x40bfdc
40bfd3:	83 f8 03             	cmp    $0x3,%eax
40bfd6:	75 04                	jne    0x40bfdc
40bfd8:	80 4e 04 08          	orb    $0x8,0x4(%esi)
40bfdc:	68 a0 0f 00 00       	push   $0xfa0
40bfe1:	8d 46 0c             	lea    0xc(%esi),%eax
40bfe4:	50                   	push   %eax
40bfe5:	e8 72 70 00 00       	call   0x41305c
40bfea:	59                   	pop    %ecx
40bfeb:	59                   	pop    %ecx
40bfec:	85 c0                	test   %eax,%eax
40bfee:	74 37                	je     0x40c027
40bff0:	ff 46 08             	incl   0x8(%esi)
40bff3:	eb 0a                	jmp    0x40bfff
40bff5:	80 4e 04 40          	orb    $0x40,0x4(%esi)
40bff9:	c7 06 fe ff ff ff    	movl   $0xfffffffe,(%esi)
40bfff:	43                   	inc    %ebx
40c000:	83 fb 03             	cmp    $0x3,%ebx
40c003:	0f 8c 67 ff ff ff    	jl     0x40bf70
40c009:	ff 35 44 12 c7 00    	push   0xc71244
40c00f:	ff 15 04 a1 41 00    	call   *0x41a104
40c015:	33 c0                	xor    %eax,%eax
40c017:	eb 11                	jmp    0x40c02a
40c019:	33 c0                	xor    %eax,%eax
40c01b:	40                   	inc    %eax
40c01c:	c3                   	ret
40c01d:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c020:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c027:	83 c8 ff             	or     $0xffffffff,%eax
40c02a:	e8 f2 e3 ff ff       	call   0x40a421
40c02f:	c3                   	ret
40c030:	8b ff                	mov    %edi,%edi
40c032:	55                   	push   %ebp
40c033:	8b ec                	mov    %esp,%ebp
40c035:	56                   	push   %esi
40c036:	8b 75 08             	mov    0x8(%ebp),%esi
40c039:	56                   	push   %esi
40c03a:	e8 82 91 00 00       	call   0x4151c1
40c03f:	59                   	pop    %ecx
40c040:	83 f8 ff             	cmp    $0xffffffff,%eax
40c043:	75 10                	jne    0x40c055
40c045:	e8 8b 9a ff ff       	call   0x405ad5
40c04a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c050:	83 c8 ff             	or     $0xffffffff,%eax
40c053:	eb 4d                	jmp    0x40c0a2
40c055:	57                   	push   %edi
40c056:	ff 75 10             	push   0x10(%ebp)
40c059:	6a 00                	push   $0x0
40c05b:	ff 75 0c             	push   0xc(%ebp)
40c05e:	50                   	push   %eax
40c05f:	ff 15 10 a1 41 00    	call   *0x41a110
40c065:	8b f8                	mov    %eax,%edi
40c067:	83 ff ff             	cmp    $0xffffffff,%edi
40c06a:	75 08                	jne    0x40c074
40c06c:	ff 15 98 a0 41 00    	call   *0x41a098
40c072:	eb 02                	jmp    0x40c076
40c074:	33 c0                	xor    %eax,%eax
40c076:	85 c0                	test   %eax,%eax
40c078:	74 0c                	je     0x40c086
40c07a:	50                   	push   %eax
40c07b:	e8 7b 9a ff ff       	call   0x405afb
40c080:	59                   	pop    %ecx
40c081:	83 c8 ff             	or     $0xffffffff,%eax
40c084:	eb 1b                	jmp    0x40c0a1
40c086:	8b c6                	mov    %esi,%eax
40c088:	c1 f8 05             	sar    $0x5,%eax
40c08b:	8b 04 85 60 12 c7 00 	mov    0xc71260(,%eax,4),%eax
40c092:	83 e6 1f             	and    $0x1f,%esi
40c095:	c1 e6 06             	shl    $0x6,%esi
40c098:	8d 44 30 04          	lea    0x4(%eax,%esi,1),%eax
40c09c:	80 20 fd             	andb   $0xfd,(%eax)
40c09f:	8b c7                	mov    %edi,%eax
40c0a1:	5f                   	pop    %edi
40c0a2:	5e                   	pop    %esi
40c0a3:	5d                   	pop    %ebp
40c0a4:	c3                   	ret
40c0a5:	6a 10                	push   $0x10
40c0a7:	68 28 97 42 00       	push   $0x429728
40c0ac:	e8 2b e3 ff ff       	call   0x40a3dc
40c0b1:	8b 45 08             	mov    0x8(%ebp),%eax
40c0b4:	83 f8 fe             	cmp    $0xfffffffe,%eax
40c0b7:	75 1b                	jne    0x40c0d4
40c0b9:	e8 2a 9a ff ff       	call   0x405ae8
40c0be:	83 20 00             	andl   $0x0,(%eax)
40c0c1:	e8 0f 9a ff ff       	call   0x405ad5
40c0c6:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c0cc:	83 c8 ff             	or     $0xffffffff,%eax
40c0cf:	e9 9d 00 00 00       	jmp    0x40c171
40c0d4:	33 ff                	xor    %edi,%edi
40c0d6:	3b c7                	cmp    %edi,%eax
40c0d8:	7c 08                	jl     0x40c0e2
40c0da:	3b 05 44 12 c7 00    	cmp    0xc71244,%eax
40c0e0:	72 21                	jb     0x40c103
40c0e2:	e8 01 9a ff ff       	call   0x405ae8
40c0e7:	89 38                	mov    %edi,(%eax)
40c0e9:	e8 e7 99 ff ff       	call   0x405ad5
40c0ee:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c0f4:	57                   	push   %edi
40c0f5:	57                   	push   %edi
40c0f6:	57                   	push   %edi
40c0f7:	57                   	push   %edi
40c0f8:	57                   	push   %edi
40c0f9:	e8 27 91 ff ff       	call   0x405225
40c0fe:	83 c4 14             	add    $0x14,%esp
40c101:	eb c9                	jmp    0x40c0cc
40c103:	8b c8                	mov    %eax,%ecx
40c105:	c1 f9 05             	sar    $0x5,%ecx
40c108:	8d 1c 8d 60 12 c7 00 	lea    0xc71260(,%ecx,4),%ebx
40c10f:	8b f0                	mov    %eax,%esi
40c111:	83 e6 1f             	and    $0x1f,%esi
40c114:	c1 e6 06             	shl    $0x6,%esi
40c117:	8b 0b                	mov    (%ebx),%ecx
40c119:	0f be 4c 31 04       	movsbl 0x4(%ecx,%esi,1),%ecx
40c11e:	83 e1 01             	and    $0x1,%ecx
40c121:	74 bf                	je     0x40c0e2
40c123:	50                   	push   %eax
40c124:	e8 0f 91 00 00       	call   0x415238
40c129:	59                   	pop    %ecx
40c12a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c12d:	8b 03                	mov    (%ebx),%eax
40c12f:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
40c134:	74 16                	je     0x40c14c
40c136:	ff 75 10             	push   0x10(%ebp)
40c139:	ff 75 0c             	push   0xc(%ebp)
40c13c:	ff 75 08             	push   0x8(%ebp)
40c13f:	e8 ec fe ff ff       	call   0x40c030
40c144:	83 c4 0c             	add    $0xc,%esp
40c147:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c14a:	eb 16                	jmp    0x40c162
40c14c:	e8 84 99 ff ff       	call   0x405ad5
40c151:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c157:	e8 8c 99 ff ff       	call   0x405ae8
40c15c:	89 38                	mov    %edi,(%eax)
40c15e:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40c162:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c169:	e8 09 00 00 00       	call   0x40c177
40c16e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c171:	e8 ab e2 ff ff       	call   0x40a421
40c176:	c3                   	ret
40c177:	ff 75 08             	push   0x8(%ebp)
40c17a:	e8 59 91 00 00       	call   0x4152d8
40c17f:	59                   	pop    %ecx
40c180:	c3                   	ret
40c181:	8b ff                	mov    %edi,%edi
40c183:	55                   	push   %ebp
40c184:	8b ec                	mov    %esp,%ebp
40c186:	8b 45 08             	mov    0x8(%ebp),%eax
40c189:	56                   	push   %esi
40c18a:	33 f6                	xor    %esi,%esi
40c18c:	3b c6                	cmp    %esi,%eax
40c18e:	75 1d                	jne    0x40c1ad
40c190:	e8 40 99 ff ff       	call   0x405ad5
40c195:	56                   	push   %esi
40c196:	56                   	push   %esi
40c197:	56                   	push   %esi
40c198:	56                   	push   %esi
40c199:	56                   	push   %esi
40c19a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c1a0:	e8 80 90 ff ff       	call   0x405225
40c1a5:	83 c4 14             	add    $0x14,%esp
40c1a8:	83 c8 ff             	or     $0xffffffff,%eax
40c1ab:	eb 03                	jmp    0x40c1b0
40c1ad:	8b 40 10             	mov    0x10(%eax),%eax
40c1b0:	5e                   	pop    %esi
40c1b1:	5d                   	pop    %ebp
40c1b2:	c3                   	ret
40c1b3:	6a 0c                	push   $0xc
40c1b5:	68 48 97 42 00       	push   $0x429748
40c1ba:	e8 1d e2 ff ff       	call   0x40a3dc
40c1bf:	6a 0e                	push   $0xe
40c1c1:	e8 1e d7 ff ff       	call   0x4098e4
40c1c6:	59                   	pop    %ecx
40c1c7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c1cb:	8b 75 08             	mov    0x8(%ebp),%esi
40c1ce:	8b 4e 04             	mov    0x4(%esi),%ecx
40c1d1:	85 c9                	test   %ecx,%ecx
40c1d3:	74 2f                	je     0x40c204
40c1d5:	a1 84 09 43 00       	mov    0x430984,%eax
40c1da:	ba 80 09 43 00       	mov    $0x430980,%edx
40c1df:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c1e2:	85 c0                	test   %eax,%eax
40c1e4:	74 11                	je     0x40c1f7
40c1e6:	39 08                	cmp    %ecx,(%eax)
40c1e8:	75 2c                	jne    0x40c216
40c1ea:	8b 48 04             	mov    0x4(%eax),%ecx
40c1ed:	89 4a 04             	mov    %ecx,0x4(%edx)
40c1f0:	50                   	push   %eax
40c1f1:	e8 2a 8e ff ff       	call   0x405020
40c1f6:	59                   	pop    %ecx
40c1f7:	ff 76 04             	push   0x4(%esi)
40c1fa:	e8 21 8e ff ff       	call   0x405020
40c1ff:	59                   	pop    %ecx
40c200:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c204:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c20b:	e8 0a 00 00 00       	call   0x40c21a
40c210:	e8 0c e2 ff ff       	call   0x40a421
40c215:	c3                   	ret
40c216:	8b d0                	mov    %eax,%edx
40c218:	eb c5                	jmp    0x40c1df
40c21a:	6a 0e                	push   $0xe
40c21c:	e8 e9 d5 ff ff       	call   0x40980a
40c221:	59                   	pop    %ecx
40c222:	c3                   	ret
40c223:	cc                   	int3
40c224:	cc                   	int3
40c225:	cc                   	int3
40c226:	cc                   	int3
40c227:	cc                   	int3
40c228:	cc                   	int3
40c229:	cc                   	int3
40c22a:	cc                   	int3
40c22b:	cc                   	int3
40c22c:	cc                   	int3
40c22d:	cc                   	int3
40c22e:	cc                   	int3
40c22f:	cc                   	int3
40c230:	8b 54 24 04          	mov    0x4(%esp),%edx
40c234:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40c238:	f7 c2 03 00 00 00    	test   $0x3,%edx
40c23e:	75 3c                	jne    0x40c27c
40c240:	8b 02                	mov    (%edx),%eax
40c242:	3a 01                	cmp    (%ecx),%al
40c244:	75 2e                	jne    0x40c274
40c246:	0a c0                	or     %al,%al
40c248:	74 26                	je     0x40c270
40c24a:	3a 61 01             	cmp    0x1(%ecx),%ah
40c24d:	75 25                	jne    0x40c274
40c24f:	0a e4                	or     %ah,%ah
40c251:	74 1d                	je     0x40c270
40c253:	c1 e8 10             	shr    $0x10,%eax
40c256:	3a 41 02             	cmp    0x2(%ecx),%al
40c259:	75 19                	jne    0x40c274
40c25b:	0a c0                	or     %al,%al
40c25d:	74 11                	je     0x40c270
40c25f:	3a 61 03             	cmp    0x3(%ecx),%ah
40c262:	75 10                	jne    0x40c274
40c264:	83 c1 04             	add    $0x4,%ecx
40c267:	83 c2 04             	add    $0x4,%edx
40c26a:	0a e4                	or     %ah,%ah
40c26c:	75 d2                	jne    0x40c240
40c26e:	8b ff                	mov    %edi,%edi
40c270:	33 c0                	xor    %eax,%eax
40c272:	c3                   	ret
40c273:	90                   	nop
40c274:	1b c0                	sbb    %eax,%eax
40c276:	d1 e0                	shl    $1,%eax
40c278:	83 c0 01             	add    $0x1,%eax
40c27b:	c3                   	ret
40c27c:	f7 c2 01 00 00 00    	test   $0x1,%edx
40c282:	74 18                	je     0x40c29c
40c284:	8a 02                	mov    (%edx),%al
40c286:	83 c2 01             	add    $0x1,%edx
40c289:	3a 01                	cmp    (%ecx),%al
40c28b:	75 e7                	jne    0x40c274
40c28d:	83 c1 01             	add    $0x1,%ecx
40c290:	0a c0                	or     %al,%al
40c292:	74 dc                	je     0x40c270
40c294:	f7 c2 02 00 00 00    	test   $0x2,%edx
40c29a:	74 a4                	je     0x40c240
40c29c:	66 8b 02             	mov    (%edx),%ax
40c29f:	83 c2 02             	add    $0x2,%edx
40c2a2:	3a 01                	cmp    (%ecx),%al
40c2a4:	75 ce                	jne    0x40c274
40c2a6:	0a c0                	or     %al,%al
40c2a8:	74 c6                	je     0x40c270
40c2aa:	3a 61 01             	cmp    0x1(%ecx),%ah
40c2ad:	75 c5                	jne    0x40c274
40c2af:	0a e4                	or     %ah,%ah
40c2b1:	74 bd                	je     0x40c270
40c2b3:	83 c1 02             	add    $0x2,%ecx
40c2b6:	eb 88                	jmp    0x40c240
40c2b8:	8b ff                	mov    %edi,%edi
40c2ba:	55                   	push   %ebp
40c2bb:	8b ec                	mov    %esp,%ebp
40c2bd:	56                   	push   %esi
40c2be:	8b 75 08             	mov    0x8(%ebp),%esi
40c2c1:	57                   	push   %edi
40c2c2:	56                   	push   %esi
40c2c3:	e8 f9 8e 00 00       	call   0x4151c1
40c2c8:	59                   	pop    %ecx
40c2c9:	83 f8 ff             	cmp    $0xffffffff,%eax
40c2cc:	74 50                	je     0x40c31e
40c2ce:	a1 60 12 c7 00       	mov    0xc71260,%eax
40c2d3:	83 fe 01             	cmp    $0x1,%esi
40c2d6:	75 09                	jne    0x40c2e1
40c2d8:	f6 80 84 00 00 00 01 	testb  $0x1,0x84(%eax)
40c2df:	75 0b                	jne    0x40c2ec
40c2e1:	83 fe 02             	cmp    $0x2,%esi
40c2e4:	75 1c                	jne    0x40c302
40c2e6:	f6 40 44 01          	testb  $0x1,0x44(%eax)
40c2ea:	74 16                	je     0x40c302
40c2ec:	6a 02                	push   $0x2
40c2ee:	e8 ce 8e 00 00       	call   0x4151c1
40c2f3:	6a 01                	push   $0x1
40c2f5:	8b f8                	mov    %eax,%edi
40c2f7:	e8 c5 8e 00 00       	call   0x4151c1
40c2fc:	59                   	pop    %ecx
40c2fd:	59                   	pop    %ecx