4042b0:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
4042b6:	50                   	push   %eax
4042b7:	ff b5 ac fd ff ff    	push   -0x254(%ebp)
4042bd:	ff 15 24 81 40 00    	call   *0x408124
4042c3:	85 c0                	test   %eax,%eax
4042c5:	75 4a                	jne    0x404311
4042c7:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
4042cd:	ba 00 01 00 00       	mov    $0x100,%edx
4042d2:	8b f1                	mov    %ecx,%esi
4042d4:	8d 45 bc             	lea    -0x44(%ebp),%eax
4042d7:	2b c6                	sub    %esi,%eax
4042d9:	8b b5 b4 fd ff ff    	mov    -0x24c(%ebp),%esi
4042df:	89 85 a8 fd ff ff    	mov    %eax,-0x258(%ebp)
4042e5:	8d 82 fe fe ff 7f    	lea    0x7ffffefe(%edx),%eax
4042eb:	85 c0                	test   %eax,%eax
4042ed:	74 1d                	je     0x40430c
4042ef:	8b 85 a8 fd ff ff    	mov    -0x258(%ebp),%eax
4042f5:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
4042f9:	66 85 c0             	test   %ax,%ax
4042fc:	74 0a                	je     0x404308
4042fe:	66 89 01             	mov    %ax,(%ecx)
404301:	03 cb                	add    %ebx,%ecx
404303:	83 ea 01             	sub    $0x1,%edx
404306:	75 dd                	jne    0x4042e5
404308:	85 d2                	test   %edx,%edx
40430a:	74 4a                	je     0x404356
40430c:	33 c0                	xor    %eax,%eax
40430e:	66 89 01             	mov    %ax,(%ecx)
404311:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
404317:	50                   	push   %eax
404318:	8d 45 bc             	lea    -0x44(%ebp),%eax
40431b:	50                   	push   %eax
40431c:	68 88 13 40 00       	push   $0x401388
404321:	ff 15 bc 81 40 00    	call   *0x4081bc
404327:	8b 8d b0 fd ff ff    	mov    -0x250(%ebp),%ecx
40432d:	83 c4 0c             	add    $0xc,%esp
404330:	8b 85 ac fd ff ff    	mov    -0x254(%ebp),%eax
404336:	41                   	inc    %ecx
404337:	89 8d b0 fd ff ff    	mov    %ecx,-0x250(%ebp)
40433d:	6a 10                	push   $0x10
40433f:	5a                   	pop    %edx
404340:	03 c2                	add    %edx,%eax
404342:	89 85 ac fd ff ff    	mov    %eax,-0x254(%ebp)
404348:	3b 8d b8 fd ff ff    	cmp    -0x248(%ebp),%ecx
40434e:	0f 82 f1 fe ff ff    	jb     0x404245
404354:	33 db                	xor    %ebx,%ebx
404356:	57                   	push   %edi
404357:	e8 91 22 00 00       	call   0x4065ed
40435c:	59                   	pop    %ecx
40435d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404360:	8b c3                	mov    %ebx,%eax
404362:	5f                   	pop    %edi
404363:	5e                   	pop    %esi
404364:	33 cd                	xor    %ebp,%ecx
404366:	5b                   	pop    %ebx
404367:	e8 74 25 00 00       	call   0x4068e0
40436c:	c9                   	leave
40436d:	c2 14 00             	ret    $0x14
404370:	cc                   	int3
404371:	cc                   	int3
404372:	cc                   	int3
404373:	cc                   	int3
404374:	cc                   	int3
404375:	cc                   	int3
404376:	cc                   	int3
404377:	cc                   	int3
404378:	cc                   	int3
404379:	cc                   	int3
40437a:	cc                   	int3
40437b:	cc                   	int3
40437c:	cc                   	int3
40437d:	cc                   	int3
40437e:	cc                   	int3
40437f:	cc                   	int3
404380:	8b ff                	mov    %edi,%edi
404382:	55                   	push   %ebp
404383:	8b ec                	mov    %esp,%ebp
404385:	81 ec 88 02 00 00    	sub    $0x288,%esp
40438b:	a1 b4 71 40 00       	mov    0x4071b4,%eax
404390:	33 c5                	xor    %ebp,%eax
404392:	89 45 fc             	mov    %eax,-0x4(%ebp)
404395:	8b 45 18             	mov    0x18(%ebp),%eax
404398:	53                   	push   %ebx
404399:	56                   	push   %esi
40439a:	8b 75 0c             	mov    0xc(%ebp),%esi
40439d:	57                   	push   %edi
40439e:	6a 10                	push   $0x10
4043a0:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
4043a6:	83 cf ff             	or     $0xffffffff,%edi
4043a9:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4043ad:	58                   	pop    %eax
4043ae:	6a 02                	push   $0x2
4043b0:	89 b5 9c fd ff ff    	mov    %esi,-0x264(%ebp)
4043b6:	89 85 88 fd ff ff    	mov    %eax,-0x278(%ebp)
4043bc:	5b                   	pop    %ebx
4043bd:	75 08                	jne    0x4043c7
4043bf:	6a 03                	push   $0x3
4043c1:	58                   	pop    %eax
4043c2:	e9 70 03 00 00       	jmp    0x404737
4043c7:	68 00 01 00 00       	push   $0x100
4043cc:	e8 ed 21 00 00       	call   0x4065be
4043d1:	59                   	pop    %ecx
4043d2:	8b c8                	mov    %eax,%ecx
4043d4:	89 8d 98 fd ff ff    	mov    %ecx,-0x268(%ebp)
4043da:	85 c9                	test   %ecx,%ecx
4043dc:	0f 84 53 03 00 00    	je     0x404735
4043e2:	33 c0                	xor    %eax,%eax
4043e4:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
4043ea:	39 45 14             	cmp    %eax,0x14(%ebp)
4043ed:	0f 8e 28 03 00 00    	jle    0x40471b
4043f3:	8b 85 94 fd ff ff    	mov    -0x26c(%ebp),%eax
4043f9:	8b 00                	mov    (%eax),%eax
4043fb:	85 c0                	test   %eax,%eax
4043fd:	0f 84 f2 02 00 00    	je     0x4046f5
404403:	33 d2                	xor    %edx,%edx
404405:	66 39 10             	cmp    %dx,(%eax)
404408:	0f 84 e7 02 00 00    	je     0x4046f5
40440e:	52                   	push   %edx
40440f:	56                   	push   %esi
404410:	8d 95 8c fd ff ff    	lea    -0x274(%ebp),%edx
404416:	52                   	push   %edx
404417:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
40441d:	51                   	push   %ecx
40441e:	50                   	push   %eax
40441f:	eb 63                	jmp    0x404484
404421:	ff 15 38 80 40 00    	call   *0x408038
404427:	83 f8 7a             	cmp    $0x7a,%eax
40442a:	0f 85 ed 02 00 00    	jne    0x40471d
404430:	ff b5 98 fd ff ff    	push   -0x268(%ebp)
404436:	e8 b2 21 00 00       	call   0x4065ed
40443b:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
404441:	33 c9                	xor    %ecx,%ecx
404443:	6a 10                	push   $0x10
404445:	5a                   	pop    %edx
404446:	89 85 88 fd ff ff    	mov    %eax,-0x278(%ebp)
40444c:	f7 e2                	mul    %edx
40444e:	0f 90 c1             	seto   %cl
404451:	f7 d9                	neg    %ecx
404453:	0b c8                	or     %eax,%ecx
404455:	51                   	push   %ecx
404456:	e8 63 21 00 00       	call   0x4065be
40445b:	89 85 98 fd ff ff    	mov    %eax,-0x268(%ebp)
404461:	59                   	pop    %ecx
404462:	59                   	pop    %ecx
404463:	85 c0                	test   %eax,%eax
404465:	0f 84 be 02 00 00    	je     0x404729
40446b:	6a 00                	push   $0x0
40446d:	56                   	push   %esi
40446e:	8d 8d 8c fd ff ff    	lea    -0x274(%ebp),%ecx
404474:	51                   	push   %ecx
404475:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
40447b:	50                   	push   %eax
40447c:	8b 85 94 fd ff ff    	mov    -0x26c(%ebp),%eax
404482:	ff 30                	push   (%eax)
404484:	ff 15 00 81 40 00    	call   *0x408100
40448a:	85 c0                	test   %eax,%eax
40448c:	74 93                	je     0x404421
40448e:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
404494:	85 c0                	test   %eax,%eax
404496:	75 38                	jne    0x4044d0
404498:	8b 85 94 fd ff ff    	mov    -0x26c(%ebp),%eax
40449e:	6a 01                	push   $0x1
4044a0:	8b 30                	mov    (%eax),%esi
4044a2:	e8 d2 29 00 00       	call   0x406e79
4044a7:	ff b5 9c fd ff ff    	push   -0x264(%ebp)
4044ad:	8b c8                	mov    %eax,%ecx
4044af:	56                   	push   %esi
4044b0:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
4044b6:	8b c6                	mov    %esi,%eax
4044b8:	f7 d8                	neg    %eax
4044ba:	1b c0                	sbb    %eax,%eax
4044bc:	05 91 eb 00 00       	add    $0xeb91,%eax
4044c1:	50                   	push   %eax
4044c2:	51                   	push   %ecx
4044c3:	e8 15 d5 ff ff       	call   0x4019dd
4044c8:	83 c4 14             	add    $0x14,%esp
4044cb:	e9 1f 02 00 00       	jmp    0x4046ef
4044d0:	33 c9                	xor    %ecx,%ecx
4044d2:	89 8d 78 fd ff ff    	mov    %ecx,-0x288(%ebp)
4044d8:	85 c0                	test   %eax,%eax
4044da:	0f 84 0f 02 00 00    	je     0x4046ef
4044e0:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
4044e6:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
4044ec:	eb 02                	jmp    0x4044f0
4044ee:	33 c9                	xor    %ecx,%ecx
4044f0:	51                   	push   %ecx
4044f1:	56                   	push   %esi
4044f2:	51                   	push   %ecx
4044f3:	53                   	push   %ebx
4044f4:	51                   	push   %ecx
4044f5:	51                   	push   %ecx
4044f6:	50                   	push   %eax
4044f7:	89 8d 84 fd ff ff    	mov    %ecx,-0x27c(%ebp)
4044fd:	ff 15 08 81 40 00    	call   *0x408108
404503:	8b f8                	mov    %eax,%edi
404505:	83 ff ff             	cmp    $0xffffffff,%edi
404508:	74 44                	je     0x40454e
40450a:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
404510:	c7 85 a0 fd ff ff 1c 	movl   $0x1c,-0x260(%ebp)
404517:	00 00 00
40451a:	50                   	push   %eax
40451b:	6a 00                	push   $0x0
40451d:	57                   	push   %edi
40451e:	ff 15 14 81 40 00    	call   *0x408114
404524:	85 c0                	test   %eax,%eax
404526:	74 26                	je     0x40454e
404528:	8b b5 84 fd ff ff    	mov    -0x27c(%ebp),%esi
40452e:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
404534:	46                   	inc    %esi
404535:	50                   	push   %eax
404536:	56                   	push   %esi
404537:	57                   	push   %edi
404538:	ff 15 14 81 40 00    	call   *0x408114
40453e:	85 c0                	test   %eax,%eax
404540:	75 ec                	jne    0x40452e
404542:	89 b5 84 fd ff ff    	mov    %esi,-0x27c(%ebp)
404548:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
40454e:	33 c0                	xor    %eax,%eax
404550:	50                   	push   %eax
404551:	56                   	push   %esi
404552:	50                   	push   %eax
404553:	6a 20                	push   $0x20
404555:	8d 45 bc             	lea    -0x44(%ebp),%eax
404558:	50                   	push   %eax
404559:	ff b5 90 fd ff ff    	push   -0x270(%ebp)
40455f:	ff 15 9c 80 40 00    	call   *0x40809c
404565:	85 c0                	test   %eax,%eax
404567:	75 4b                	jne    0x4045b4
404569:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40456c:	b8 b8 11 40 00       	mov    $0x4011b8,%eax
404571:	8b f1                	mov    %ecx,%esi
404573:	2b c6                	sub    %esi,%eax
404575:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
40457b:	6a 20                	push   $0x20
40457d:	5a                   	pop    %edx
40457e:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
404584:	8d 82 de ff ff 7f    	lea    0x7fffffde(%edx),%eax
40458a:	85 c0                	test   %eax,%eax
40458c:	74 21                	je     0x4045af
40458e:	8b 85 7c fd ff ff    	mov    -0x284(%ebp),%eax
404594:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
404598:	66 85 c0             	test   %ax,%ax
40459b:	74 0a                	je     0x4045a7
40459d:	66 89 01             	mov    %ax,(%ecx)
4045a0:	03 cb                	add    %ebx,%ecx
4045a2:	83 ea 01             	sub    $0x1,%edx
4045a5:	75 dd                	jne    0x404584
4045a7:	85 d2                	test   %edx,%edx
4045a9:	0f 84 99 01 00 00    	je     0x404748
4045af:	33 c0                	xor    %eax,%eax
4045b1:	66 89 01             	mov    %ax,(%ecx)
4045b4:	33 c0                	xor    %eax,%eax
4045b6:	50                   	push   %eax
4045b7:	56                   	push   %esi
4045b8:	50                   	push   %eax
4045b9:	68 00 01 00 00       	push   $0x100
4045be:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
4045c4:	50                   	push   %eax
4045c5:	ff b5 90 fd ff ff    	push   -0x270(%ebp)
4045cb:	ff 15 24 81 40 00    	call   *0x408124
4045d1:	85 c0                	test   %eax,%eax
4045d3:	75 4e                	jne    0x404623
4045d5:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
4045db:	ba 00 01 00 00       	mov    $0x100,%edx
4045e0:	8b f1                	mov    %ecx,%esi
4045e2:	8d 45 bc             	lea    -0x44(%ebp),%eax
4045e5:	2b c6                	sub    %esi,%eax
4045e7:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
4045ed:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
4045f3:	8d 82 fe fe ff 7f    	lea    0x7ffffefe(%edx),%eax
4045f9:	85 c0                	test   %eax,%eax
4045fb:	74 21                	je     0x40461e
4045fd:	8b 85 7c fd ff ff    	mov    -0x284(%ebp),%eax
404603:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
404607:	66 85 c0             	test   %ax,%ax
40460a:	74 0a                	je     0x404616
40460c:	66 89 01             	mov    %ax,(%ecx)
40460f:	03 cb                	add    %ebx,%ecx
404611:	83 ea 01             	sub    $0x1,%edx
404614:	75 dd                	jne    0x4045f3
404616:	85 d2                	test   %edx,%edx
404618:	0f 84 2a 01 00 00    	je     0x404748
40461e:	33 c0                	xor    %eax,%eax
404620:	66 89 01             	mov    %ax,(%ecx)
404623:	8b 85 84 fd ff ff    	mov    -0x27c(%ebp),%eax
404629:	56                   	push   %esi
40462a:	85 c0                	test   %eax,%eax
40462c:	75 2a                	jne    0x404658
40462e:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
404634:	50                   	push   %eax
404635:	8d 45 bc             	lea    -0x44(%ebp),%eax
404638:	50                   	push   %eax
404639:	8b c6                	mov    %esi,%eax
40463b:	f7 d8                	neg    %eax
40463d:	1b c0                	sbb    %eax,%eax
40463f:	05 93 eb 00 00       	add    $0xeb93,%eax
404644:	50                   	push   %eax
404645:	6a 01                	push   $0x1
404647:	e8 2d 28 00 00       	call   0x406e79
40464c:	59                   	pop    %ecx
40464d:	50                   	push   %eax
40464e:	e8 8a d3 ff ff       	call   0x4019dd
404653:	83 c4 14             	add    $0x14,%esp
404656:	eb 5e                	jmp    0x4046b6
404658:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
40465e:	51                   	push   %ecx
40465f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
404662:	51                   	push   %ecx
404663:	50                   	push   %eax
404664:	8b c6                	mov    %esi,%eax
404666:	f7 d8                	neg    %eax
404668:	1b c0                	sbb    %eax,%eax
40466a:	05 8f eb 00 00       	add    $0xeb8f,%eax
40466f:	50                   	push   %eax
404670:	6a 01                	push   $0x1
404672:	e8 02 28 00 00       	call   0x406e79
404677:	59                   	pop    %ecx
404678:	50                   	push   %eax
404679:	e8 5f d3 ff ff       	call   0x4019dd
40467e:	83 c4 18             	add    $0x18,%esp
404681:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
404687:	33 c9                	xor    %ecx,%ecx
404689:	8b f1                	mov    %ecx,%esi
40468b:	50                   	push   %eax
40468c:	51                   	push   %ecx
40468d:	57                   	push   %edi
40468e:	ff 15 14 81 40 00    	call   *0x408114
404694:	85 c0                	test   %eax,%eax
404696:	74 18                	je     0x4046b0
404698:	8d 95 a0 fd ff ff    	lea    -0x260(%ebp),%edx
40469e:	8b cf                	mov    %edi,%ecx
4046a0:	e8 ea e1 ff ff       	call   0x40288f
4046a5:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
4046ab:	46                   	inc    %esi
4046ac:	50                   	push   %eax
4046ad:	56                   	push   %esi
4046ae:	eb dd                	jmp    0x40468d
4046b0:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
4046b6:	83 ff ff             	cmp    $0xffffffff,%edi
4046b9:	74 0a                	je     0x4046c5
4046bb:	57                   	push   %edi
4046bc:	ff 15 fc 80 40 00    	call   *0x4080fc
4046c2:	83 cf ff             	or     $0xffffffff,%edi
4046c5:	8b 8d 78 fd ff ff    	mov    -0x288(%ebp),%ecx
4046cb:	8b 85 90 fd ff ff    	mov    -0x270(%ebp),%eax
4046d1:	41                   	inc    %ecx
4046d2:	6a 10                	push   $0x10
4046d4:	5a                   	pop    %edx
4046d5:	03 c2                	add    %edx,%eax
4046d7:	89 8d 78 fd ff ff    	mov    %ecx,-0x288(%ebp)