40328e:	83 c8 ff             	or     $0xffffffff,%eax
403291:	5f                   	pop    %edi
403292:	5e                   	pop    %esi
403293:	5b                   	pop    %ebx
403294:	c2 04 00             	ret    $0x4
403297:	56                   	push   %esi
403298:	8b f1                	mov    %ecx,%esi
40329a:	8b 46 1c             	mov    0x1c(%esi),%eax
40329d:	8b 00                	mov    (%eax),%eax
40329f:	85 c0                	test   %eax,%eax
4032a1:	74 10                	je     0x4032b3
4032a3:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4032a6:	8b 09                	mov    (%ecx),%ecx
4032a8:	03 c8                	add    %eax,%ecx
4032aa:	3b c1                	cmp    %ecx,%eax
4032ac:	73 05                	jae    0x4032b3
4032ae:	0f b6 00             	movzbl (%eax),%eax
4032b1:	5e                   	pop    %esi
4032b2:	c3                   	ret
4032b3:	57                   	push   %edi
4032b4:	8b 3e                	mov    (%esi),%edi
4032b6:	8b ce                	mov    %esi,%ecx
4032b8:	ff 57 14             	call   *0x14(%edi)
4032bb:	50                   	push   %eax
4032bc:	8b ce                	mov    %esi,%ecx
4032be:	ff 57 08             	call   *0x8(%edi)
4032c1:	5f                   	pop    %edi
4032c2:	5e                   	pop    %esi
4032c3:	c3                   	ret
4032c4:	55                   	push   %ebp
4032c5:	8b ec                	mov    %esp,%ebp
4032c7:	83 ec 10             	sub    $0x10,%esp
4032ca:	53                   	push   %ebx
4032cb:	56                   	push   %esi
4032cc:	8b f1                	mov    %ecx,%esi
4032ce:	57                   	push   %edi
4032cf:	8b 46 1c             	mov    0x1c(%esi),%eax
4032d2:	8b 00                	mov    (%eax),%eax
4032d4:	85 c0                	test   %eax,%eax
4032d6:	74 1a                	je     0x4032f2
4032d8:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4032db:	8b 09                	mov    (%ecx),%ecx
4032dd:	03 c8                	add    %eax,%ecx
4032df:	3b c1                	cmp    %ecx,%eax
4032e1:	73 0f                	jae    0x4032f2
4032e3:	8b ce                	mov    %esi,%ecx
4032e5:	e8 ba 03 00 00       	call   0x4036a4
4032ea:	0f b6 00             	movzbl (%eax),%eax
4032ed:	e9 e2 00 00 00       	jmp    0x4033d4
4032f2:	8b 46 50             	mov    0x50(%esi),%eax
4032f5:	85 c0                	test   %eax,%eax
4032f7:	75 08                	jne    0x403301
4032f9:	83 c8 ff             	or     $0xffffffff,%eax
4032fc:	e9 d3 00 00 00       	jmp    0x4033d4
403301:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
403305:	75 14                	jne    0x40331b
403307:	50                   	push   %eax
403308:	e8 93 2f 00 00       	call   0x4062a0
40330d:	83 f8 ff             	cmp    $0xffffffff,%eax
403310:	59                   	pop    %ecx
403311:	74 e6                	je     0x4032f9
403313:	0f b6 c0             	movzbl %al,%eax
403316:	e9 b9 00 00 00       	jmp    0x4033d4
40331b:	8b 46 40             	mov    0x40(%esi),%eax
40331e:	8b 4e 44             	mov    0x44(%esi),%ecx
403321:	89 46 3c             	mov    %eax,0x3c(%esi)
403324:	ff 35 68 d2 40 00    	push   0x40d268
40332a:	6a 00                	push   $0x0
40332c:	e8 46 02 00 00       	call   0x403577
403331:	ff 76 50             	push   0x50(%esi)
403334:	e8 67 2f 00 00       	call   0x4062a0
403339:	83 f8 ff             	cmp    $0xffffffff,%eax
40333c:	59                   	pop    %ecx
40333d:	74 ba                	je     0x4032f9
40333f:	8b 4e 44             	mov    0x44(%esi),%ecx
403342:	50                   	push   %eax
403343:	6a 01                	push   $0x1
403345:	e8 d4 01 00 00       	call   0x40351e
40334a:	8b 7e 44             	mov    0x44(%esi),%edi
40334d:	8b 46 3c             	mov    0x3c(%esi),%eax
403350:	8b cf                	mov    %edi,%ecx
403352:	89 46 40             	mov    %eax,0x40(%esi)
403355:	e8 09 04 00 00       	call   0x403763
40335a:	8b 5e 44             	mov    0x44(%esi),%ebx
40335d:	8b 47 04             	mov    0x4(%edi),%eax
403360:	8b cb                	mov    %ebx,%ecx
403362:	89 45 f8             	mov    %eax,-0x8(%ebp)
403365:	e8 f9 03 00 00       	call   0x403763
40336a:	8b 4f 08             	mov    0x8(%edi),%ecx
40336d:	8b 45 f8             	mov    -0x8(%ebp),%eax
403370:	8d 7d f4             	lea    -0xc(%ebp),%edi
403373:	8b 5b 04             	mov    0x4(%ebx),%ebx
403376:	57                   	push   %edi
403377:	8d 7d 00             	lea    0x0(%ebp),%edi
40337a:	03 c8                	add    %eax,%ecx
40337c:	57                   	push   %edi
40337d:	f7 d8                	neg    %eax
40337f:	8d 7d ff             	lea    -0x1(%ebp),%edi
403382:	1b c0                	sbb    %eax,%eax
403384:	57                   	push   %edi
403385:	8d 7d f0             	lea    -0x10(%ebp),%edi
403388:	23 c1                	and    %ecx,%eax
40338a:	8b 4e 38             	mov    0x38(%esi),%ecx
40338d:	57                   	push   %edi
40338e:	50                   	push   %eax
40338f:	8d 46 40             	lea    0x40(%esi),%eax
403392:	8b 11                	mov    (%ecx),%edx
403394:	53                   	push   %ebx
403395:	50                   	push   %eax
403396:	ff 52 10             	call   *0x10(%edx)
403399:	83 e8 00             	sub    $0x0,%eax
40339c:	74 32                	je     0x4033d0
40339e:	48                   	dec    %eax
40339f:	74 90                	je     0x403331
4033a1:	48                   	dec    %eax
4033a2:	48                   	dec    %eax
4033a3:	0f 85 50 ff ff ff    	jne    0x4032f9
4033a9:	8b 46 44             	mov    0x44(%esi),%eax
4033ac:	83 78 08 01          	cmpl   $0x1,0x8(%eax)
4033b0:	0f 82 7b ff ff ff    	jb     0x403331
4033b6:	8b f0                	mov    %eax,%esi
4033b8:	8b ce                	mov    %esi,%ecx
4033ba:	e8 a4 03 00 00       	call   0x403763
4033bf:	6a 01                	push   $0x1
4033c1:	8d 45 ff             	lea    -0x1(%ebp),%eax
4033c4:	ff 76 04             	push   0x4(%esi)
4033c7:	50                   	push   %eax
4033c8:	e8 93 29 00 00       	call   0x405d60
4033cd:	83 c4 0c             	add    $0xc,%esp
4033d0:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
4033d4:	5f                   	pop    %edi
4033d5:	5e                   	pop    %esi
4033d6:	5b                   	pop    %ebx
4033d7:	c9                   	leave
4033d8:	c3                   	ret
4033d9:	55                   	push   %ebp
4033da:	8b ec                	mov    %esp,%ebp
4033dc:	83 ec 20             	sub    $0x20,%esp
4033df:	56                   	push   %esi
4033e0:	8b f1                	mov    %ecx,%esi
4033e2:	57                   	push   %edi
4033e3:	8b 46 50             	mov    0x50(%esi),%eax
4033e6:	85 c0                	test   %eax,%eax
4033e8:	74 42                	je     0x40342c
4033ea:	ff 75 10             	push   0x10(%ebp)
4033ed:	ff 75 0c             	push   0xc(%ebp)
4033f0:	50                   	push   %eax
4033f1:	e8 fd 2e 00 00       	call   0x4062f3
4033f6:	83 c4 0c             	add    $0xc,%esp
4033f9:	85 c0                	test   %eax,%eax
4033fb:	75 2f                	jne    0x40342c
4033fd:	8d 45 f8             	lea    -0x8(%ebp),%eax
403400:	50                   	push   %eax
403401:	ff 76 50             	push   0x50(%esi)
403404:	e8 c8 2e 00 00       	call   0x4062d1
403409:	59                   	pop    %ecx
40340a:	85 c0                	test   %eax,%eax
40340c:	59                   	pop    %ecx
40340d:	75 1d                	jne    0x40342c
40340f:	21 45 e0             	and    %eax,-0x20(%ebp)
403412:	8b 45 f8             	mov    -0x8(%ebp),%eax
403415:	89 45 e8             	mov    %eax,-0x18(%ebp)
403418:	8b 45 fc             	mov    -0x4(%ebp),%eax
40341b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40341e:	8b 46 40             	mov    0x40(%esi),%eax
403421:	6a 06                	push   $0x6
403423:	89 45 f0             	mov    %eax,-0x10(%ebp)
403426:	59                   	pop    %ecx
403427:	8d 75 e0             	lea    -0x20(%ebp),%esi
40342a:	eb 0f                	jmp    0x40343b
40342c:	6a ff                	push   $0xffffffff
40342e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
403431:	e8 24 02 00 00       	call   0x40365a
403436:	6a 06                	push   $0x6
403438:	8b f0                	mov    %eax,%esi
40343a:	59                   	pop    %ecx
40343b:	8b 45 08             	mov    0x8(%ebp),%eax
40343e:	8b f8                	mov    %eax,%edi
403440:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
403442:	5f                   	pop    %edi
403443:	5e                   	pop    %esi
403444:	c9                   	leave
403445:	c2 10 00             	ret    $0x10
403448:	56                   	push   %esi
403449:	8b f1                	mov    %ecx,%esi
40344b:	8b 46 50             	mov    0x50(%esi),%eax
40344e:	85 c0                	test   %eax,%eax
403450:	74 1b                	je     0x40346d
403452:	ff 74 24 0c          	push   0xc(%esp)
403456:	6a 00                	push   $0x0
403458:	ff 74 24 10          	push   0x10(%esp)
40345c:	50                   	push   %eax
40345d:	e8 62 2f 00 00       	call   0x4063c4
403462:	83 c4 10             	add    $0x10,%esp
403465:	85 c0                	test   %eax,%eax
403467:	75 04                	jne    0x40346d
403469:	8b c6                	mov    %esi,%eax
40346b:	eb 02                	jmp    0x40346f
40346d:	33 c0                	xor    %eax,%eax
40346f:	5e                   	pop    %esi
403470:	c2 08 00             	ret    $0x8
403473:	8b 41 50             	mov    0x50(%ecx),%eax
403476:	85 c0                	test   %eax,%eax
403478:	74 0f                	je     0x403489
40347a:	50                   	push   %eax
40347b:	e8 f3 2f 00 00       	call   0x406473
403480:	85 c0                	test   %eax,%eax
403482:	59                   	pop    %ecx
403483:	7d 04                	jge    0x403489
403485:	83 c8 ff             	or     $0xffffffff,%eax
403488:	c3                   	ret
403489:	33 c0                	xor    %eax,%eax
40348b:	c3                   	ret
40348c:	56                   	push   %esi
40348d:	8d 71 fc             	lea    -0x4(%ecx),%esi
403490:	8b ce                	mov    %esi,%ecx
403492:	e8 16 f5 ff ff       	call   0x4029ad
403497:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40349c:	74 07                	je     0x4034a5
40349e:	56                   	push   %esi
40349f:	e8 dd 1a 00 00       	call   0x404f81
4034a4:	59                   	pop    %ecx
4034a5:	8b c6                	mov    %esi,%eax
4034a7:	5e                   	pop    %esi
4034a8:	c2 04 00             	ret    $0x4
4034ab:	56                   	push   %esi
4034ac:	8b f1                	mov    %ecx,%esi
4034ae:	e8 6f f8 ff ff       	call   0x402d22
4034b3:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4034b8:	74 07                	je     0x4034c1
4034ba:	56                   	push   %esi
4034bb:	e8 c1 1a 00 00       	call   0x404f81
4034c0:	59                   	pop    %ecx
4034c1:	8b c6                	mov    %esi,%eax
4034c3:	5e                   	pop    %esi
4034c4:	c2 04 00             	ret    $0x4
4034c7:	56                   	push   %esi
4034c8:	8d 71 f8             	lea    -0x8(%ecx),%esi
4034cb:	8b ce                	mov    %esi,%ecx
4034cd:	e8 97 f4 ff ff       	call   0x402969
4034d2:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4034d7:	74 07                	je     0x4034e0
4034d9:	56                   	push   %esi
4034da:	e8 a2 1a 00 00       	call   0x404f81
4034df:	59                   	pop    %ecx
4034e0:	8b c6                	mov    %esi,%eax
4034e2:	5e                   	pop    %esi
4034e3:	c2 04 00             	ret    $0x4
4034e6:	56                   	push   %esi
4034e7:	8b f1                	mov    %ecx,%esi
4034e9:	e8 0b fa ff ff       	call   0x402ef9
4034ee:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4034f3:	74 07                	je     0x4034fc
4034f5:	56                   	push   %esi
4034f6:	e8 86 1a 00 00       	call   0x404f81
4034fb:	59                   	pop    %ecx
4034fc:	8b c6                	mov    %esi,%eax
4034fe:	5e                   	pop    %esi
4034ff:	c2 04 00             	ret    $0x4
403502:	56                   	push   %esi
403503:	8b f1                	mov    %ecx,%esi
403505:	e8 45 fb ff ff       	call   0x40304f
40350a:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40350f:	74 07                	je     0x403518
403511:	56                   	push   %esi
403512:	e8 6a 1a 00 00       	call   0x404f81
403517:	59                   	pop    %ecx
403518:	8b c6                	mov    %esi,%eax
40351a:	5e                   	pop    %esi
40351b:	c2 04 00             	ret    $0x4
40351e:	a1 68 d2 40 00       	mov    0x40d268,%eax
403523:	53                   	push   %ebx
403524:	8b 5c 24 08          	mov    0x8(%esp),%ebx
403528:	56                   	push   %esi
403529:	8b f1                	mov    %ecx,%esi
40352b:	57                   	push   %edi
40352c:	2b 46 08             	sub    0x8(%esi),%eax
40352f:	3b c3                	cmp    %ebx,%eax
403531:	77 05                	ja     0x403538
403533:	e8 54 1a 00 00       	call   0x404f8c
403538:	85 db                	test   %ebx,%ebx
40353a:	76 33                	jbe    0x40356f
40353c:	8b fb                	mov    %ebx,%edi
40353e:	6a 00                	push   $0x0
403540:	03 7e 08             	add    0x8(%esi),%edi
403543:	8b ce                	mov    %esi,%ecx
403545:	57                   	push   %edi
403546:	e8 44 02 00 00       	call   0x40378f
40354b:	84 c0                	test   %al,%al
40354d:	74 20                	je     0x40356f
40354f:	0f be 44 24 14       	movsbl 0x14(%esp),%eax
403554:	53                   	push   %ebx
403555:	50                   	push   %eax
403556:	8b 46 04             	mov    0x4(%esi),%eax
403559:	03 46 08             	add    0x8(%esi),%eax
40355c:	50                   	push   %eax
40355d:	e8 7e 30 00 00       	call   0x4065e0
403562:	8b 46 04             	mov    0x4(%esi),%eax
403565:	83 c4 0c             	add    $0xc,%esp
403568:	89 7e 08             	mov    %edi,0x8(%esi)
40356b:	80 24 38 00          	andb   $0x0,(%eax,%edi,1)
40356f:	8b c6                	mov    %esi,%eax
403571:	5f                   	pop    %edi
403572:	5e                   	pop    %esi
403573:	5b                   	pop    %ebx
403574:	c2 08 00             	ret    $0x8
403577:	53                   	push   %ebx
403578:	56                   	push   %esi
403579:	8b 74 24 0c          	mov    0xc(%esp),%esi
40357d:	57                   	push   %edi
40357e:	8b f9                	mov    %ecx,%edi
403580:	39 77 08             	cmp    %esi,0x8(%edi)
403583:	73 05                	jae    0x40358a
403585:	e8 21 1c 00 00       	call   0x4051ab
40358a:	8b cf                	mov    %edi,%ecx
40358c:	e8 83 02 00 00       	call   0x403814
403591:	8b 47 08             	mov    0x8(%edi),%eax
403594:	8b 5c 24 14          	mov    0x14(%esp),%ebx
403598:	2b c6                	sub    %esi,%eax
40359a:	3b c3                	cmp    %ebx,%eax
40359c:	73 02                	jae    0x4035a0
40359e:	8b d8                	mov    %eax,%ebx
4035a0:	85 db                	test   %ebx,%ebx
4035a2:	76 32                	jbe    0x4035d6
4035a4:	8b 4f 04             	mov    0x4(%edi),%ecx
4035a7:	2b c3                	sub    %ebx,%eax
4035a9:	03 ce                	add    %esi,%ecx
4035ab:	50                   	push   %eax
4035ac:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
4035af:	50                   	push   %eax
4035b0:	51                   	push   %ecx
4035b1:	e8 8a 30 00 00       	call   0x406640
4035b6:	8b 77 08             	mov    0x8(%edi),%esi
4035b9:	83 c4 0c             	add    $0xc,%esp
4035bc:	2b f3                	sub    %ebx,%esi
4035be:	8b cf                	mov    %edi,%ecx
4035c0:	6a 00                	push   $0x0
4035c2:	56                   	push   %esi
4035c3:	e8 c7 01 00 00       	call   0x40378f
4035c8:	84 c0                	test   %al,%al
4035ca:	74 0a                	je     0x4035d6
4035cc:	8b 47 04             	mov    0x4(%edi),%eax
4035cf:	89 77 08             	mov    %esi,0x8(%edi)
4035d2:	80 24 06 00          	andb   $0x0,(%esi,%eax,1)
4035d6:	8b c7                	mov    %edi,%eax
4035d8:	5f                   	pop    %edi
4035d9:	5e                   	pop    %esi
4035da:	5b                   	pop    %ebx
4035db:	c2 08 00             	ret    $0x8
4035de:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)