403438:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40343c:	75 15                	jne    0x403453
40343e:	e8 e4 0c 00 00       	call   0x404127
403443:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403449:	e8 39 f8 ff ff       	call   0x402c87
40344e:	83 c8 ff             	or     $0xffffffff,%eax
403451:	5d                   	pop    %ebp
403452:	c3                   	ret
403453:	53                   	push   %ebx
403454:	8b 5d 10             	mov    0x10(%ebp),%ebx
403457:	56                   	push   %esi
403458:	8b 75 08             	mov    0x8(%ebp),%esi
40345b:	57                   	push   %edi
40345c:	85 db                	test   %ebx,%ebx
40345e:	75 10                	jne    0x403470
403460:	85 f6                	test   %esi,%esi
403462:	75 10                	jne    0x403474
403464:	39 75 0c             	cmp    %esi,0xc(%ebp)
403467:	75 12                	jne    0x40347b
403469:	33 c0                	xor    %eax,%eax
40346b:	e9 ae 00 00 00       	jmp    0x40351e
403470:	85 f6                	test   %esi,%esi
403472:	74 07                	je     0x40347b
403474:	8b 7d 0c             	mov    0xc(%ebp),%edi
403477:	85 ff                	test   %edi,%edi
403479:	75 10                	jne    0x40348b
40347b:	e8 a7 0c 00 00       	call   0x404127
403480:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403486:	e9 8b 00 00 00       	jmp    0x403516
40348b:	e8 97 0c 00 00       	call   0x404127
403490:	ff 75 1c             	push   0x1c(%ebp)
403493:	ff 75 18             	push   0x18(%ebp)
403496:	ff 75 14             	push   0x14(%ebp)
403499:	3b fb                	cmp    %ebx,%edi
40349b:	76 2a                	jbe    0x4034c7
40349d:	8b 38                	mov    (%eax),%edi
40349f:	43                   	inc    %ebx
4034a0:	53                   	push   %ebx
4034a1:	56                   	push   %esi
4034a2:	68 7c 88 40 00       	push   $0x40887c
4034a7:	e8 91 fe ff ff       	call   0x40333d
4034ac:	83 c4 18             	add    $0x18,%esp
4034af:	83 f8 fe             	cmp    $0xfffffffe,%eax
4034b2:	75 49                	jne    0x4034fd
4034b4:	e8 6e 0c 00 00       	call   0x404127
4034b9:	83 38 22             	cmpl   $0x22,(%eax)
4034bc:	75 5d                	jne    0x40351b
4034be:	e8 64 0c 00 00       	call   0x404127
4034c3:	89 38                	mov    %edi,(%eax)
4034c5:	eb 54                	jmp    0x40351b
4034c7:	8b 18                	mov    (%eax),%ebx
4034c9:	57                   	push   %edi
4034ca:	56                   	push   %esi
4034cb:	68 7c 88 40 00       	push   $0x40887c
4034d0:	e8 68 fe ff ff       	call   0x40333d
4034d5:	33 c9                	xor    %ecx,%ecx
4034d7:	83 c4 18             	add    $0x18,%esp
4034da:	66 89 4c 7e fe       	mov    %cx,-0x2(%esi,%edi,2)
4034df:	83 f8 fe             	cmp    $0xfffffffe,%eax
4034e2:	75 19                	jne    0x4034fd
4034e4:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
4034e8:	75 17                	jne    0x403501
4034ea:	e8 38 0c 00 00       	call   0x404127
4034ef:	83 38 22             	cmpl   $0x22,(%eax)
4034f2:	75 27                	jne    0x40351b
4034f4:	e8 2e 0c 00 00       	call   0x404127
4034f9:	89 18                	mov    %ebx,(%eax)
4034fb:	eb 1e                	jmp    0x40351b
4034fd:	85 c0                	test   %eax,%eax
4034ff:	79 1d                	jns    0x40351e
403501:	33 c9                	xor    %ecx,%ecx
403503:	66 89 0e             	mov    %cx,(%esi)
403506:	83 f8 fe             	cmp    $0xfffffffe,%eax
403509:	75 10                	jne    0x40351b
40350b:	e8 17 0c 00 00       	call   0x404127
403510:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
403516:	e8 6c f7 ff ff       	call   0x402c87
40351b:	83 c8 ff             	or     $0xffffffff,%eax
40351e:	5f                   	pop    %edi
40351f:	5e                   	pop    %esi
403520:	5b                   	pop    %ebx
403521:	5d                   	pop    %ebp
403522:	c3                   	ret
403523:	8b ff                	mov    %edi,%edi
403525:	55                   	push   %ebp
403526:	8b ec                	mov    %esp,%ebp
403528:	ff 75 18             	push   0x18(%ebp)
40352b:	6a 00                	push   $0x0
40352d:	ff 75 14             	push   0x14(%ebp)
403530:	ff 75 10             	push   0x10(%ebp)
403533:	ff 75 0c             	push   0xc(%ebp)
403536:	ff 75 08             	push   0x8(%ebp)
403539:	e8 f5 fe ff ff       	call   0x403433
40353e:	83 c4 18             	add    $0x18,%esp
403541:	5d                   	pop    %ebp
403542:	c3                   	ret
403543:	8b ff                	mov    %edi,%edi
403545:	55                   	push   %ebp
403546:	8b ec                	mov    %esp,%ebp
403548:	56                   	push   %esi
403549:	8b 75 08             	mov    0x8(%ebp),%esi
40354c:	8b 46 0c             	mov    0xc(%esi),%eax
40354f:	a8 83                	test   $0x83,%al
403551:	75 10                	jne    0x403563
403553:	e8 cf 0b 00 00       	call   0x404127
403558:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40355e:	83 c8 ff             	or     $0xffffffff,%eax
403561:	eb 67                	jmp    0x4035ca
403563:	83 e0 ef             	and    $0xffffffef,%eax
403566:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
40356a:	89 46 0c             	mov    %eax,0xc(%esi)
40356d:	75 0e                	jne    0x40357d
40356f:	56                   	push   %esi
403570:	e8 00 f8 ff ff       	call   0x402d75
403575:	01 45 0c             	add    %eax,0xc(%ebp)
403578:	83 65 10 00          	andl   $0x0,0x10(%ebp)
40357c:	59                   	pop    %ecx
40357d:	56                   	push   %esi
40357e:	e8 09 35 00 00       	call   0x406a8c
403583:	8b 46 0c             	mov    0xc(%esi),%eax
403586:	59                   	pop    %ecx
403587:	84 c0                	test   %al,%al
403589:	79 08                	jns    0x403593
40358b:	83 e0 fc             	and    $0xfffffffc,%eax
40358e:	89 46 0c             	mov    %eax,0xc(%esi)
403591:	eb 16                	jmp    0x4035a9
403593:	a8 01                	test   $0x1,%al
403595:	74 12                	je     0x4035a9
403597:	a8 08                	test   $0x8,%al
403599:	74 0e                	je     0x4035a9
40359b:	a9 00 04 00 00       	test   $0x400,%eax
4035a0:	75 07                	jne    0x4035a9
4035a2:	c7 46 18 00 02 00 00 	movl   $0x200,0x18(%esi)
4035a9:	ff 75 10             	push   0x10(%ebp)
4035ac:	ff 75 0c             	push   0xc(%ebp)
4035af:	56                   	push   %esi
4035b0:	e8 fb f4 ff ff       	call   0x402ab0
4035b5:	59                   	pop    %ecx
4035b6:	50                   	push   %eax
4035b7:	e8 85 51 00 00       	call   0x408741
4035bc:	33 c9                	xor    %ecx,%ecx
4035be:	83 c4 0c             	add    $0xc,%esp
4035c1:	83 f8 ff             	cmp    $0xffffffff,%eax
4035c4:	0f 95 c1             	setne  %cl
4035c7:	8d 41 ff             	lea    -0x1(%ecx),%eax
4035ca:	5e                   	pop    %esi
4035cb:	5d                   	pop    %ebp
4035cc:	c3                   	ret
4035cd:	6a 0c                	push   $0xc
4035cf:	68 38 11 41 00       	push   $0x411138
4035d4:	e8 97 0b 00 00       	call   0x404170
4035d9:	33 c0                	xor    %eax,%eax
4035db:	39 45 08             	cmp    %eax,0x8(%ebp)
4035de:	0f 95 c0             	setne  %al
4035e1:	85 c0                	test   %eax,%eax
4035e3:	75 15                	jne    0x4035fa
4035e5:	e8 3d 0b 00 00       	call   0x404127
4035ea:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4035f0:	e8 92 f6 ff ff       	call   0x402c87
4035f5:	83 c8 ff             	or     $0xffffffff,%eax
4035f8:	eb 3f                	jmp    0x403639
4035fa:	8b 75 10             	mov    0x10(%ebp),%esi
4035fd:	85 f6                	test   %esi,%esi
4035ff:	74 0a                	je     0x40360b
403601:	83 fe 01             	cmp    $0x1,%esi
403604:	74 05                	je     0x40360b
403606:	83 fe 02             	cmp    $0x2,%esi
403609:	75 da                	jne    0x4035e5
40360b:	ff 75 08             	push   0x8(%ebp)
40360e:	e8 47 ed ff ff       	call   0x40235a
403613:	59                   	pop    %ecx
403614:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403618:	56                   	push   %esi
403619:	ff 75 0c             	push   0xc(%ebp)
40361c:	ff 75 08             	push   0x8(%ebp)
40361f:	e8 1f ff ff ff       	call   0x403543
403624:	83 c4 0c             	add    $0xc,%esp
403627:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40362a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403631:	e8 09 00 00 00       	call   0x40363f
403636:	8b 45 e4             	mov    -0x1c(%ebp),%eax
403639:	e8 77 0b 00 00       	call   0x4041b5
40363e:	c3                   	ret
40363f:	ff 75 08             	push   0x8(%ebp)
403642:	e8 86 ed ff ff       	call   0x4023cd
403647:	59                   	pop    %ecx
403648:	c3                   	ret
403649:	8b ff                	mov    %edi,%edi
40364b:	55                   	push   %ebp
40364c:	8b ec                	mov    %esp,%ebp
40364e:	83 3d 20 47 41 00 00 	cmpl   $0x0,0x414720
403655:	56                   	push   %esi
403656:	8b 35 70 32 41 00    	mov    0x413270,%esi
40365c:	75 04                	jne    0x403662
40365e:	33 c0                	xor    %eax,%eax
403660:	eb 77                	jmp    0x4036d9
403662:	57                   	push   %edi
403663:	85 f6                	test   %esi,%esi
403665:	75 2e                	jne    0x403695
403667:	39 35 68 32 41 00    	cmp    %esi,0x413268
40366d:	74 67                	je     0x4036d6
40366f:	e8 20 61 00 00       	call   0x409794
403674:	a3 ec 2e 41 00       	mov    %eax,0x412eec
403679:	e8 3a 60 00 00       	call   0x4096b8
40367e:	85 c0                	test   %eax,%eax
403680:	79 09                	jns    0x40368b
403682:	e8 aa 5f 00 00       	call   0x409631
403687:	85 c0                	test   %eax,%eax
403689:	75 4b                	jne    0x4036d6
40368b:	8b 35 70 32 41 00    	mov    0x413270,%esi
403691:	85 f6                	test   %esi,%esi
403693:	74 41                	je     0x4036d6
403695:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
403699:	74 3b                	je     0x4036d6
40369b:	ff 75 08             	push   0x8(%ebp)
40369e:	e8 73 5f 00 00       	call   0x409616
4036a3:	59                   	pop    %ecx
4036a4:	8b f8                	mov    %eax,%edi
4036a6:	eb 28                	jmp    0x4036d0
4036a8:	50                   	push   %eax
4036a9:	e8 68 5f 00 00       	call   0x409616
4036ae:	59                   	pop    %ecx
4036af:	3b c7                	cmp    %edi,%eax
4036b1:	76 1a                	jbe    0x4036cd
4036b3:	8b 06                	mov    (%esi),%eax
4036b5:	66 83 3c 78 3d       	cmpw   $0x3d,(%eax,%edi,2)
4036ba:	75 11                	jne    0x4036cd
4036bc:	57                   	push   %edi
4036bd:	ff 75 08             	push   0x8(%ebp)
4036c0:	50                   	push   %eax
4036c1:	e8 96 5e 00 00       	call   0x40955c
4036c6:	83 c4 0c             	add    $0xc,%esp
4036c9:	85 c0                	test   %eax,%eax
4036cb:	74 0f                	je     0x4036dc
4036cd:	83 c6 04             	add    $0x4,%esi
4036d0:	8b 06                	mov    (%esi),%eax
4036d2:	85 c0                	test   %eax,%eax
4036d4:	75 d2                	jne    0x4036a8
4036d6:	33 c0                	xor    %eax,%eax
4036d8:	5f                   	pop    %edi
4036d9:	5e                   	pop    %esi
4036da:	5d                   	pop    %ebp
4036db:	c3                   	ret
4036dc:	8b 06                	mov    (%esi),%eax
4036de:	8d 44 78 02          	lea    0x2(%eax,%edi,2),%eax
4036e2:	eb f4                	jmp    0x4036d8
4036e4:	6a 0c                	push   $0xc
4036e6:	68 58 11 41 00       	push   $0x411158
4036eb:	e8 80 0a 00 00       	call   0x404170
4036f0:	6a 07                	push   $0x7
4036f2:	e8 a2 36 00 00       	call   0x406d99
4036f7:	59                   	pop    %ecx
4036f8:	33 f6                	xor    %esi,%esi
4036fa:	89 75 fc             	mov    %esi,-0x4(%ebp)
4036fd:	33 c0                	xor    %eax,%eax
4036ff:	8b 7d 08             	mov    0x8(%ebp),%edi
403702:	3b fe                	cmp    %esi,%edi
403704:	0f 95 c0             	setne  %al
403707:	3b c6                	cmp    %esi,%eax
403709:	75 14                	jne    0x40371f
40370b:	e8 17 0a 00 00       	call   0x404127
403710:	6a 16                	push   $0x16
403712:	5e                   	pop    %esi
403713:	89 30                	mov    %esi,(%eax)
403715:	e8 6d f5 ff ff       	call   0x402c87
40371a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40371d:	eb 74                	jmp    0x403793
40371f:	89 37                	mov    %esi,(%edi)
403721:	8b 45 0c             	mov    0xc(%ebp),%eax
403724:	3b c6                	cmp    %esi,%eax
403726:	74 02                	je     0x40372a
403728:	89 30                	mov    %esi,(%eax)
40372a:	33 c0                	xor    %eax,%eax
40372c:	39 75 10             	cmp    %esi,0x10(%ebp)
40372f:	0f 95 c0             	setne  %al
403732:	3b c6                	cmp    %esi,%eax
403734:	74 d5                	je     0x40370b
403736:	ff 75 10             	push   0x10(%ebp)
403739:	e8 0b ff ff ff       	call   0x403649
40373e:	59                   	pop    %ecx
40373f:	8b d8                	mov    %eax,%ebx
403741:	3b de                	cmp    %esi,%ebx
403743:	74 d5                	je     0x40371a
403745:	53                   	push   %ebx
403746:	e8 cb 5e 00 00       	call   0x409616
40374b:	8d 70 01             	lea    0x1(%eax),%esi
40374e:	6a 02                	push   $0x2
403750:	56                   	push   %esi
403751:	e8 4f e8 ff ff       	call   0x401fa5
403756:	83 c4 0c             	add    $0xc,%esp
403759:	89 07                	mov    %eax,(%edi)
40375b:	33 ff                	xor    %edi,%edi
40375d:	3b c7                	cmp    %edi,%eax
40375f:	75 17                	jne    0x403778
403761:	e8 c1 09 00 00       	call   0x404127
403766:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40376c:	e8 b6 09 00 00       	call   0x404127
403771:	8b 00                	mov    (%eax),%eax
403773:	89 45 e4             	mov    %eax,-0x1c(%ebp)
403776:	eb 1b                	jmp    0x403793
403778:	53                   	push   %ebx
403779:	56                   	push   %esi
40377a:	50                   	push   %eax
40377b:	e8 3b 00 00 00       	call   0x4037bb
403780:	83 c4 0c             	add    $0xc,%esp
403783:	3b c7                	cmp    %edi,%eax
403785:	75 21                	jne    0x4037a8
403787:	8b 45 0c             	mov    0xc(%ebp),%eax
40378a:	3b c7                	cmp    %edi,%eax
40378c:	74 02                	je     0x403790
40378e:	89 30                	mov    %esi,(%eax)
403790:	89 7d e4             	mov    %edi,-0x1c(%ebp)
403793:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40379a:	e8 13 00 00 00       	call   0x4037b2
40379f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4037a2:	e8 0e 0a 00 00       	call   0x4041b5
4037a7:	c3                   	ret
4037a8:	57                   	push   %edi
4037a9:	57                   	push   %edi
4037aa:	57                   	push   %edi
4037ab:	57                   	push   %edi
4037ac:	57                   	push   %edi
4037ad:	e8 83 f4 ff ff       	call   0x402c35
4037b2:	6a 07                	push   $0x7
4037b4:	e8 07 35 00 00       	call   0x406cc0
4037b9:	59                   	pop    %ecx
4037ba:	c3                   	ret
4037bb:	8b ff                	mov    %edi,%edi
4037bd:	55                   	push   %ebp
4037be:	8b ec                	mov    %esp,%ebp
4037c0:	56                   	push   %esi
4037c1:	8b 75 08             	mov    0x8(%ebp),%esi
4037c4:	57                   	push   %edi
4037c5:	85 f6                	test   %esi,%esi
4037c7:	74 07                	je     0x4037d0
4037c9:	8b 7d 0c             	mov    0xc(%ebp),%edi
4037cc:	85 ff                	test   %edi,%edi
4037ce:	75 15                	jne    0x4037e5
4037d0:	e8 52 09 00 00       	call   0x404127
4037d5:	6a 16                	push   $0x16
4037d7:	5e                   	pop    %esi
4037d8:	89 30                	mov    %esi,(%eax)
4037da:	e8 a8 f4 ff ff       	call   0x402c87
4037df:	8b c6                	mov    %esi,%eax
4037e1:	5f                   	pop    %edi
4037e2:	5e                   	pop    %esi
4037e3:	5d                   	pop    %ebp
4037e4:	c3                   	ret
4037e5:	8b 45 10             	mov    0x10(%ebp),%eax
4037e8:	85 c0                	test   %eax,%eax