403486:	0f 84 0a 01 00 00    	je     0x403596
40348c:	8b 45 d0             	mov    -0x30(%ebp),%eax
40348f:	3b c7                	cmp    %edi,%eax
403491:	0f 84 ff 00 00 00    	je     0x403596
403497:	8b 38                	mov    (%eax),%edi
403499:	8d 58 04             	lea    0x4(%eax),%ebx
40349c:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
40349f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4034a2:	be 00 08 00 00       	mov    $0x800,%esi
4034a7:	3b fe                	cmp    %esi,%edi
4034a9:	7c 02                	jl     0x4034ad
4034ab:	8b fe                	mov    %esi,%edi
4034ad:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
4034b4:	eb 5b                	jmp    0x403511
4034b6:	6a 40                	push   $0x40
4034b8:	6a 20                	push   $0x20
4034ba:	e8 21 24 00 00       	call   0x4058e0
4034bf:	59                   	pop    %ecx
4034c0:	59                   	pop    %ecx
4034c1:	85 c0                	test   %eax,%eax
4034c3:	74 56                	je     0x40351b
4034c5:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4034c8:	8d 0c 8d 00 0b 89 00 	lea    0x890b00(,%ecx,4),%ecx
4034cf:	89 01                	mov    %eax,(%ecx)
4034d1:	83 05 e8 0a 89 00 20 	addl   $0x20,0x890ae8
4034d8:	8d 90 00 08 00 00    	lea    0x800(%eax),%edx
4034de:	eb 2a                	jmp    0x40350a
4034e0:	c6 40 04 00          	movb   $0x0,0x4(%eax)
4034e4:	83 08 ff             	orl    $0xffffffff,(%eax)
4034e7:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
4034eb:	83 60 08 00          	andl   $0x0,0x8(%eax)
4034ef:	80 60 24 80          	andb   $0x80,0x24(%eax)
4034f3:	c6 40 25 0a          	movb   $0xa,0x25(%eax)
4034f7:	c6 40 26 0a          	movb   $0xa,0x26(%eax)
4034fb:	83 60 38 00          	andl   $0x0,0x38(%eax)
4034ff:	c6 40 34 00          	movb   $0x0,0x34(%eax)
403503:	83 c0 40             	add    $0x40,%eax
403506:	8b 11                	mov    (%ecx),%edx
403508:	03 d6                	add    %esi,%edx
40350a:	3b c2                	cmp    %edx,%eax
40350c:	72 d2                	jb     0x4034e0
40350e:	ff 45 e0             	incl   -0x20(%ebp)
403511:	39 3d e8 0a 89 00    	cmp    %edi,0x890ae8
403517:	7c 9d                	jl     0x4034b6
403519:	eb 06                	jmp    0x403521
40351b:	8b 3d e8 0a 89 00    	mov    0x890ae8,%edi
403521:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
403525:	85 ff                	test   %edi,%edi
403527:	7e 6d                	jle    0x403596
403529:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40352c:	8b 08                	mov    (%eax),%ecx
40352e:	83 f9 ff             	cmp    $0xffffffff,%ecx
403531:	74 56                	je     0x403589
403533:	83 f9 fe             	cmp    $0xfffffffe,%ecx
403536:	74 51                	je     0x403589
403538:	8a 03                	mov    (%ebx),%al
40353a:	a8 01                	test   $0x1,%al
40353c:	74 4b                	je     0x403589
40353e:	a8 08                	test   $0x8,%al
403540:	75 0b                	jne    0x40354d
403542:	51                   	push   %ecx
403543:	ff 15 a4 10 40 00    	call   *0x4010a4
403549:	85 c0                	test   %eax,%eax
40354b:	74 3c                	je     0x403589
40354d:	8b 75 e0             	mov    -0x20(%ebp),%esi
403550:	8b c6                	mov    %esi,%eax
403552:	c1 f8 05             	sar    $0x5,%eax
403555:	83 e6 1f             	and    $0x1f,%esi
403558:	c1 e6 06             	shl    $0x6,%esi
40355b:	03 34 85 00 0b 89 00 	add    0x890b00(,%eax,4),%esi
403562:	8b 45 e4             	mov    -0x1c(%ebp),%eax
403565:	8b 00                	mov    (%eax),%eax
403567:	89 06                	mov    %eax,(%esi)
403569:	8a 03                	mov    (%ebx),%al
40356b:	88 46 04             	mov    %al,0x4(%esi)
40356e:	68 a0 0f 00 00       	push   $0xfa0
403573:	8d 46 0c             	lea    0xc(%esi),%eax
403576:	50                   	push   %eax
403577:	e8 b0 1d 00 00       	call   0x40532c
40357c:	59                   	pop    %ecx
40357d:	59                   	pop    %ecx
40357e:	85 c0                	test   %eax,%eax
403580:	0f 84 c9 00 00 00    	je     0x40364f
403586:	ff 46 08             	incl   0x8(%esi)
403589:	ff 45 e0             	incl   -0x20(%ebp)
40358c:	43                   	inc    %ebx
40358d:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
403591:	39 7d e0             	cmp    %edi,-0x20(%ebp)
403594:	7c 93                	jl     0x403529
403596:	33 db                	xor    %ebx,%ebx
403598:	8b f3                	mov    %ebx,%esi
40359a:	c1 e6 06             	shl    $0x6,%esi
40359d:	03 35 00 0b 89 00    	add    0x890b00,%esi
4035a3:	8b 06                	mov    (%esi),%eax
4035a5:	83 f8 ff             	cmp    $0xffffffff,%eax
4035a8:	74 0b                	je     0x4035b5
4035aa:	83 f8 fe             	cmp    $0xfffffffe,%eax
4035ad:	74 06                	je     0x4035b5
4035af:	80 4e 04 80          	orb    $0x80,0x4(%esi)
4035b3:	eb 72                	jmp    0x403627
4035b5:	c6 46 04 81          	movb   $0x81,0x4(%esi)
4035b9:	85 db                	test   %ebx,%ebx
4035bb:	75 05                	jne    0x4035c2
4035bd:	6a f6                	push   $0xfffffff6
4035bf:	58                   	pop    %eax
4035c0:	eb 0a                	jmp    0x4035cc
4035c2:	8b c3                	mov    %ebx,%eax
4035c4:	48                   	dec    %eax
4035c5:	f7 d8                	neg    %eax
4035c7:	1b c0                	sbb    %eax,%eax
4035c9:	83 c0 f5             	add    $0xfffffff5,%eax
4035cc:	50                   	push   %eax
4035cd:	ff 15 88 10 40 00    	call   *0x401088
4035d3:	8b f8                	mov    %eax,%edi
4035d5:	83 ff ff             	cmp    $0xffffffff,%edi
4035d8:	74 43                	je     0x40361d
4035da:	85 ff                	test   %edi,%edi
4035dc:	74 3f                	je     0x40361d
4035de:	57                   	push   %edi
4035df:	ff 15 a4 10 40 00    	call   *0x4010a4
4035e5:	85 c0                	test   %eax,%eax
4035e7:	74 34                	je     0x40361d
4035e9:	89 3e                	mov    %edi,(%esi)
4035eb:	25 ff 00 00 00       	and    $0xff,%eax
4035f0:	83 f8 02             	cmp    $0x2,%eax
4035f3:	75 06                	jne    0x4035fb
4035f5:	80 4e 04 40          	orb    $0x40,0x4(%esi)
4035f9:	eb 09                	jmp    0x403604
4035fb:	83 f8 03             	cmp    $0x3,%eax
4035fe:	75 04                	jne    0x403604
403600:	80 4e 04 08          	orb    $0x8,0x4(%esi)
403604:	68 a0 0f 00 00       	push   $0xfa0
403609:	8d 46 0c             	lea    0xc(%esi),%eax
40360c:	50                   	push   %eax
40360d:	e8 1a 1d 00 00       	call   0x40532c
403612:	59                   	pop    %ecx
403613:	59                   	pop    %ecx
403614:	85 c0                	test   %eax,%eax
403616:	74 37                	je     0x40364f
403618:	ff 46 08             	incl   0x8(%esi)
40361b:	eb 0a                	jmp    0x403627
40361d:	80 4e 04 40          	orb    $0x40,0x4(%esi)
403621:	c7 06 fe ff ff ff    	movl   $0xfffffffe,(%esi)
403627:	43                   	inc    %ebx
403628:	83 fb 03             	cmp    $0x3,%ebx
40362b:	0f 8c 67 ff ff ff    	jl     0x403598
403631:	ff 35 e8 0a 89 00    	push   0x890ae8
403637:	ff 15 a0 10 40 00    	call   *0x4010a0
40363d:	33 c0                	xor    %eax,%eax
40363f:	eb 11                	jmp    0x403652
403641:	33 c0                	xor    %eax,%eax
403643:	40                   	inc    %eax
403644:	c3                   	ret
403645:	8b 65 e8             	mov    -0x18(%ebp),%esp
403648:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40364f:	83 c8 ff             	or     $0xffffffff,%eax
403652:	e8 62 06 00 00       	call   0x403cb9
403657:	c3                   	ret
403658:	8b ff                	mov    %edi,%edi
40365a:	56                   	push   %esi
40365b:	b8 e0 23 40 00       	mov    $0x4023e0,%eax
403660:	be e0 23 40 00       	mov    $0x4023e0,%esi
403665:	57                   	push   %edi
403666:	8b f8                	mov    %eax,%edi
403668:	3b c6                	cmp    %esi,%eax
40366a:	73 0f                	jae    0x40367b
40366c:	8b 07                	mov    (%edi),%eax
40366e:	85 c0                	test   %eax,%eax
403670:	74 02                	je     0x403674
403672:	ff d0                	call   *%eax
403674:	83 c7 04             	add    $0x4,%edi
403677:	3b fe                	cmp    %esi,%edi
403679:	72 f1                	jb     0x40366c
40367b:	5f                   	pop    %edi
40367c:	5e                   	pop    %esi
40367d:	c3                   	ret
40367e:	8b ff                	mov    %edi,%edi
403680:	56                   	push   %esi
403681:	b8 e8 23 40 00       	mov    $0x4023e8,%eax
403686:	be e8 23 40 00       	mov    $0x4023e8,%esi
40368b:	57                   	push   %edi
40368c:	8b f8                	mov    %eax,%edi
40368e:	3b c6                	cmp    %esi,%eax
403690:	73 0f                	jae    0x4036a1
403692:	8b 07                	mov    (%edi),%eax
403694:	85 c0                	test   %eax,%eax
403696:	74 02                	je     0x40369a
403698:	ff d0                	call   *%eax
40369a:	83 c7 04             	add    $0x4,%edi
40369d:	3b fe                	cmp    %esi,%edi
40369f:	72 f1                	jb     0x403692
4036a1:	5f                   	pop    %edi
4036a2:	5e                   	pop    %esi
4036a3:	c3                   	ret
4036a4:	8b ff                	mov    %edi,%edi
4036a6:	55                   	push   %ebp
4036a7:	8b ec                	mov    %esp,%ebp
4036a9:	56                   	push   %esi
4036aa:	ff 35 1c b1 40 00    	push   0x40b11c
4036b0:	8b 35 b0 10 40 00    	mov    0x4010b0,%esi
4036b6:	ff d6                	call   *%esi
4036b8:	85 c0                	test   %eax,%eax
4036ba:	74 21                	je     0x4036dd
4036bc:	a1 18 b1 40 00       	mov    0x40b118,%eax
4036c1:	83 f8 ff             	cmp    $0xffffffff,%eax
4036c4:	74 17                	je     0x4036dd
4036c6:	50                   	push   %eax
4036c7:	ff 35 1c b1 40 00    	push   0x40b11c
4036cd:	ff d6                	call   *%esi
4036cf:	ff d0                	call   *%eax
4036d1:	85 c0                	test   %eax,%eax
4036d3:	74 08                	je     0x4036dd
4036d5:	8b 80 f8 01 00 00    	mov    0x1f8(%eax),%eax
4036db:	eb 27                	jmp    0x403704
4036dd:	be 0c 18 40 00       	mov    $0x40180c,%esi
4036e2:	56                   	push   %esi
4036e3:	ff 15 50 10 40 00    	call   *0x401050
4036e9:	85 c0                	test   %eax,%eax
4036eb:	75 0b                	jne    0x4036f8
4036ed:	56                   	push   %esi
4036ee:	e8 14 f3 ff ff       	call   0x402a07
4036f3:	59                   	pop    %ecx
4036f4:	85 c0                	test   %eax,%eax
4036f6:	74 18                	je     0x403710
4036f8:	68 fc 17 40 00       	push   $0x4017fc
4036fd:	50                   	push   %eax
4036fe:	ff 15 38 10 40 00    	call   *0x401038
403704:	85 c0                	test   %eax,%eax
403706:	74 08                	je     0x403710
403708:	ff 75 08             	push   0x8(%ebp)
40370b:	ff d0                	call   *%eax
40370d:	89 45 08             	mov    %eax,0x8(%ebp)
403710:	8b 45 08             	mov    0x8(%ebp),%eax
403713:	5e                   	pop    %esi
403714:	5d                   	pop    %ebp
403715:	c3                   	ret
403716:	6a 00                	push   $0x0
403718:	e8 87 ff ff ff       	call   0x4036a4
40371d:	59                   	pop    %ecx
40371e:	c3                   	ret
40371f:	8b ff                	mov    %edi,%edi
403721:	55                   	push   %ebp
403722:	8b ec                	mov    %esp,%ebp
403724:	56                   	push   %esi
403725:	ff 35 1c b1 40 00    	push   0x40b11c
40372b:	8b 35 b0 10 40 00    	mov    0x4010b0,%esi
403731:	ff d6                	call   *%esi
403733:	85 c0                	test   %eax,%eax
403735:	74 21                	je     0x403758
403737:	a1 18 b1 40 00       	mov    0x40b118,%eax
40373c:	83 f8 ff             	cmp    $0xffffffff,%eax
40373f:	74 17                	je     0x403758
403741:	50                   	push   %eax
403742:	ff 35 1c b1 40 00    	push   0x40b11c
403748:	ff d6                	call   *%esi
40374a:	ff d0                	call   *%eax
40374c:	85 c0                	test   %eax,%eax
40374e:	74 08                	je     0x403758
403750:	8b 80 fc 01 00 00    	mov    0x1fc(%eax),%eax
403756:	eb 27                	jmp    0x40377f
403758:	be 0c 18 40 00       	mov    $0x40180c,%esi
40375d:	56                   	push   %esi
40375e:	ff 15 50 10 40 00    	call   *0x401050
403764:	85 c0                	test   %eax,%eax
403766:	75 0b                	jne    0x403773
403768:	56                   	push   %esi
403769:	e8 99 f2 ff ff       	call   0x402a07
40376e:	59                   	pop    %ecx
40376f:	85 c0                	test   %eax,%eax
403771:	74 18                	je     0x40378b
403773:	68 28 18 40 00       	push   $0x401828
403778:	50                   	push   %eax
403779:	ff 15 38 10 40 00    	call   *0x401038
40377f:	85 c0                	test   %eax,%eax
403781:	74 08                	je     0x40378b
403783:	ff 75 08             	push   0x8(%ebp)
403786:	ff d0                	call   *%eax
403788:	89 45 08             	mov    %eax,0x8(%ebp)
40378b:	8b 45 08             	mov    0x8(%ebp),%eax
40378e:	5e                   	pop    %esi
40378f:	5d                   	pop    %ebp
403790:	c3                   	ret
403791:	ff 15 b4 10 40 00    	call   *0x4010b4
403797:	c2 04 00             	ret    $0x4
40379a:	8b ff                	mov    %edi,%edi
40379c:	56                   	push   %esi
40379d:	ff 35 1c b1 40 00    	push   0x40b11c
4037a3:	ff 15 b0 10 40 00    	call   *0x4010b0
4037a9:	8b f0                	mov    %eax,%esi
4037ab:	85 f6                	test   %esi,%esi
4037ad:	75 1b                	jne    0x4037ca
4037af:	ff 35 d0 cd 45 00    	push   0x45cdd0
4037b5:	e8 65 ff ff ff       	call   0x40371f
4037ba:	59                   	pop    %ecx
4037bb:	8b f0                	mov    %eax,%esi
4037bd:	56                   	push   %esi
4037be:	ff 35 1c b1 40 00    	push   0x40b11c
4037c4:	ff 15 b8 10 40 00    	call   *0x4010b8
4037ca:	8b c6                	mov    %esi,%eax
4037cc:	5e                   	pop    %esi
4037cd:	c3                   	ret
4037ce:	a1 18 b1 40 00       	mov    0x40b118,%eax
4037d3:	83 f8 ff             	cmp    $0xffffffff,%eax
4037d6:	74 16                	je     0x4037ee
4037d8:	50                   	push   %eax
4037d9:	ff 35 d8 cd 45 00    	push   0x45cdd8
4037df:	e8 3b ff ff ff       	call   0x40371f
4037e4:	59                   	pop    %ecx
4037e5:	ff d0                	call   *%eax
4037e7:	83 0d 18 b1 40 00 ff 	orl    $0xffffffff,0x40b118
4037ee:	a1 1c b1 40 00       	mov    0x40b11c,%eax
4037f3:	83 f8 ff             	cmp    $0xffffffff,%eax
4037f6:	74 0e                	je     0x403806
4037f8:	50                   	push   %eax
4037f9:	ff 15 bc 10 40 00    	call   *0x4010bc
4037ff:	83 0d 1c b1 40 00 ff 	orl    $0xffffffff,0x40b11c
403806:	e9 cf 14 00 00       	jmp    0x404cda
40380b:	6a 0c                	push   $0xc
40380d:	68 08 a5 40 00       	push   $0x40a508
403812:	e8 5d 04 00 00       	call   0x403c74
403817:	be 0c 18 40 00       	mov    $0x40180c,%esi
40381c:	56                   	push   %esi
40381d:	ff 15 50 10 40 00    	call   *0x401050
403823:	85 c0                	test   %eax,%eax
403825:	75 07                	jne    0x40382e
403827:	56                   	push   %esi
403828:	e8 da f1 ff ff       	call   0x402a07
40382d:	59                   	pop    %ecx
40382e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
403831:	8b 75 08             	mov    0x8(%ebp),%esi
403834:	c7 46 5c 80 17 40 00 	movl   $0x401780,0x5c(%esi)
40383b:	33 ff                	xor    %edi,%edi
40383d:	47                   	inc    %edi
40383e:	89 7e 14             	mov    %edi,0x14(%esi)
403841:	85 c0                	test   %eax,%eax
403843:	74 24                	je     0x403869
403845:	68 fc 17 40 00       	push   $0x4017fc
40384a:	50                   	push   %eax
40384b:	8b 1d 38 10 40 00    	mov    0x401038,%ebx
403851:	ff d3                	call   *%ebx
403853:	89 86 f8 01 00 00    	mov    %eax,0x1f8(%esi)
403859:	68 28 18 40 00       	push   $0x401828
40385e:	ff 75 e4             	push   -0x1c(%ebp)
403861:	ff d3                	call   *%ebx
403863:	89 86 fc 01 00 00    	mov    %eax,0x1fc(%esi)
403869:	89 7e 70             	mov    %edi,0x70(%esi)
40386c:	c6 86 c8 00 00 00 43 	movb   $0x43,0xc8(%esi)
403873:	c6 86 4b 01 00 00 43 	movb   $0x43,0x14b(%esi)
40387a:	c7 46 68 28 b1 40 00 	movl   $0x40b128,0x68(%esi)
403881:	6a 0d                	push   $0xd