4040c2:	83 c4 10             	add    $0x10,%esp
4040c5:	eb 70                	jmp    0x404137
4040c7:	50                   	push   %eax
4040c8:	ff 75 08             	push   0x8(%ebp)
4040cb:	8d 04 5d c4 ea 00 00 	lea    0xeac4(,%ebx,2),%eax
4040d2:	50                   	push   %eax
4040d3:	6a 01                	push   $0x1
4040d5:	e8 9f 2d 00 00       	call   0x406e79
4040da:	59                   	pop    %ecx
4040db:	50                   	push   %eax
4040dc:	e8 fc d8 ff ff       	call   0x4019dd
4040e1:	33 ff                	xor    %edi,%edi
4040e3:	83 c4 10             	add    $0x10,%esp
4040e6:	39 3d 00 70 40 00    	cmp    %edi,0x407000
4040ec:	74 49                	je     0x404137
4040ee:	33 c0                	xor    %eax,%eax
4040f0:	b9 00 70 40 00       	mov    $0x407000,%ecx
4040f5:	8b 98 08 70 40 00    	mov    0x407008(%eax),%ebx
4040fb:	85 db                	test   %ebx,%ebx
4040fd:	74 27                	je     0x404126
4040ff:	8b 31                	mov    (%ecx),%esi
404101:	6a 01                	push   $0x1
404103:	e8 71 2d 00 00       	call   0x406e79
404108:	56                   	push   %esi
404109:	53                   	push   %ebx
40410a:	50                   	push   %eax
40410b:	e8 cd d8 ff ff       	call   0x4019dd
404110:	6a 01                	push   $0x1
404112:	e8 62 2d 00 00       	call   0x406e79
404117:	50                   	push   %eax
404118:	68 84 13 40 00       	push   $0x401384
40411d:	ff 15 cc 81 40 00    	call   *0x4081cc
404123:	83 c4 1c             	add    $0x1c,%esp
404126:	47                   	inc    %edi
404127:	8b c7                	mov    %edi,%eax
404129:	c1 e0 04             	shl    $0x4,%eax
40412c:	8d 88 00 70 40 00    	lea    0x407000(%eax),%ecx
404132:	83 39 00             	cmpl   $0x0,(%ecx)
404135:	75 be                	jne    0x4040f5
404137:	5f                   	pop    %edi
404138:	5e                   	pop    %esi
404139:	33 c0                	xor    %eax,%eax
40413b:	5b                   	pop    %ebx
40413c:	5d                   	pop    %ebp
40413d:	c2 14 00             	ret    $0x14
404140:	cc                   	int3
404141:	cc                   	int3
404142:	cc                   	int3
404143:	cc                   	int3
404144:	cc                   	int3
404145:	cc                   	int3
404146:	cc                   	int3
404147:	cc                   	int3
404148:	cc                   	int3
404149:	cc                   	int3
40414a:	cc                   	int3
40414b:	cc                   	int3
40414c:	cc                   	int3
40414d:	cc                   	int3
40414e:	cc                   	int3
40414f:	cc                   	int3
404150:	8b ff                	mov    %edi,%edi
404152:	55                   	push   %ebp
404153:	8b ec                	mov    %esp,%ebp
404155:	81 ec 58 02 00 00    	sub    $0x258,%esp
40415b:	a1 b4 71 40 00       	mov    0x4071b4,%eax
404160:	33 c5                	xor    %ebp,%eax
404162:	89 45 fc             	mov    %eax,-0x4(%ebp)
404165:	53                   	push   %ebx
404166:	56                   	push   %esi
404167:	8b 75 0c             	mov    0xc(%ebp),%esi
40416a:	57                   	push   %edi
40416b:	6a 02                	push   $0x2
40416d:	5b                   	pop    %ebx
40416e:	68 00 08 00 00       	push   $0x800
404173:	89 b5 b4 fd ff ff    	mov    %esi,-0x24c(%ebp)
404179:	e8 40 24 00 00       	call   0x4065be
40417e:	8b f8                	mov    %eax,%edi
404180:	59                   	pop    %ecx
404181:	85 ff                	test   %edi,%edi
404183:	0f 84 d4 01 00 00    	je     0x40435d
404189:	6a 00                	push   $0x0
40418b:	56                   	push   %esi
40418c:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
404192:	50                   	push   %eax
404193:	68 80 00 00 00       	push   $0x80
404198:	eb 51                	jmp    0x4041eb
40419a:	ff 15 38 80 40 00    	call   *0x408038
4041a0:	83 f8 7a             	cmp    $0x7a,%eax
4041a3:	0f 85 ad 01 00 00    	jne    0x404356
4041a9:	57                   	push   %edi
4041aa:	e8 3e 24 00 00       	call   0x4065ed
4041af:	8b 85 b8 fd ff ff    	mov    -0x248(%ebp),%eax
4041b5:	33 c9                	xor    %ecx,%ecx
4041b7:	6a 10                	push   $0x10
4041b9:	5a                   	pop    %edx
4041ba:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
4041c0:	f7 e2                	mul    %edx
4041c2:	0f 90 c1             	seto   %cl
4041c5:	f7 d9                	neg    %ecx
4041c7:	0b c8                	or     %eax,%ecx
4041c9:	51                   	push   %ecx
4041ca:	e8 ef 23 00 00       	call   0x4065be
4041cf:	8b f8                	mov    %eax,%edi
4041d1:	59                   	pop    %ecx
4041d2:	59                   	pop    %ecx
4041d3:	85 ff                	test   %edi,%edi
4041d5:	0f 84 82 01 00 00    	je     0x40435d
4041db:	6a 00                	push   $0x0
4041dd:	56                   	push   %esi
4041de:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
4041e4:	50                   	push   %eax
4041e5:	ff b5 b0 fd ff ff    	push   -0x250(%ebp)
4041eb:	57                   	push   %edi
4041ec:	6a 00                	push   $0x0
4041ee:	ff 15 c4 80 40 00    	call   *0x4080c4
4041f4:	85 c0                	test   %eax,%eax
4041f6:	74 a2                	je     0x40419a
4041f8:	8b b5 b8 fd ff ff    	mov    -0x248(%ebp),%esi
4041fe:	6a 01                	push   $0x1
404200:	e8 74 2c 00 00       	call   0x406e79
404205:	ff b5 b4 fd ff ff    	push   -0x24c(%ebp)
40420b:	8b c8                	mov    %eax,%ecx
40420d:	56                   	push   %esi
40420e:	8b b5 b4 fd ff ff    	mov    -0x24c(%ebp),%esi
404214:	8b c6                	mov    %esi,%eax
404216:	f7 d8                	neg    %eax
404218:	1b c0                	sbb    %eax,%eax
40421a:	05 2b eb 00 00       	add    $0xeb2b,%eax
40421f:	50                   	push   %eax
404220:	51                   	push   %ecx
404221:	e8 b7 d7 ff ff       	call   0x4019dd
404226:	83 a5 b0 fd ff ff 00 	andl   $0x0,-0x250(%ebp)
40422d:	83 c4 14             	add    $0x14,%esp
404230:	83 bd b8 fd ff ff 00 	cmpl   $0x0,-0x248(%ebp)
404237:	0f 86 17 01 00 00    	jbe    0x404354
40423d:	8b c7                	mov    %edi,%eax
40423f:	89 bd ac fd ff ff    	mov    %edi,-0x254(%ebp)
404245:	6a 00                	push   $0x0
404247:	56                   	push   %esi
404248:	6a 00                	push   $0x0
40424a:	6a 20                	push   $0x20
40424c:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40424f:	51                   	push   %ecx
404250:	50                   	push   %eax
404251:	ff 15 9c 80 40 00    	call   *0x40809c
404257:	85 c0                	test   %eax,%eax
404259:	75 4b                	jne    0x4042a6
40425b:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40425e:	b8 b8 11 40 00       	mov    $0x4011b8,%eax
404263:	8b f1                	mov    %ecx,%esi
404265:	2b c6                	sub    %esi,%eax
404267:	8b b5 b4 fd ff ff    	mov    -0x24c(%ebp),%esi
40426d:	6a 20                	push   $0x20
40426f:	5a                   	pop    %edx
404270:	89 85 a8 fd ff ff    	mov    %eax,-0x258(%ebp)
404276:	8d 82 de ff ff 7f    	lea    0x7fffffde(%edx),%eax
40427c:	85 c0                	test   %eax,%eax
40427e:	74 21                	je     0x4042a1
404280:	8b 85 a8 fd ff ff    	mov    -0x258(%ebp),%eax
404286:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
40428a:	66 85 c0             	test   %ax,%ax
40428d:	74 0a                	je     0x404299
40428f:	66 89 01             	mov    %ax,(%ecx)
404292:	03 cb                	add    %ebx,%ecx
404294:	83 ea 01             	sub    $0x1,%edx
404297:	75 dd                	jne    0x404276
404299:	85 d2                	test   %edx,%edx
40429b:	0f 84 b5 00 00 00    	je     0x404356
4042a1:	33 c0                	xor    %eax,%eax
4042a3:	66 89 01             	mov    %ax,(%ecx)
4042a6:	6a 00                	push   $0x0
4042a8:	56                   	push   %esi
4042a9:	6a 00                	push   $0x0
4042ab:	68 00 01 00 00       	push   $0x100
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