40347d:	8b 75 0c             	mov    0xc(%ebp),%esi
403480:	89 18                	mov    %ebx,(%eax)
403482:	8b 45 08             	mov    0x8(%ebp),%eax
403485:	57                   	push   %edi
403486:	83 e8 04             	sub    $0x4,%eax
403489:	74 12                	je     0x40349d
40348b:	83 e8 01             	sub    $0x1,%eax
40348e:	74 05                	je     0x403495
403490:	6a 57                	push   $0x57
403492:	58                   	pop    %eax
403493:	eb 48                	jmp    0x4034dd
403495:	8b fb                	mov    %ebx,%edi
403497:	8b c3                	mov    %ebx,%eax
403499:	8a d3                	mov    %bl,%dl
40349b:	eb 23                	jmp    0x4034c0
40349d:	ff 75 14             	push   0x14(%ebp)
4034a0:	ff 15 c8 90 40 00    	call   *0x4090c8
4034a6:	8b fa                	mov    %edx,%edi
4034a8:	8b d8                	mov    %eax,%ebx
4034aa:	57                   	push   %edi
4034ab:	53                   	push   %ebx
4034ac:	ff 15 c4 90 40 00    	call   *0x4090c4
4034b2:	57                   	push   %edi
4034b3:	53                   	push   %ebx
4034b4:	88 45 ff             	mov    %al,-0x1(%ebp)
4034b7:	ff 15 c0 90 40 00    	call   *0x4090c0
4034bd:	8a 55 ff             	mov    -0x1(%ebp),%dl
4034c0:	f6 46 1a 02          	testb  $0x2,0x1a(%esi)
4034c4:	74 09                	je     0x4034cf
4034c6:	8b 4e 10             	mov    0x10(%esi),%ecx
4034c9:	85 c9                	test   %ecx,%ecx
4034cb:	74 02                	je     0x4034cf
4034cd:	8b f1                	mov    %ecx,%esi
4034cf:	89 46 1c             	mov    %eax,0x1c(%esi)
4034d2:	33 c0                	xor    %eax,%eax
4034d4:	89 5e 10             	mov    %ebx,0x10(%esi)
4034d7:	89 7e 14             	mov    %edi,0x14(%esi)
4034da:	88 56 19             	mov    %dl,0x19(%esi)
4034dd:	5f                   	pop    %edi
4034de:	5e                   	pop    %esi
4034df:	5b                   	pop    %ebx
4034e0:	c9                   	leave
4034e1:	c2 10 00             	ret    $0x10
4034e4:	8b ff                	mov    %edi,%edi
4034e6:	55                   	push   %ebp
4034e7:	8b ec                	mov    %esp,%ebp
4034e9:	51                   	push   %ecx
4034ea:	51                   	push   %ecx
4034eb:	56                   	push   %esi
4034ec:	8b 35 0c 80 40 00    	mov    0x40800c,%esi
4034f2:	57                   	push   %edi
4034f3:	bf b8 84 40 00       	mov    $0x4084b8,%edi
4034f8:	eb 2c                	jmp    0x403526
4034fa:	8b 0f                	mov    (%edi),%ecx
4034fc:	8d 46 08             	lea    0x8(%esi),%eax
4034ff:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403503:	8d 7f 04             	lea    0x4(%edi),%edi
403506:	50                   	push   %eax
403507:	6a 00                	push   $0x0
403509:	6a 00                	push   $0x0
40350b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40350e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
403511:	50                   	push   %eax
403512:	6a 01                	push   $0x1
403514:	51                   	push   %ecx
403515:	56                   	push   %esi
403516:	68 70 34 40 00       	push   $0x403470
40351b:	89 4e 20             	mov    %ecx,0x20(%esi)
40351e:	ff 15 bc 90 40 00    	call   *0x4090bc
403524:	8b 36                	mov    (%esi),%esi
403526:	85 f6                	test   %esi,%esi
403528:	75 d0                	jne    0x4034fa
40352a:	5f                   	pop    %edi
40352b:	5e                   	pop    %esi
40352c:	c9                   	leave
40352d:	c3                   	ret
40352e:	cc                   	int3
40352f:	cc                   	int3
403530:	8b ff                	mov    %edi,%edi
403532:	55                   	push   %ebp
403533:	8b ec                	mov    %esp,%ebp
403535:	8b 45 0c             	mov    0xc(%ebp),%eax
403538:	56                   	push   %esi
403539:	33 f6                	xor    %esi,%esi
40353b:	48                   	dec    %eax
40353c:	83 e8 01             	sub    $0x1,%eax
40353f:	74 16                	je     0x403557
403541:	ff 75 14             	push   0x14(%ebp)
403544:	ff 75 10             	push   0x10(%ebp)
403547:	ff 75 0c             	push   0xc(%ebp)
40354a:	ff 75 08             	push   0x8(%ebp)
40354d:	ff 15 44 a0 40 00    	call   *0x40a044
403553:	8b f0                	mov    %eax,%esi
403555:	eb 28                	jmp    0x40357f
403557:	e8 07 1b 00 00       	call   0x405063
40355c:	84 c0                	test   %al,%al
40355e:	74 0f                	je     0x40356f
403560:	56                   	push   %esi
403561:	56                   	push   %esi
403562:	6a 12                	push   $0x12
403564:	ff 75 08             	push   0x8(%ebp)
403567:	ff 15 20 a0 40 00    	call   *0x40a020
40356d:	eb 10                	jmp    0x40357f
40356f:	a1 70 84 40 00       	mov    0x408470,%eax
403574:	85 c0                	test   %eax,%eax
403576:	74 07                	je     0x40357f
403578:	50                   	push   %eax
403579:	ff 15 94 90 40 00    	call   *0x409094
40357f:	8b c6                	mov    %esi,%eax
403581:	5e                   	pop    %esi
403582:	5d                   	pop    %ebp
403583:	c2 10 00             	ret    $0x10
403586:	8b ff                	mov    %edi,%edi
403588:	55                   	push   %ebp
403589:	8b ec                	mov    %esp,%ebp
40358b:	83 ec 28             	sub    $0x28,%esp
40358e:	53                   	push   %ebx
40358f:	56                   	push   %esi
403590:	57                   	push   %edi
403591:	33 db                	xor    %ebx,%ebx
403593:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%ebp)
40359a:	68 01 7f 00 00       	push   $0x7f01
40359f:	8b f1                	mov    %ecx,%esi
4035a1:	c7 45 dc 30 35 40 00 	movl   $0x403530,-0x24(%ebp)
4035a8:	53                   	push   %ebx
4035a9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4035ac:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4035af:	89 75 e8             	mov    %esi,-0x18(%ebp)
4035b2:	ff 15 0c a0 40 00    	call   *0x40a00c
4035b8:	68 00 7f 00 00       	push   $0x7f00
4035bd:	53                   	push   %ebx
4035be:	89 45 ec             	mov    %eax,-0x14(%ebp)
4035c1:	ff 15 08 a0 40 00    	call   *0x40a008
4035c7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4035ca:	bf 60 24 40 00       	mov    $0x402460,%edi
4035cf:	8d 45 d8             	lea    -0x28(%ebp),%eax
4035d2:	c7 45 f4 06 00 00 00 	movl   $0x6,-0xc(%ebp)
4035d9:	50                   	push   %eax
4035da:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4035dd:	89 7d fc             	mov    %edi,-0x4(%ebp)
4035e0:	ff 15 54 a0 40 00    	call   *0x40a054
4035e6:	53                   	push   %ebx
4035e7:	56                   	push   %esi
4035e8:	53                   	push   %ebx
4035e9:	53                   	push   %ebx
4035ea:	b8 00 00 00 80       	mov    $0x80000000,%eax
4035ef:	50                   	push   %eax
4035f0:	50                   	push   %eax
4035f1:	50                   	push   %eax
4035f2:	50                   	push   %eax
4035f3:	68 00 00 cf 20       	push   $0x20cf0000
4035f8:	57                   	push   %edi
4035f9:	57                   	push   %edi
4035fa:	53                   	push   %ebx
4035fb:	ff 15 48 a0 40 00    	call   *0x40a048
403601:	8b f0                	mov    %eax,%esi
403603:	53                   	push   %ebx
403604:	56                   	push   %esi
403605:	ff 15 3c a0 40 00    	call   *0x40a03c
40360b:	56                   	push   %esi
40360c:	ff 15 00 a0 40 00    	call   *0x40a000
403612:	53                   	push   %ebx
403613:	56                   	push   %esi
403614:	ff 15 18 a0 40 00    	call   *0x40a018
40361a:	85 c0                	test   %eax,%eax
40361c:	74 0d                	je     0x40362b
40361e:	53                   	push   %ebx
40361f:	68 20 f1 00 00       	push   $0xf120
403624:	50                   	push   %eax
403625:	ff 15 14 a0 40 00    	call   *0x40a014
40362b:	5f                   	pop    %edi
40362c:	8b c6                	mov    %esi,%eax
40362e:	5e                   	pop    %esi
40362f:	5b                   	pop    %ebx
403630:	c9                   	leave
403631:	c3                   	ret
403632:	8b ff                	mov    %edi,%edi
403634:	55                   	push   %ebp
403635:	8b ec                	mov    %esp,%ebp
403637:	83 ec 1c             	sub    $0x1c,%esp
40363a:	53                   	push   %ebx
40363b:	56                   	push   %esi
40363c:	57                   	push   %edi
40363d:	a1 0c 80 40 00       	mov    0x40800c,%eax
403642:	bf 0c 80 40 00       	mov    $0x40800c,%edi
403647:	be 00 01 00 00       	mov    $0x100,%esi
40364c:	bb 88 24 40 00       	mov    $0x402488,%ebx
403651:	3b c7                	cmp    %edi,%eax
403653:	74 15                	je     0x40366a
403655:	85 70 1c             	test   %esi,0x1c(%eax)
403658:	74 10                	je     0x40366a
40365a:	ff 70 14             	push   0x14(%eax)
40365d:	8b d3                	mov    %ebx,%edx
40365f:	ff 70 10             	push   0x10(%eax)
403662:	6a 0a                	push   $0xa
403664:	59                   	pop    %ecx
403665:	e8 97 fd ff ff       	call   0x403401
40366a:	e8 f4 19 00 00       	call   0x405063
40366f:	84 c0                	test   %al,%al
403671:	0f 85 e8 00 00 00    	jne    0x40375f
403677:	6a 01                	push   $0x1
403679:	6a ff                	push   $0xffffffff
40367b:	ff 35 70 84 40 00    	push   0x408470
403681:	ff 15 9c 90 40 00    	call   *0x40909c
403687:	8b c8                	mov    %eax,%ecx
403689:	a1 0c 80 40 00       	mov    0x40800c,%eax
40368e:	3b c7                	cmp    %edi,%eax
403690:	74 32                	je     0x4036c4
403692:	85 70 1c             	test   %esi,0x1c(%eax)
403695:	74 14                	je     0x4036ab
403697:	51                   	push   %ecx
403698:	ff 70 14             	push   0x14(%eax)
40369b:	ff 70 10             	push   0x10(%eax)
40369e:	6a 10                	push   $0x10
4036a0:	59                   	pop    %ecx
4036a1:	e8 a1 fd ff ff       	call   0x403447
4036a6:	a1 0c 80 40 00       	mov    0x40800c,%eax
4036ab:	3b c7                	cmp    %edi,%eax
4036ad:	74 15                	je     0x4036c4
4036af:	85 70 1c             	test   %esi,0x1c(%eax)
4036b2:	74 10                	je     0x4036c4
4036b4:	ff 70 14             	push   0x14(%eax)
4036b7:	8b d3                	mov    %ebx,%edx
4036b9:	ff 70 10             	push   0x10(%eax)
4036bc:	6a 11                	push   $0x11
4036be:	59                   	pop    %ecx
4036bf:	e8 3d fd ff ff       	call   0x403401
4036c4:	5f                   	pop    %edi
4036c5:	5e                   	pop    %esi
4036c6:	5b                   	pop    %ebx
4036c7:	c9                   	leave
4036c8:	c3                   	ret
4036c9:	83 f8 01             	cmp    $0x1,%eax
4036cc:	0f 85 d6 00 00 00    	jne    0x4037a8
4036d2:	a1 0c 80 40 00       	mov    0x40800c,%eax
4036d7:	3b c7                	cmp    %edi,%eax
4036d9:	74 4f                	je     0x40372a
4036db:	85 70 1c             	test   %esi,0x1c(%eax)
4036de:	74 4a                	je     0x40372a
4036e0:	ff 70 14             	push   0x14(%eax)
4036e3:	8b d3                	mov    %ebx,%edx
4036e5:	ff 70 10             	push   0x10(%eax)
4036e8:	6a 0c                	push   $0xc
4036ea:	59                   	pop    %ecx
4036eb:	e8 11 fd ff ff       	call   0x403401
4036f0:	eb 38                	jmp    0x40372a
4036f2:	83 7d e8 12          	cmpl   $0x12,-0x18(%ebp)
4036f6:	74 49                	je     0x403741
4036f8:	a1 0c 80 40 00       	mov    0x40800c,%eax
4036fd:	3b c7                	cmp    %edi,%eax
4036ff:	74 15                	je     0x403716
403701:	85 70 1c             	test   %esi,0x1c(%eax)
403704:	74 10                	je     0x403716
403706:	ff 70 14             	push   0x14(%eax)
403709:	8b d3                	mov    %ebx,%edx
40370b:	ff 70 10             	push   0x10(%eax)
40370e:	6a 0e                	push   $0xe
403710:	59                   	pop    %ecx
403711:	e8 eb fc ff ff       	call   0x403401
403716:	8d 45 e4             	lea    -0x1c(%ebp),%eax
403719:	50                   	push   %eax
40371a:	ff 15 2c a0 40 00    	call   *0x40a02c
403720:	8d 45 e4             	lea    -0x1c(%ebp),%eax
403723:	50                   	push   %eax
403724:	ff 15 24 a0 40 00    	call   *0x40a024
40372a:	6a 01                	push   $0x1
40372c:	33 c0                	xor    %eax,%eax
40372e:	50                   	push   %eax
40372f:	50                   	push   %eax
403730:	50                   	push   %eax
403731:	8d 45 e4             	lea    -0x1c(%ebp),%eax
403734:	50                   	push   %eax
403735:	ff 15 28 a0 40 00    	call   *0x40a028
40373b:	85 c0                	test   %eax,%eax
40373d:	75 b3                	jne    0x4036f2
40373f:	eb 1e                	jmp    0x40375f
403741:	a1 0c 80 40 00       	mov    0x40800c,%eax
403746:	3b c7                	cmp    %edi,%eax
403748:	74 15                	je     0x40375f
40374a:	85 70 1c             	test   %esi,0x1c(%eax)
40374d:	74 10                	je     0x40375f
40374f:	ff 70 14             	push   0x14(%eax)
403752:	8b d3                	mov    %ebx,%edx
403754:	ff 70 10             	push   0x10(%eax)
403757:	6a 0d                	push   $0xd
403759:	59                   	pop    %ecx
40375a:	e8 a2 fc ff ff       	call   0x403401
40375f:	68 ff 1c 00 00       	push   $0x1cff
403764:	6a ff                	push   $0xffffffff
403766:	6a 00                	push   $0x0
403768:	68 70 84 40 00       	push   $0x408470
40376d:	6a 01                	push   $0x1
40376f:	ff 15 34 a0 40 00    	call   *0x40a034
403775:	85 c0                	test   %eax,%eax
403777:	0f 85 4c ff ff ff    	jne    0x4036c9
40377d:	a1 0c 80 40 00       	mov    0x40800c,%eax
403782:	3b c7                	cmp    %edi,%eax
403784:	0f 84 3a ff ff ff    	je     0x4036c4
40378a:	85 70 1c             	test   %esi,0x1c(%eax)
40378d:	0f 84 18 ff ff ff    	je     0x4036ab
403793:	ff 70 14             	push   0x14(%eax)
403796:	8b d3                	mov    %ebx,%edx
403798:	ff 70 10             	push   0x10(%eax)
40379b:	6a 0b                	push   $0xb
40379d:	59                   	pop    %ecx
40379e:	e8 5e fc ff ff       	call   0x403401
4037a3:	e9 fe fe ff ff       	jmp    0x4036a6
4037a8:	a1 0c 80 40 00       	mov    0x40800c,%eax
4037ad:	3b c7                	cmp    %edi,%eax
4037af:	0f 84 0f ff ff ff    	je     0x4036c4
4037b5:	85 70 1c             	test   %esi,0x1c(%eax)
4037b8:	0f 84 ed fe ff ff    	je     0x4036ab
4037be:	ff 15 50 90 40 00    	call   *0x409050
4037c4:	50                   	push   %eax
4037c5:	a1 0c 80 40 00       	mov    0x40800c,%eax
4037ca:	ff 70 14             	push   0x14(%eax)
4037cd:	ff 70 10             	push   0x10(%eax)
4037d0:	6a 0f                	push   $0xf
4037d2:	e9 c9 fe ff ff       	jmp    0x4036a0
4037d7:	a1 68 84 40 00       	mov    0x408468,%eax
4037dc:	85 c0                	test   %eax,%eax
4037de:	74 0e                	je     0x4037ee
4037e0:	50                   	push   %eax
4037e1:	ff 15 28 90 40 00    	call   *0x409028
4037e7:	83 25 68 84 40 00 00 	andl   $0x0,0x408468
4037ee:	a1 64 84 40 00       	mov    0x408464,%eax
4037f3:	85 c0                	test   %eax,%eax
4037f5:	74 0e                	je     0x403805
4037f7:	50                   	push   %eax
4037f8:	ff 15 28 90 40 00    	call   *0x409028
4037fe:	83 25 64 84 40 00 00 	andl   $0x0,0x408464
403805:	33 c0                	xor    %eax,%eax
403807:	c3                   	ret
403808:	8b ff                	mov    %edi,%edi
40380a:	55                   	push   %ebp
40380b:	8b ec                	mov    %esp,%ebp
40380d:	81 ec 24 01 00 00    	sub    $0x124,%esp
403813:	a1 cc 80 40 00       	mov    0x4080cc,%eax
403818:	33 c5                	xor    %ebp,%eax
40381a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40381d:	57                   	push   %edi
40381e:	33 ff                	xor    %edi,%edi
403820:	57                   	push   %edi
403821:	57                   	push   %edi
403822:	ff 15 20 90 40 00    	call   *0x409020
403828:	85 c0                	test   %eax,%eax
40382a:	0f 88 d5 00 00 00    	js     0x403905
403830:	56                   	push   %esi
403831:	57                   	push   %edi
403832:	6a 40                	push   $0x40