4031a7:	e8 44 1f 01 00       	call   0x4150f0
4031ac:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4031b0:	76 6d                	jbe    0x40321f
4031b2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4031b5:	e8 b6 30 00 00       	call   0x406270
4031ba:	84 c0                	test   %al,%al
4031bc:	0f 85 c3 00 00 00    	jne    0x403285
4031c2:	a1 20 72 45 00       	mov    0x457220,%eax
4031c7:	85 c0                	test   %eax,%eax
4031c9:	75 33                	jne    0x4031fe
4031cb:	68 84 00 00 00       	push   $0x84
4031d0:	e8 f1 69 01 00       	call   0x419bc6
4031d5:	8b f0                	mov    %eax,%esi
4031d7:	89 75 bc             	mov    %esi,-0x44(%ebp)
4031da:	68 84 00 00 00       	push   $0x84
4031df:	6a 00                	push   $0x0
4031e1:	56                   	push   %esi
4031e2:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4031e6:	e8 25 8a 01 00       	call   0x41bc10
4031eb:	83 c4 10             	add    $0x10,%esp
4031ee:	8b ce                	mov    %esi,%ecx
4031f0:	e8 bb 03 00 00       	call   0x4035b0
4031f5:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4031f9:	a3 20 72 45 00       	mov    %eax,0x457220
4031fe:	8b 48 04             	mov    0x4(%eax),%ecx
403201:	83 c0 04             	add    $0x4,%eax
403204:	68 10 df 44 00       	push   $0x44df10
403209:	68 54 9f 44 00       	push   $0x449f54
40320e:	50                   	push   %eax
40320f:	8b 71 24             	mov    0x24(%ecx),%esi
403212:	8b ce                	mov    %esi,%ecx
403214:	ff 15 5c e2 43 00    	call   *0x43e25c
40321a:	ff d6                	call   *%esi
40321c:	83 c4 0c             	add    $0xc,%esp
40321f:	32 db                	xor    %bl,%bl
403221:	8b 4d ec             	mov    -0x14(%ebp),%ecx
403224:	83 f9 08             	cmp    $0x8,%ecx
403227:	72 2e                	jb     0x403257
403229:	8b 55 d8             	mov    -0x28(%ebp),%edx
40322c:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
403233:	8b c2                	mov    %edx,%eax
403235:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40323b:	72 10                	jb     0x40324d
40323d:	8b 50 fc             	mov    -0x4(%eax),%edx
403240:	83 c1 23             	add    $0x23,%ecx
403243:	2b c2                	sub    %edx,%eax
403245:	83 c0 fc             	add    $0xfffffffc,%eax
403248:	83 f8 1f             	cmp    $0x1f,%eax
40324b:	77 63                	ja     0x4032b0
40324d:	51                   	push   %ecx
40324e:	52                   	push   %edx
40324f:	e8 64 69 01 00       	call   0x419bb8
403254:	83 c4 08             	add    $0x8,%esp
403257:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40325a:	83 f9 08             	cmp    $0x8,%ecx
40325d:	72 34                	jb     0x403293
40325f:	8b 55 c0             	mov    -0x40(%ebp),%edx
403262:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
403269:	8b c2                	mov    %edx,%eax
40326b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403271:	72 16                	jb     0x403289
403273:	8b 50 fc             	mov    -0x4(%eax),%edx
403276:	83 c1 23             	add    $0x23,%ecx
403279:	2b c2                	sub    %edx,%eax
40327b:	83 c0 fc             	add    $0xfffffffc,%eax
40327e:	83 f8 1f             	cmp    $0x1f,%eax
403281:	77 2d                	ja     0x4032b0
403283:	eb 04                	jmp    0x403289
403285:	b3 01                	mov    $0x1,%bl
403287:	eb 98                	jmp    0x403221
403289:	51                   	push   %ecx
40328a:	52                   	push   %edx
40328b:	e8 28 69 01 00       	call   0x419bb8
403290:	83 c4 08             	add    $0x8,%esp
403293:	8a c3                	mov    %bl,%al
403295:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403298:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40329f:	59                   	pop    %ecx
4032a0:	5e                   	pop    %esi
4032a1:	5b                   	pop    %ebx
4032a2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4032a5:	33 cd                	xor    %ebp,%ecx
4032a7:	e8 fe 68 01 00       	call   0x419baa
4032ac:	8b e5                	mov    %ebp,%esp
4032ae:	5d                   	pop    %ebp
4032af:	c3                   	ret
4032b0:	e8 de c6 01 00       	call   0x41f993
4032b5:	cc                   	int3
4032b6:	cc                   	int3
4032b7:	cc                   	int3
4032b8:	cc                   	int3
4032b9:	cc                   	int3
4032ba:	cc                   	int3
4032bb:	cc                   	int3
4032bc:	cc                   	int3
4032bd:	cc                   	int3
4032be:	cc                   	int3
4032bf:	cc                   	int3
4032c0:	55                   	push   %ebp
4032c1:	8b ec                	mov    %esp,%ebp
4032c3:	51                   	push   %ecx
4032c4:	53                   	push   %ebx
4032c5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4032c8:	8b c3                	mov    %ebx,%eax
4032ca:	56                   	push   %esi
4032cb:	8b f1                	mov    %ecx,%esi
4032cd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4032d0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4032d6:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4032dd:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4032e4:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
4032e8:	72 05                	jb     0x4032ef
4032ea:	8b 03                	mov    (%ebx),%eax
4032ec:	89 45 fc             	mov    %eax,-0x4(%ebp)
4032ef:	8b 5b 10             	mov    0x10(%ebx),%ebx
4032f2:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
4032f8:	77 74                	ja     0x40336e
4032fa:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
403301:	83 fb 08             	cmp    $0x8,%ebx
403304:	73 19                	jae    0x40331f
403306:	6a 10                	push   $0x10
403308:	50                   	push   %eax
403309:	56                   	push   %esi
40330a:	89 5e 10             	mov    %ebx,0x10(%esi)
40330d:	e8 6e 83 01 00       	call   0x41b680
403312:	83 c4 0c             	add    $0xc,%esp
403315:	8b c6                	mov    %esi,%eax
403317:	5e                   	pop    %esi
403318:	5b                   	pop    %ebx
403319:	8b e5                	mov    %ebp,%esp
40331b:	5d                   	pop    %ebp
40331c:	c2 04 00             	ret    $0x4
40331f:	57                   	push   %edi
403320:	8b fb                	mov    %ebx,%edi
403322:	83 cf 07             	or     $0x7,%edi
403325:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
40332b:	76 07                	jbe    0x403334
40332d:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
403332:	eb 0a                	jmp    0x40333e
403334:	b8 0a 00 00 00       	mov    $0xa,%eax
403339:	3b f8                	cmp    %eax,%edi
40333b:	0f 42 f8             	cmovb  %eax,%edi
40333e:	8d 47 01             	lea    0x1(%edi),%eax
403341:	50                   	push   %eax
403342:	e8 69 fd ff ff       	call   0x4030b0
403347:	8d 0c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ecx
40334e:	89 06                	mov    %eax,(%esi)
403350:	51                   	push   %ecx
403351:	ff 75 fc             	push   -0x4(%ebp)
403354:	89 5e 10             	mov    %ebx,0x10(%esi)
403357:	50                   	push   %eax
403358:	89 7e 14             	mov    %edi,0x14(%esi)
40335b:	e8 20 83 01 00       	call   0x41b680
403360:	83 c4 0c             	add    $0xc,%esp
403363:	8b c6                	mov    %esi,%eax
403365:	5f                   	pop    %edi
403366:	5e                   	pop    %esi
403367:	5b                   	pop    %ebx
403368:	8b e5                	mov    %ebp,%esp
40336a:	5d                   	pop    %ebp
40336b:	c2 04 00             	ret    $0x4
40336e:	e8 ed df ff ff       	call   0x401360
403373:	cc                   	int3
403374:	cc                   	int3
403375:	cc                   	int3
403376:	cc                   	int3
403377:	cc                   	int3
403378:	cc                   	int3
403379:	cc                   	int3
40337a:	cc                   	int3
40337b:	cc                   	int3
40337c:	cc                   	int3
40337d:	cc                   	int3
40337e:	cc                   	int3
40337f:	cc                   	int3
403380:	55                   	push   %ebp
403381:	8b ec                	mov    %esp,%ebp
403383:	6a ff                	push   $0xffffffff
403385:	68 35 b8 43 00       	push   $0x43b835
40338a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403390:	50                   	push   %eax
403391:	81 ec 28 02 00 00    	sub    $0x228,%esp
403397:	a1 14 50 45 00       	mov    0x455014,%eax
40339c:	33 c5                	xor    %ebp,%eax
40339e:	89 45 f0             	mov    %eax,-0x10(%ebp)
4033a1:	53                   	push   %ebx
4033a2:	56                   	push   %esi
4033a3:	57                   	push   %edi
4033a4:	50                   	push   %eax
4033a5:	8d 45 f4             	lea    -0xc(%ebp),%eax
4033a8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4033ae:	8b f1                	mov    %ecx,%esi
4033b0:	68 04 01 00 00       	push   $0x104
4033b5:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4033bb:	50                   	push   %eax
4033bc:	6a 00                	push   $0x0
4033be:	ff 15 a8 e0 43 00    	call   *0x43e0a8
4033c4:	85 c0                	test   %eax,%eax
4033c6:	0f 84 4f 01 00 00    	je     0x40351b
4033cc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4033d2:	50                   	push   %eax
4033d3:	ff 15 2c e2 43 00    	call   *0x43e22c
4033d9:	85 c0                	test   %eax,%eax
4033db:	0f 84 3a 01 00 00    	je     0x40351b
4033e1:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
4033e7:	8d 51 02             	lea    0x2(%ecx),%edx
4033ea:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4033f0:	66 8b 01             	mov    (%ecx),%ax
4033f3:	83 c1 02             	add    $0x2,%ecx
4033f6:	66 85 c0             	test   %ax,%ax
4033f9:	75 f5                	jne    0x4033f0
4033fb:	2b ca                	sub    %edx,%ecx
4033fd:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
403403:	d1 f9                	sar    $1,%ecx
403405:	51                   	push   %ecx
403406:	50                   	push   %eax
403407:	8b ce                	mov    %esi,%ecx
403409:	e8 e2 fa ff ff       	call   0x402ef0
40340e:	6a 16                	push   $0x16
403410:	68 f0 df 44 00       	push   $0x44dff0
403415:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40341b:	c7 85 d0 fd ff ff 00 	movl   $0x0,-0x230(%ebp)
403422:	00 00 00
403425:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
40342c:	00 00 00
40342f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
403436:	00 00 00
403439:	e8 c2 fb ff ff       	call   0x403000
40343e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
403445:	8b 4e 10             	mov    0x10(%esi),%ecx
403448:	85 c9                	test   %ecx,%ecx
40344a:	0f 84 87 00 00 00    	je     0x4034d7
403450:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
403456:	85 c0                	test   %eax,%eax
403458:	74 7d                	je     0x4034d7
40345a:	8d 58 0b             	lea    0xb(%eax),%ebx
40345d:	ba 02 00 00 00       	mov    $0x2,%edx
403462:	03 d9                	add    %ecx,%ebx
403464:	33 c9                	xor    %ecx,%ecx
403466:	8b c3                	mov    %ebx,%eax
403468:	f7 e2                	mul    %edx
40346a:	0f 90 c1             	seto   %cl
40346d:	f7 d9                	neg    %ecx
40346f:	0b c8                	or     %eax,%ecx
403471:	51                   	push   %ecx
403472:	e8 e7 05 02 00       	call   0x423a5e
403477:	8b f8                	mov    %eax,%edi
403479:	83 c4 04             	add    $0x4,%esp
40347c:	85 ff                	test   %edi,%edi
40347e:	74 57                	je     0x4034d7
403480:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
403484:	8b c6                	mov    %esi,%eax
403486:	72 02                	jb     0x40348a
403488:	8b 06                	mov    (%esi),%eax
40348a:	50                   	push   %eax
40348b:	53                   	push   %ebx
40348c:	57                   	push   %edi
40348d:	e8 d4 03 02 00       	call   0x423866
403492:	83 c4 0c             	add    $0xc,%esp
403495:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40349b:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
4034a2:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
4034a9:	50                   	push   %eax
4034aa:	57                   	push   %edi
4034ab:	ff 15 30 e2 43 00    	call   *0x43e230
4034b1:	8b d7                	mov    %edi,%edx
4034b3:	8d 4a 02             	lea    0x2(%edx),%ecx
4034b6:	66 8b 02             	mov    (%edx),%ax
4034b9:	83 c2 02             	add    $0x2,%edx
4034bc:	66 85 c0             	test   %ax,%ax
4034bf:	75 f5                	jne    0x4034b6
4034c1:	2b d1                	sub    %ecx,%edx
4034c3:	8b ce                	mov    %esi,%ecx
4034c5:	d1 fa                	sar    $1,%edx
4034c7:	52                   	push   %edx
4034c8:	57                   	push   %edi
4034c9:	e8 22 fa ff ff       	call   0x402ef0
4034ce:	57                   	push   %edi
4034cf:	e8 6f 05 02 00       	call   0x423a43
4034d4:	83 c4 04             	add    $0x4,%esp
4034d7:	8b 8d e4 fd ff ff    	mov    -0x21c(%ebp),%ecx
4034dd:	83 f9 08             	cmp    $0x8,%ecx
4034e0:	72 35                	jb     0x403517
4034e2:	8b 95 d0 fd ff ff    	mov    -0x230(%ebp),%edx
4034e8:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4034ef:	8b c2                	mov    %edx,%eax
4034f1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4034f7:	72 14                	jb     0x40350d
4034f9:	8b 50 fc             	mov    -0x4(%eax),%edx
4034fc:	83 c1 23             	add    $0x23,%ecx
4034ff:	2b c2                	sub    %edx,%eax
403501:	83 c0 fc             	add    $0xfffffffc,%eax
403504:	83 f8 1f             	cmp    $0x1f,%eax
403507:	0f 87 92 00 00 00    	ja     0x40359f
40350d:	51                   	push   %ecx
40350e:	52                   	push   %edx
40350f:	e8 a4 66 01 00       	call   0x419bb8
403514:	83 c4 08             	add    $0x8,%esp
403517:	b0 01                	mov    $0x1,%al
403519:	eb 68                	jmp    0x403583
40351b:	a1 20 72 45 00       	mov    0x457220,%eax
403520:	85 c0                	test   %eax,%eax
403522:	75 3c                	jne    0x403560
403524:	68 84 00 00 00       	push   $0x84
403529:	e8 98 66 01 00       	call   0x419bc6
40352e:	8b f0                	mov    %eax,%esi
403530:	89 b5 cc fd ff ff    	mov    %esi,-0x234(%ebp)
403536:	68 84 00 00 00       	push   $0x84
40353b:	6a 00                	push   $0x0
40353d:	56                   	push   %esi
40353e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
403545:	e8 c6 86 01 00       	call   0x41bc10
40354a:	83 c4 10             	add    $0x10,%esp
40354d:	8b ce                	mov    %esi,%ecx
40354f:	e8 5c 00 00 00       	call   0x4035b0
403554:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40355b:	a3 20 72 45 00       	mov    %eax,0x457220
403560:	8b 48 04             	mov    0x4(%eax),%ecx
403563:	83 c0 04             	add    $0x4,%eax
403566:	68 98 df 44 00       	push   $0x44df98
40356b:	68 54 9f 44 00       	push   $0x449f54
403570:	50                   	push   %eax
403571:	8b 71 24             	mov    0x24(%ecx),%esi
403574:	8b ce                	mov    %esi,%ecx
403576:	ff 15 5c e2 43 00    	call   *0x43e25c
40357c:	ff d6                	call   *%esi
40357e:	83 c4 0c             	add    $0xc,%esp
403581:	32 c0                	xor    %al,%al
403583:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403586:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40358d:	59                   	pop    %ecx
40358e:	5f                   	pop    %edi
40358f:	5e                   	pop    %esi
403590:	5b                   	pop    %ebx
403591:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403594:	33 cd                	xor    %ebp,%ecx
403596:	e8 0f 66 01 00       	call   0x419baa
40359b:	8b e5                	mov    %ebp,%esp
40359d:	5d                   	pop    %ebp
40359e:	c3                   	ret
40359f:	e8 ef c3 01 00       	call   0x41f993
4035a4:	cc                   	int3
4035a5:	cc                   	int3
4035a6:	cc                   	int3
4035a7:	cc                   	int3
4035a8:	cc                   	int3
4035a9:	cc                   	int3
4035aa:	cc                   	int3
4035ab:	cc                   	int3
4035ac:	cc                   	int3