4061b8:	5e                   	pop    %esi
4061b9:	5b                   	pop    %ebx
4061ba:	c9                   	leave
4061bb:	c3                   	ret
4061bc:	8b ff                	mov    %edi,%edi
4061be:	56                   	push   %esi
4061bf:	6a 04                	push   $0x4
4061c1:	6a 20                	push   $0x20
4061c3:	e8 dd 19 00 00       	call   0x407ba5
4061c8:	8b f0                	mov    %eax,%esi
4061ca:	56                   	push   %esi
4061cb:	e8 aa 45 00 00       	call   0x40a77a
4061d0:	83 c4 0c             	add    $0xc,%esp
4061d3:	a3 38 12 c7 00       	mov    %eax,0xc71238
4061d8:	a3 34 12 c7 00       	mov    %eax,0xc71234
4061dd:	85 f6                	test   %esi,%esi
4061df:	75 05                	jne    0x4061e6
4061e1:	6a 18                	push   $0x18
4061e3:	58                   	pop    %eax
4061e4:	5e                   	pop    %esi
4061e5:	c3                   	ret
4061e6:	83 26 00             	andl   $0x0,(%esi)
4061e9:	33 c0                	xor    %eax,%eax
4061eb:	5e                   	pop    %esi
4061ec:	c3                   	ret
4061ed:	6a 0c                	push   $0xc
4061ef:	68 98 95 42 00       	push   $0x429598
4061f4:	e8 e3 41 00 00       	call   0x40a3dc
4061f9:	e8 0a 65 00 00       	call   0x40c708
4061fe:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406202:	ff 75 08             	push   0x8(%ebp)
406205:	e8 f8 fe ff ff       	call   0x406102
40620a:	59                   	pop    %ecx
40620b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40620e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406215:	e8 09 00 00 00       	call   0x406223
40621a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40621d:	e8 ff 41 00 00       	call   0x40a421
406222:	c3                   	ret
406223:	e8 e9 64 00 00       	call   0x40c711
406228:	c3                   	ret
406229:	8b ff                	mov    %edi,%edi
40622b:	55                   	push   %ebp
40622c:	8b ec                	mov    %esp,%ebp
40622e:	ff 75 08             	push   0x8(%ebp)
406231:	e8 b7 ff ff ff       	call   0x4061ed
406236:	f7 d8                	neg    %eax
406238:	1b c0                	sbb    %eax,%eax
40623a:	f7 d8                	neg    %eax
40623c:	59                   	pop    %ecx
40623d:	48                   	dec    %eax
40623e:	5d                   	pop    %ebp
40623f:	c3                   	ret
406240:	8b ff                	mov    %edi,%edi
406242:	55                   	push   %ebp
406243:	8b ec                	mov    %esp,%ebp
406245:	51                   	push   %ecx
406246:	53                   	push   %ebx
406247:	8b 45 0c             	mov    0xc(%ebp),%eax
40624a:	83 c0 0c             	add    $0xc,%eax
40624d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406250:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
406257:	8b 03                	mov    (%ebx),%eax
406259:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40625f:	8b 45 08             	mov    0x8(%ebp),%eax
406262:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406265:	8b 6d fc             	mov    -0x4(%ebp),%ebp
406268:	8b 63 fc             	mov    -0x4(%ebx),%esp
40626b:	ff e0                	jmp    *%eax
40626d:	5b                   	pop    %ebx
40626e:	c9                   	leave
40626f:	c2 08 00             	ret    $0x8
406272:	58                   	pop    %eax
406273:	59                   	pop    %ecx
406274:	87 04 24             	xchg   %eax,(%esp)
406277:	ff e0                	jmp    *%eax
406279:	8b ff                	mov    %edi,%edi
40627b:	55                   	push   %ebp
40627c:	8b ec                	mov    %esp,%ebp
40627e:	51                   	push   %ecx
40627f:	51                   	push   %ecx
406280:	53                   	push   %ebx
406281:	56                   	push   %esi
406282:	57                   	push   %edi
406283:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
40628a:	89 75 fc             	mov    %esi,-0x4(%ebp)
40628d:	c7 45 f8 a4 62 40 00 	movl   $0x4062a4,-0x8(%ebp)
406294:	6a 00                	push   $0x0
406296:	ff 75 0c             	push   0xc(%ebp)
406299:	ff 75 f8             	push   -0x8(%ebp)
40629c:	ff 75 08             	push   0x8(%ebp)
40629f:	e8 ea 33 01 00       	call   0x41968e
4062a4:	8b 45 0c             	mov    0xc(%ebp),%eax
4062a7:	8b 40 04             	mov    0x4(%eax),%eax
4062aa:	83 e0 fd             	and    $0xfffffffd,%eax
4062ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4062b0:	89 41 04             	mov    %eax,0x4(%ecx)
4062b3:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
4062ba:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4062bd:	89 3b                	mov    %edi,(%ebx)
4062bf:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4062c6:	5f                   	pop    %edi
4062c7:	5e                   	pop    %esi
4062c8:	5b                   	pop    %ebx
4062c9:	c9                   	leave
4062ca:	c2 08 00             	ret    $0x8
4062cd:	55                   	push   %ebp
4062ce:	8b ec                	mov    %esp,%ebp
4062d0:	83 ec 08             	sub    $0x8,%esp
4062d3:	53                   	push   %ebx
4062d4:	56                   	push   %esi
4062d5:	57                   	push   %edi
4062d6:	fc                   	cld
4062d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4062da:	33 c0                	xor    %eax,%eax
4062dc:	50                   	push   %eax
4062dd:	50                   	push   %eax
4062de:	50                   	push   %eax
4062df:	ff 75 fc             	push   -0x4(%ebp)
4062e2:	ff 75 14             	push   0x14(%ebp)
4062e5:	ff 75 10             	push   0x10(%ebp)
4062e8:	ff 75 0c             	push   0xc(%ebp)
4062eb:	ff 75 08             	push   0x8(%ebp)
4062ee:	e8 b2 81 00 00       	call   0x40e4a5
4062f3:	83 c4 20             	add    $0x20,%esp
4062f6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4062f9:	5f                   	pop    %edi
4062fa:	5e                   	pop    %esi
4062fb:	5b                   	pop    %ebx
4062fc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4062ff:	8b e5                	mov    %ebp,%esp
406301:	5d                   	pop    %ebp
406302:	c3                   	ret
406303:	8b ff                	mov    %edi,%edi
406305:	55                   	push   %ebp
406306:	8b ec                	mov    %esp,%ebp
406308:	56                   	push   %esi
406309:	fc                   	cld
40630a:	8b 75 0c             	mov    0xc(%ebp),%esi
40630d:	8b 4e 08             	mov    0x8(%esi),%ecx
406310:	33 ce                	xor    %esi,%ecx
406312:	e8 0f 03 00 00       	call   0x406626
406317:	6a 00                	push   $0x0
406319:	56                   	push   %esi
40631a:	ff 76 14             	push   0x14(%esi)
40631d:	ff 76 0c             	push   0xc(%esi)
406320:	6a 00                	push   $0x0
406322:	ff 75 10             	push   0x10(%ebp)
406325:	ff 76 10             	push   0x10(%esi)
406328:	ff 75 08             	push   0x8(%ebp)
40632b:	e8 75 81 00 00       	call   0x40e4a5
406330:	83 c4 20             	add    $0x20,%esp
406333:	5e                   	pop    %esi
406334:	5d                   	pop    %ebp
406335:	c3                   	ret
406336:	8b ff                	mov    %edi,%edi
406338:	55                   	push   %ebp
406339:	8b ec                	mov    %esp,%ebp
40633b:	83 ec 38             	sub    $0x38,%esp
40633e:	53                   	push   %ebx
40633f:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
406346:	75 12                	jne    0x40635a
406348:	b8 e1 63 40 00       	mov    $0x4063e1,%eax
40634d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406350:	89 01                	mov    %eax,(%ecx)
406352:	33 c0                	xor    %eax,%eax
406354:	40                   	inc    %eax
406355:	e9 b0 00 00 00       	jmp    0x40640a
40635a:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
40635e:	c7 45 dc 0d 64 40 00 	movl   $0x40640d,-0x24(%ebp)
406365:	a1 68 b2 42 00       	mov    0x42b268,%eax
40636a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40636d:	33 c1                	xor    %ecx,%eax
40636f:	89 45 e0             	mov    %eax,-0x20(%ebp)
406372:	8b 45 18             	mov    0x18(%ebp),%eax
406375:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406378:	8b 45 0c             	mov    0xc(%ebp),%eax
40637b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40637e:	8b 45 1c             	mov    0x1c(%ebp),%eax
406381:	89 45 ec             	mov    %eax,-0x14(%ebp)
406384:	8b 45 20             	mov    0x20(%ebp),%eax
406387:	89 45 f0             	mov    %eax,-0x10(%ebp)
40638a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40638e:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
406392:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406396:	89 65 f4             	mov    %esp,-0xc(%ebp)
406399:	89 6d f8             	mov    %ebp,-0x8(%ebp)
40639c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4063a2:	89 45 d8             	mov    %eax,-0x28(%ebp)
4063a5:	8d 45 d8             	lea    -0x28(%ebp),%eax
4063a8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4063ae:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
4063b5:	8b 45 08             	mov    0x8(%ebp),%eax
4063b8:	89 45 cc             	mov    %eax,-0x34(%ebp)
4063bb:	8b 45 10             	mov    0x10(%ebp),%eax
4063be:	89 45 d0             	mov    %eax,-0x30(%ebp)
4063c1:	e8 7b 46 00 00       	call   0x40aa41
4063c6:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
4063cc:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4063cf:	8d 45 cc             	lea    -0x34(%ebp),%eax
4063d2:	50                   	push   %eax
4063d3:	8b 45 08             	mov    0x8(%ebp),%eax
4063d6:	ff 30                	push   (%eax)
4063d8:	ff 55 d4             	call   *-0x2c(%ebp)
4063db:	59                   	pop    %ecx
4063dc:	59                   	pop    %ecx
4063dd:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
4063e1:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4063e5:	74 17                	je     0x4063fe
4063e7:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
4063ee:	8b 03                	mov    (%ebx),%eax
4063f0:	8b 5d d8             	mov    -0x28(%ebp),%ebx
4063f3:	89 03                	mov    %eax,(%ebx)
4063f5:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4063fc:	eb 09                	jmp    0x406407
4063fe:	8b 45 d8             	mov    -0x28(%ebp),%eax
406401:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406407:	8b 45 c8             	mov    -0x38(%ebp),%eax
40640a:	5b                   	pop    %ebx
40640b:	c9                   	leave
40640c:	c3                   	ret
40640d:	8b ff                	mov    %edi,%edi
40640f:	55                   	push   %ebp
406410:	8b ec                	mov    %esp,%ebp
406412:	51                   	push   %ecx
406413:	53                   	push   %ebx
406414:	fc                   	cld
406415:	8b 45 0c             	mov    0xc(%ebp),%eax
406418:	8b 48 08             	mov    0x8(%eax),%ecx
40641b:	33 4d 0c             	xor    0xc(%ebp),%ecx
40641e:	e8 03 02 00 00       	call   0x406626
406423:	8b 45 08             	mov    0x8(%ebp),%eax
406426:	8b 40 04             	mov    0x4(%eax),%eax
406429:	83 e0 66             	and    $0x66,%eax
40642c:	74 11                	je     0x40643f
40642e:	8b 45 0c             	mov    0xc(%ebp),%eax
406431:	c7 40 24 01 00 00 00 	movl   $0x1,0x24(%eax)
406438:	33 c0                	xor    %eax,%eax
40643a:	40                   	inc    %eax
40643b:	eb 6c                	jmp    0x4064a9
40643d:	eb 6a                	jmp    0x4064a9
40643f:	6a 01                	push   $0x1
406441:	8b 45 0c             	mov    0xc(%ebp),%eax
406444:	ff 70 18             	push   0x18(%eax)
406447:	8b 45 0c             	mov    0xc(%ebp),%eax
40644a:	ff 70 14             	push   0x14(%eax)
40644d:	8b 45 0c             	mov    0xc(%ebp),%eax
406450:	ff 70 0c             	push   0xc(%eax)
406453:	6a 00                	push   $0x0
406455:	ff 75 10             	push   0x10(%ebp)
406458:	8b 45 0c             	mov    0xc(%ebp),%eax
40645b:	ff 70 10             	push   0x10(%eax)
40645e:	ff 75 08             	push   0x8(%ebp)
406461:	e8 3f 80 00 00       	call   0x40e4a5
406466:	83 c4 20             	add    $0x20,%esp
406469:	8b 45 0c             	mov    0xc(%ebp),%eax
40646c:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
406470:	75 0b                	jne    0x40647d
406472:	ff 75 08             	push   0x8(%ebp)
406475:	ff 75 0c             	push   0xc(%ebp)
406478:	e8 fc fd ff ff       	call   0x406279
40647d:	6a 00                	push   $0x0
40647f:	6a 00                	push   $0x0
406481:	6a 00                	push   $0x0
406483:	6a 00                	push   $0x0
406485:	6a 00                	push   $0x0
406487:	8d 45 fc             	lea    -0x4(%ebp),%eax
40648a:	50                   	push   %eax
40648b:	68 23 01 00 00       	push   $0x123
406490:	e8 a1 fe ff ff       	call   0x406336
406495:	83 c4 1c             	add    $0x1c,%esp
406498:	8b 45 fc             	mov    -0x4(%ebp),%eax
40649b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40649e:	8b 63 1c             	mov    0x1c(%ebx),%esp
4064a1:	8b 6b 20             	mov    0x20(%ebx),%ebp
4064a4:	ff e0                	jmp    *%eax
4064a6:	33 c0                	xor    %eax,%eax
4064a8:	40                   	inc    %eax
4064a9:	5b                   	pop    %ebx
4064aa:	c9                   	leave
4064ab:	c3                   	ret
4064ac:	8b ff                	mov    %edi,%edi
4064ae:	55                   	push   %ebp
4064af:	8b ec                	mov    %esp,%ebp
4064b1:	51                   	push   %ecx
4064b2:	53                   	push   %ebx
4064b3:	56                   	push   %esi
4064b4:	57                   	push   %edi
4064b5:	8b 7d 08             	mov    0x8(%ebp),%edi
4064b8:	8b 47 10             	mov    0x10(%edi),%eax
4064bb:	8b 77 0c             	mov    0xc(%edi),%esi
4064be:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064c1:	8b de                	mov    %esi,%ebx
4064c3:	eb 2d                	jmp    0x4064f2
4064c5:	83 fe ff             	cmp    $0xffffffff,%esi
4064c8:	75 05                	jne    0x4064cf
4064ca:	e8 08 81 00 00       	call   0x40e5d7
4064cf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4064d2:	4e                   	dec    %esi
4064d3:	8b c6                	mov    %esi,%eax
4064d5:	6b c0 14             	imul   $0x14,%eax,%eax
4064d8:	03 c1                	add    %ecx,%eax
4064da:	8b 4d 10             	mov    0x10(%ebp),%ecx
4064dd:	39 48 04             	cmp    %ecx,0x4(%eax)
4064e0:	7d 05                	jge    0x4064e7
4064e2:	3b 48 08             	cmp    0x8(%eax),%ecx
4064e5:	7e 05                	jle    0x4064ec
4064e7:	83 fe ff             	cmp    $0xffffffff,%esi
4064ea:	75 09                	jne    0x4064f5
4064ec:	ff 4d 0c             	decl   0xc(%ebp)
4064ef:	8b 5d 08             	mov    0x8(%ebp),%ebx
4064f2:	89 75 08             	mov    %esi,0x8(%ebp)
4064f5:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4064f9:	7d ca                	jge    0x4064c5
4064fb:	8b 45 14             	mov    0x14(%ebp),%eax
4064fe:	46                   	inc    %esi
4064ff:	89 30                	mov    %esi,(%eax)
406501:	8b 45 18             	mov    0x18(%ebp),%eax
406504:	89 18                	mov    %ebx,(%eax)
406506:	3b 5f 0c             	cmp    0xc(%edi),%ebx
406509:	77 04                	ja     0x40650f
40650b:	3b f3                	cmp    %ebx,%esi
40650d:	76 05                	jbe    0x406514
40650f:	e8 c3 80 00 00       	call   0x40e5d7
406514:	8b c6                	mov    %esi,%eax
406516:	6b c0 14             	imul   $0x14,%eax,%eax
406519:	03 45 fc             	add    -0x4(%ebp),%eax
40651c:	5f                   	pop    %edi
40651d:	5e                   	pop    %esi
40651e:	5b                   	pop    %ebx
40651f:	c9                   	leave
406520:	c3                   	ret
406521:	8b ff                	mov    %edi,%edi
406523:	55                   	push   %ebp
406524:	8b ec                	mov    %esp,%ebp
406526:	8b 45 0c             	mov    0xc(%ebp),%eax
406529:	56                   	push   %esi
40652a:	8b 75 08             	mov    0x8(%ebp),%esi
40652d:	89 06                	mov    %eax,(%esi)
40652f:	e8 0d 45 00 00       	call   0x40aa41
406534:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
40653a:	89 46 04             	mov    %eax,0x4(%esi)
40653d:	e8 ff 44 00 00       	call   0x40aa41
406542:	89 b0 98 00 00 00    	mov    %esi,0x98(%eax)
406548:	8b c6                	mov    %esi,%eax
40654a:	5e                   	pop    %esi
40654b:	5d                   	pop    %ebp
40654c:	c3                   	ret
40654d:	8b ff                	mov    %edi,%edi
40654f:	55                   	push   %ebp