40cfc1:	55                   	push   %ebp
40cfc2:	8b ec                	mov    %esp,%ebp
40cfc4:	83 ec 0c             	sub    $0xc,%esp
40cfc7:	53                   	push   %ebx
40cfc8:	33 db                	xor    %ebx,%ebx
40cfca:	56                   	push   %esi
40cfcb:	57                   	push   %edi
40cfcc:	39 1d 3c 12 c7 00    	cmp    %ebx,0xc7123c
40cfd2:	75 05                	jne    0x40cfd9
40cfd4:	e8 ea 29 00 00       	call   0x40f9c3
40cfd9:	68 04 01 00 00       	push   $0x104
40cfde:	be d8 0c 43 00       	mov    $0x430cd8,%esi
40cfe3:	56                   	push   %esi
40cfe4:	53                   	push   %ebx
40cfe5:	88 1d dc 0d 43 00    	mov    %bl,0x430ddc
40cfeb:	ff 15 20 a1 41 00    	call   *0x41a120
40cff1:	a1 a4 23 c7 00       	mov    0xc723a4,%eax
40cff6:	89 35 ac 09 43 00    	mov    %esi,0x4309ac
40cffc:	3b c3                	cmp    %ebx,%eax
40cffe:	74 07                	je     0x40d007
40d000:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d003:	38 18                	cmp    %bl,(%eax)
40d005:	75 03                	jne    0x40d00a
40d007:	89 75 fc             	mov    %esi,-0x4(%ebp)
40d00a:	8b 55 fc             	mov    -0x4(%ebp),%edx
40d00d:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d010:	50                   	push   %eax
40d011:	53                   	push   %ebx
40d012:	53                   	push   %ebx
40d013:	8d 7d f4             	lea    -0xc(%ebp),%edi
40d016:	e8 0a fe ff ff       	call   0x40ce25
40d01b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d01e:	83 c4 0c             	add    $0xc,%esp
40d021:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
40d026:	73 4a                	jae    0x40d072
40d028:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d02b:	83 f9 ff             	cmp    $0xffffffff,%ecx
40d02e:	73 42                	jae    0x40d072
40d030:	8b f8                	mov    %eax,%edi
40d032:	c1 e7 02             	shl    $0x2,%edi
40d035:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
40d038:	3b c1                	cmp    %ecx,%eax
40d03a:	72 36                	jb     0x40d072
40d03c:	50                   	push   %eax
40d03d:	e8 1e ab ff ff       	call   0x407b60
40d042:	8b f0                	mov    %eax,%esi
40d044:	59                   	pop    %ecx
40d045:	3b f3                	cmp    %ebx,%esi
40d047:	74 29                	je     0x40d072
40d049:	8b 55 fc             	mov    -0x4(%ebp),%edx
40d04c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d04f:	50                   	push   %eax
40d050:	03 fe                	add    %esi,%edi
40d052:	57                   	push   %edi
40d053:	56                   	push   %esi
40d054:	8d 7d f4             	lea    -0xc(%ebp),%edi
40d057:	e8 c9 fd ff ff       	call   0x40ce25
40d05c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d05f:	83 c4 0c             	add    $0xc,%esp
40d062:	48                   	dec    %eax
40d063:	a3 90 09 43 00       	mov    %eax,0x430990
40d068:	89 35 94 09 43 00    	mov    %esi,0x430994
40d06e:	33 c0                	xor    %eax,%eax
40d070:	eb 03                	jmp    0x40d075
40d072:	83 c8 ff             	or     $0xffffffff,%eax
40d075:	5f                   	pop    %edi
40d076:	5e                   	pop    %esi
40d077:	5b                   	pop    %ebx
40d078:	c9                   	leave
40d079:	c3                   	ret
40d07a:	8b ff                	mov    %edi,%edi
40d07c:	55                   	push   %ebp
40d07d:	8b ec                	mov    %esp,%ebp
40d07f:	a1 e0 0d 43 00       	mov    0x430de0,%eax
40d084:	83 ec 0c             	sub    $0xc,%esp
40d087:	53                   	push   %ebx
40d088:	56                   	push   %esi
40d089:	8b 35 0c a0 41 00    	mov    0x41a00c,%esi
40d08f:	57                   	push   %edi
40d090:	33 db                	xor    %ebx,%ebx
40d092:	33 ff                	xor    %edi,%edi
40d094:	3b c3                	cmp    %ebx,%eax
40d096:	75 2e                	jne    0x40d0c6
40d098:	ff d6                	call   *%esi
40d09a:	8b f8                	mov    %eax,%edi
40d09c:	3b fb                	cmp    %ebx,%edi
40d09e:	74 0c                	je     0x40d0ac
40d0a0:	c7 05 e0 0d 43 00 01 	movl   $0x1,0x430de0
40d0a7:	00 00 00
40d0aa:	eb 23                	jmp    0x40d0cf
40d0ac:	ff 15 98 a0 41 00    	call   *0x41a098
40d0b2:	83 f8 78             	cmp    $0x78,%eax
40d0b5:	75 0a                	jne    0x40d0c1
40d0b7:	6a 02                	push   $0x2
40d0b9:	58                   	pop    %eax
40d0ba:	a3 e0 0d 43 00       	mov    %eax,0x430de0
40d0bf:	eb 05                	jmp    0x40d0c6
40d0c1:	a1 e0 0d 43 00       	mov    0x430de0,%eax
40d0c6:	83 f8 01             	cmp    $0x1,%eax
40d0c9:	0f 85 81 00 00 00    	jne    0x40d150
40d0cf:	3b fb                	cmp    %ebx,%edi
40d0d1:	75 0f                	jne    0x40d0e2
40d0d3:	ff d6                	call   *%esi
40d0d5:	8b f8                	mov    %eax,%edi
40d0d7:	3b fb                	cmp    %ebx,%edi
40d0d9:	75 07                	jne    0x40d0e2
40d0db:	33 c0                	xor    %eax,%eax
40d0dd:	e9 ca 00 00 00       	jmp    0x40d1ac
40d0e2:	8b c7                	mov    %edi,%eax
40d0e4:	66 39 1f             	cmp    %bx,(%edi)
40d0e7:	74 0e                	je     0x40d0f7
40d0e9:	40                   	inc    %eax
40d0ea:	40                   	inc    %eax
40d0eb:	66 39 18             	cmp    %bx,(%eax)
40d0ee:	75 f9                	jne    0x40d0e9
40d0f0:	40                   	inc    %eax
40d0f1:	40                   	inc    %eax
40d0f2:	66 39 18             	cmp    %bx,(%eax)
40d0f5:	75 f2                	jne    0x40d0e9
40d0f7:	8b 35 70 a0 41 00    	mov    0x41a070,%esi
40d0fd:	53                   	push   %ebx
40d0fe:	53                   	push   %ebx
40d0ff:	53                   	push   %ebx
40d100:	2b c7                	sub    %edi,%eax
40d102:	53                   	push   %ebx
40d103:	d1 f8                	sar    $1,%eax
40d105:	40                   	inc    %eax
40d106:	50                   	push   %eax
40d107:	57                   	push   %edi
40d108:	53                   	push   %ebx
40d109:	53                   	push   %ebx
40d10a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d10d:	ff d6                	call   *%esi
40d10f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d112:	3b c3                	cmp    %ebx,%eax
40d114:	74 2f                	je     0x40d145
40d116:	50                   	push   %eax
40d117:	e8 44 aa ff ff       	call   0x407b60
40d11c:	59                   	pop    %ecx
40d11d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d120:	3b c3                	cmp    %ebx,%eax
40d122:	74 21                	je     0x40d145
40d124:	53                   	push   %ebx
40d125:	53                   	push   %ebx
40d126:	ff 75 f8             	push   -0x8(%ebp)
40d129:	50                   	push   %eax
40d12a:	ff 75 f4             	push   -0xc(%ebp)
40d12d:	57                   	push   %edi
40d12e:	53                   	push   %ebx
40d12f:	53                   	push   %ebx
40d130:	ff d6                	call   *%esi
40d132:	85 c0                	test   %eax,%eax
40d134:	75 0c                	jne    0x40d142
40d136:	ff 75 fc             	push   -0x4(%ebp)
40d139:	e8 e2 7e ff ff       	call   0x405020
40d13e:	59                   	pop    %ecx
40d13f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d142:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40d145:	57                   	push   %edi
40d146:	ff 15 28 a1 41 00    	call   *0x41a128
40d14c:	8b c3                	mov    %ebx,%eax
40d14e:	eb 5c                	jmp    0x40d1ac
40d150:	83 f8 02             	cmp    $0x2,%eax
40d153:	74 04                	je     0x40d159
40d155:	3b c3                	cmp    %ebx,%eax
40d157:	75 82                	jne    0x40d0db
40d159:	ff 15 1c a0 41 00    	call   *0x41a01c
40d15f:	8b f0                	mov    %eax,%esi
40d161:	3b f3                	cmp    %ebx,%esi
40d163:	0f 84 72 ff ff ff    	je     0x40d0db
40d169:	38 1e                	cmp    %bl,(%esi)
40d16b:	74 0a                	je     0x40d177
40d16d:	40                   	inc    %eax
40d16e:	38 18                	cmp    %bl,(%eax)
40d170:	75 fb                	jne    0x40d16d
40d172:	40                   	inc    %eax
40d173:	38 18                	cmp    %bl,(%eax)
40d175:	75 f6                	jne    0x40d16d
40d177:	2b c6                	sub    %esi,%eax
40d179:	40                   	inc    %eax
40d17a:	50                   	push   %eax
40d17b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d17e:	e8 dd a9 ff ff       	call   0x407b60
40d183:	8b f8                	mov    %eax,%edi
40d185:	59                   	pop    %ecx
40d186:	3b fb                	cmp    %ebx,%edi
40d188:	75 0c                	jne    0x40d196
40d18a:	56                   	push   %esi
40d18b:	ff 15 24 a1 41 00    	call   *0x41a124
40d191:	e9 45 ff ff ff       	jmp    0x40d0db
40d196:	ff 75 f8             	push   -0x8(%ebp)
40d199:	56                   	push   %esi
40d19a:	57                   	push   %edi
40d19b:	e8 60 af ff ff       	call   0x408100
40d1a0:	83 c4 0c             	add    $0xc,%esp
40d1a3:	56                   	push   %esi
40d1a4:	ff 15 24 a1 41 00    	call   *0x41a124
40d1aa:	8b c7                	mov    %edi,%eax
40d1ac:	5f                   	pop    %edi
40d1ad:	5e                   	pop    %esi
40d1ae:	5b                   	pop    %ebx
40d1af:	c9                   	leave
40d1b0:	c3                   	ret
40d1b1:	8b ff                	mov    %edi,%edi
40d1b3:	56                   	push   %esi
40d1b4:	b8 bc 93 42 00       	mov    $0x4293bc,%eax
40d1b9:	be bc 93 42 00       	mov    $0x4293bc,%esi
40d1be:	57                   	push   %edi
40d1bf:	8b f8                	mov    %eax,%edi
40d1c1:	3b c6                	cmp    %esi,%eax
40d1c3:	73 0f                	jae    0x40d1d4
40d1c5:	8b 07                	mov    (%edi),%eax
40d1c7:	85 c0                	test   %eax,%eax
40d1c9:	74 02                	je     0x40d1cd
40d1cb:	ff d0                	call   *%eax
40d1cd:	83 c7 04             	add    $0x4,%edi
40d1d0:	3b fe                	cmp    %esi,%edi
40d1d2:	72 f1                	jb     0x40d1c5
40d1d4:	5f                   	pop    %edi
40d1d5:	5e                   	pop    %esi
40d1d6:	c3                   	ret
40d1d7:	8b ff                	mov    %edi,%edi
40d1d9:	56                   	push   %esi
40d1da:	b8 c4 93 42 00       	mov    $0x4293c4,%eax
40d1df:	be c4 93 42 00       	mov    $0x4293c4,%esi
40d1e4:	57                   	push   %edi
40d1e5:	8b f8                	mov    %eax,%edi
40d1e7:	3b c6                	cmp    %esi,%eax
40d1e9:	73 0f                	jae    0x40d1fa
40d1eb:	8b 07                	mov    (%edi),%eax
40d1ed:	85 c0                	test   %eax,%eax
40d1ef:	74 02                	je     0x40d1f3
40d1f1:	ff d0                	call   *%eax
40d1f3:	83 c7 04             	add    $0x4,%edi
40d1f6:	3b fe                	cmp    %esi,%edi
40d1f8:	72 f1                	jb     0x40d1eb
40d1fa:	5f                   	pop    %edi
40d1fb:	5e                   	pop    %esi
40d1fc:	c3                   	ret
40d1fd:	8b ff                	mov    %edi,%edi
40d1ff:	55                   	push   %ebp
40d200:	8b ec                	mov    %esp,%ebp
40d202:	83 ec 10             	sub    $0x10,%esp
40d205:	a1 68 b2 42 00       	mov    0x42b268,%eax
40d20a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40d20e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d212:	53                   	push   %ebx
40d213:	57                   	push   %edi
40d214:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40d219:	bb 00 00 ff ff       	mov    $0xffff0000,%ebx
40d21e:	3b c7                	cmp    %edi,%eax
40d220:	74 0d                	je     0x40d22f
40d222:	85 c3                	test   %eax,%ebx
40d224:	74 09                	je     0x40d22f
40d226:	f7 d0                	not    %eax
40d228:	a3 6c b2 42 00       	mov    %eax,0x42b26c
40d22d:	eb 60                	jmp    0x40d28f
40d22f:	56                   	push   %esi
40d230:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d233:	50                   	push   %eax
40d234:	ff 15 38 a1 41 00    	call   *0x41a138
40d23a:	8b 75 fc             	mov    -0x4(%ebp),%esi
40d23d:	33 75 f8             	xor    -0x8(%ebp),%esi
40d240:	ff 15 34 a1 41 00    	call   *0x41a134
40d246:	33 f0                	xor    %eax,%esi
40d248:	ff 15 00 a1 41 00    	call   *0x41a100
40d24e:	33 f0                	xor    %eax,%esi
40d250:	ff 15 30 a1 41 00    	call   *0x41a130
40d256:	33 f0                	xor    %eax,%esi
40d258:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d25b:	50                   	push   %eax
40d25c:	ff 15 2c a1 41 00    	call   *0x41a12c
40d262:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d265:	33 45 f0             	xor    -0x10(%ebp),%eax
40d268:	33 f0                	xor    %eax,%esi
40d26a:	3b f7                	cmp    %edi,%esi
40d26c:	75 07                	jne    0x40d275
40d26e:	be 4f e6 40 bb       	mov    $0xbb40e64f,%esi
40d273:	eb 0b                	jmp    0x40d280
40d275:	85 f3                	test   %esi,%ebx
40d277:	75 07                	jne    0x40d280
40d279:	8b c6                	mov    %esi,%eax
40d27b:	c1 e0 10             	shl    $0x10,%eax
40d27e:	0b f0                	or     %eax,%esi
40d280:	89 35 68 b2 42 00    	mov    %esi,0x42b268
40d286:	f7 d6                	not    %esi
40d288:	89 35 6c b2 42 00    	mov    %esi,0x42b26c
40d28e:	5e                   	pop    %esi
40d28f:	5f                   	pop    %edi
40d290:	5b                   	pop    %ebx
40d291:	c9                   	leave
40d292:	c3                   	ret
40d293:	8b ff                	mov    %edi,%edi
40d295:	55                   	push   %ebp
40d296:	8b ec                	mov    %esp,%ebp
40d298:	51                   	push   %ecx
40d299:	51                   	push   %ecx
40d29a:	a1 68 b2 42 00       	mov    0x42b268,%eax
40d29f:	33 c5                	xor    %ebp,%eax
40d2a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d2a4:	a1 e4 0d 43 00       	mov    0x430de4,%eax
40d2a9:	53                   	push   %ebx
40d2aa:	56                   	push   %esi
40d2ab:	33 db                	xor    %ebx,%ebx
40d2ad:	57                   	push   %edi
40d2ae:	8b f9                	mov    %ecx,%edi
40d2b0:	3b c3                	cmp    %ebx,%eax
40d2b2:	75 3a                	jne    0x40d2ee
40d2b4:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d2b7:	50                   	push   %eax
40d2b8:	33 f6                	xor    %esi,%esi
40d2ba:	46                   	inc    %esi
40d2bb:	56                   	push   %esi
40d2bc:	68 f0 ab 41 00       	push   $0x41abf0
40d2c1:	56                   	push   %esi
40d2c2:	ff 15 d0 a0 41 00    	call   *0x41a0d0
40d2c8:	85 c0                	test   %eax,%eax
40d2ca:	74 08                	je     0x40d2d4
40d2cc:	89 35 e4 0d 43 00    	mov    %esi,0x430de4
40d2d2:	eb 34                	jmp    0x40d308
40d2d4:	ff 15 98 a0 41 00    	call   *0x41a098
40d2da:	83 f8 78             	cmp    $0x78,%eax
40d2dd:	75 0a                	jne    0x40d2e9
40d2df:	6a 02                	push   $0x2
40d2e1:	58                   	pop    %eax
40d2e2:	a3 e4 0d 43 00       	mov    %eax,0x430de4
40d2e7:	eb 05                	jmp    0x40d2ee
40d2e9:	a1 e4 0d 43 00       	mov    0x430de4,%eax
40d2ee:	83 f8 02             	cmp    $0x2,%eax
40d2f1:	0f 84 cf 00 00 00    	je     0x40d3c6
40d2f7:	3b c3                	cmp    %ebx,%eax
40d2f9:	0f 84 c7 00 00 00    	je     0x40d3c6
40d2ff:	83 f8 01             	cmp    $0x1,%eax
40d302:	0f 85 e8 00 00 00    	jne    0x40d3f0
40d308:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40d30b:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40d30e:	75 08                	jne    0x40d318
40d310:	8b 07                	mov    (%edi),%eax
40d312:	8b 40 04             	mov    0x4(%eax),%eax
40d315:	89 45 18             	mov    %eax,0x18(%ebp)
40d318:	8b 35 80 a0 41 00    	mov    0x41a080,%esi
40d31e:	33 c0                	xor    %eax,%eax
40d320:	39 5d 20             	cmp    %ebx,0x20(%ebp)
40d323:	53                   	push   %ebx
40d324:	53                   	push   %ebx
40d325:	ff 75 10             	push   0x10(%ebp)
40d328:	0f 95 c0             	setne  %al
40d32b:	ff 75 0c             	push   0xc(%ebp)
40d32e:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
40d335:	50                   	push   %eax