4095dc:	77 06                	ja     0x4095e4
4095de:	83 c0 20             	add    $0x20,%eax
4095e1:	0f b7 c0             	movzwl %ax,%eax
4095e4:	83 c1 02             	add    $0x2,%ecx
4095e7:	ff 4d 10             	decl   0x10(%ebp)
4095ea:	74 0a                	je     0x4095f6
4095ec:	66 85 d2             	test   %dx,%dx
4095ef:	74 05                	je     0x4095f6
4095f1:	66 3b d0             	cmp    %ax,%dx
4095f4:	74 c3                	je     0x4095b9
4095f6:	0f b7 c8             	movzwl %ax,%ecx
4095f9:	0f b7 c2             	movzwl %dx,%eax
4095fc:	2b c1                	sub    %ecx,%eax
4095fe:	eb 13                	jmp    0x409613
409600:	6a 00                	push   $0x0
409602:	ff 75 10             	push   0x10(%ebp)
409605:	ff 75 0c             	push   0xc(%ebp)
409608:	ff 75 08             	push   0x8(%ebp)
40960b:	e8 2c fe ff ff       	call   0x40943c
409610:	83 c4 10             	add    $0x10,%esp
409613:	5e                   	pop    %esi
409614:	5d                   	pop    %ebp
409615:	c3                   	ret
409616:	8b ff                	mov    %edi,%edi
409618:	55                   	push   %ebp
409619:	8b ec                	mov    %esp,%ebp
40961b:	8b 45 08             	mov    0x8(%ebp),%eax
40961e:	66 8b 08             	mov    (%eax),%cx
409621:	83 c0 02             	add    $0x2,%eax
409624:	66 85 c9             	test   %cx,%cx
409627:	75 f5                	jne    0x40961e
409629:	2b 45 08             	sub    0x8(%ebp),%eax
40962c:	d1 f8                	sar    $1,%eax
40962e:	48                   	dec    %eax
40962f:	5d                   	pop    %ebp
409630:	c3                   	ret
409631:	8b ff                	mov    %edi,%edi
409633:	55                   	push   %ebp
409634:	8b ec                	mov    %esp,%ebp
409636:	51                   	push   %ecx
409637:	51                   	push   %ecx
409638:	53                   	push   %ebx
409639:	56                   	push   %esi
40963a:	8b 35 68 32 41 00    	mov    0x413268,%esi
409640:	33 db                	xor    %ebx,%ebx
409642:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409645:	8b 06                	mov    (%esi),%eax
409647:	57                   	push   %edi
409648:	3b c3                	cmp    %ebx,%eax
40964a:	74 50                	je     0x40969c
40964c:	8b 3d 30 f0 40 00    	mov    0x40f030,%edi
409652:	53                   	push   %ebx
409653:	53                   	push   %ebx
409654:	6a ff                	push   $0xffffffff
409656:	50                   	push   %eax
409657:	53                   	push   %ebx
409658:	53                   	push   %ebx
409659:	ff d7                	call   *%edi
40965b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40965e:	3b c3                	cmp    %ebx,%eax
409660:	74 41                	je     0x4096a3
409662:	6a 02                	push   $0x2
409664:	50                   	push   %eax
409665:	e8 9a d2 ff ff       	call   0x406904
40966a:	59                   	pop    %ecx
40966b:	59                   	pop    %ecx
40966c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40966f:	3b c3                	cmp    %ebx,%eax
409671:	74 30                	je     0x4096a3
409673:	ff 75 f8             	push   -0x8(%ebp)
409676:	50                   	push   %eax
409677:	6a ff                	push   $0xffffffff
409679:	ff 36                	push   (%esi)
40967b:	53                   	push   %ebx
40967c:	53                   	push   %ebx
40967d:	ff d7                	call   *%edi
40967f:	85 c0                	test   %eax,%eax
409681:	74 2a                	je     0x4096ad
409683:	8d 45 fc             	lea    -0x4(%ebp),%eax
409686:	53                   	push   %ebx
409687:	50                   	push   %eax
409688:	e8 aa 46 00 00       	call   0x40dd37
40968d:	59                   	pop    %ecx
40968e:	59                   	pop    %ecx
40968f:	85 c0                	test   %eax,%eax
409691:	78 15                	js     0x4096a8
409693:	83 c6 04             	add    $0x4,%esi
409696:	8b 06                	mov    (%esi),%eax
409698:	3b c3                	cmp    %ebx,%eax
40969a:	75 b6                	jne    0x409652
40969c:	33 c0                	xor    %eax,%eax
40969e:	5f                   	pop    %edi
40969f:	5e                   	pop    %esi
4096a0:	5b                   	pop    %ebx
4096a1:	c9                   	leave
4096a2:	c3                   	ret
4096a3:	83 c8 ff             	or     $0xffffffff,%eax
4096a6:	eb f6                	jmp    0x40969e
4096a8:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
4096ab:	74 f6                	je     0x4096a3
4096ad:	ff 75 fc             	push   -0x4(%ebp)
4096b0:	e8 b6 88 ff ff       	call   0x401f6b
4096b5:	59                   	pop    %ecx
4096b6:	eb eb                	jmp    0x4096a3
4096b8:	8b ff                	mov    %edi,%edi
4096ba:	56                   	push   %esi
4096bb:	8b 35 ec 2e 41 00    	mov    0x412eec,%esi
4096c1:	57                   	push   %edi
4096c2:	33 ff                	xor    %edi,%edi
4096c4:	85 f6                	test   %esi,%esi
4096c6:	75 1a                	jne    0x4096e2
4096c8:	83 c8 ff             	or     $0xffffffff,%eax
4096cb:	e9 9d 00 00 00       	jmp    0x40976d
4096d0:	66 83 f8 3d          	cmp    $0x3d,%ax
4096d4:	74 01                	je     0x4096d7
4096d6:	47                   	inc    %edi
4096d7:	56                   	push   %esi
4096d8:	e8 39 ff ff ff       	call   0x409616
4096dd:	59                   	pop    %ecx
4096de:	8d 74 46 02          	lea    0x2(%esi,%eax,2),%esi
4096e2:	0f b7 06             	movzwl (%esi),%eax
4096e5:	66 85 c0             	test   %ax,%ax
4096e8:	75 e6                	jne    0x4096d0
4096ea:	53                   	push   %ebx
4096eb:	6a 04                	push   $0x4
4096ed:	47                   	inc    %edi
4096ee:	57                   	push   %edi
4096ef:	e8 10 d2 ff ff       	call   0x406904
4096f4:	8b d8                	mov    %eax,%ebx
4096f6:	59                   	pop    %ecx
4096f7:	59                   	pop    %ecx
4096f8:	89 1d 70 32 41 00    	mov    %ebx,0x413270
4096fe:	85 db                	test   %ebx,%ebx
409700:	75 05                	jne    0x409707
409702:	83 c8 ff             	or     $0xffffffff,%eax
409705:	eb 65                	jmp    0x40976c
409707:	8b 35 ec 2e 41 00    	mov    0x412eec,%esi
40970d:	eb 35                	jmp    0x409744
40970f:	56                   	push   %esi
409710:	e8 01 ff ff ff       	call   0x409616
409715:	66 83 3e 3d          	cmpw   $0x3d,(%esi)
409719:	59                   	pop    %ecx
40971a:	8d 78 01             	lea    0x1(%eax),%edi
40971d:	74 22                	je     0x409741
40971f:	6a 02                	push   $0x2
409721:	57                   	push   %edi
409722:	e8 dd d1 ff ff       	call   0x406904
409727:	59                   	pop    %ecx
409728:	59                   	pop    %ecx
409729:	89 03                	mov    %eax,(%ebx)
40972b:	85 c0                	test   %eax,%eax
40972d:	74 41                	je     0x409770
40972f:	56                   	push   %esi
409730:	57                   	push   %edi
409731:	50                   	push   %eax
409732:	e8 84 a0 ff ff       	call   0x4037bb
409737:	83 c4 0c             	add    $0xc,%esp
40973a:	85 c0                	test   %eax,%eax
40973c:	75 49                	jne    0x409787
40973e:	83 c3 04             	add    $0x4,%ebx
409741:	8d 34 7e             	lea    (%esi,%edi,2),%esi
409744:	66 83 3e 00          	cmpw   $0x0,(%esi)
409748:	75 c5                	jne    0x40970f
40974a:	ff 35 ec 2e 41 00    	push   0x412eec
409750:	e8 16 88 ff ff       	call   0x401f6b
409755:	83 25 ec 2e 41 00 00 	andl   $0x0,0x412eec
40975c:	83 23 00             	andl   $0x0,(%ebx)
40975f:	c7 05 20 47 41 00 01 	movl   $0x1,0x414720
409766:	00 00 00
409769:	33 c0                	xor    %eax,%eax
40976b:	59                   	pop    %ecx
40976c:	5b                   	pop    %ebx
40976d:	5f                   	pop    %edi
40976e:	5e                   	pop    %esi
40976f:	c3                   	ret
409770:	ff 35 70 32 41 00    	push   0x413270
409776:	e8 f0 87 ff ff       	call   0x401f6b
40977b:	83 25 70 32 41 00 00 	andl   $0x0,0x413270
409782:	83 c8 ff             	or     $0xffffffff,%eax
409785:	eb e4                	jmp    0x40976b
409787:	33 c0                	xor    %eax,%eax
409789:	50                   	push   %eax
40978a:	50                   	push   %eax
40978b:	50                   	push   %eax
40978c:	50                   	push   %eax
40978d:	50                   	push   %eax
40978e:	e8 a2 94 ff ff       	call   0x402c35
409793:	cc                   	int3
409794:	8b ff                	mov    %edi,%edi
409796:	56                   	push   %esi
409797:	ff 15 08 f1 40 00    	call   *0x40f108
40979d:	8b f0                	mov    %eax,%esi
40979f:	33 c9                	xor    %ecx,%ecx
4097a1:	3b f1                	cmp    %ecx,%esi
4097a3:	75 04                	jne    0x4097a9
4097a5:	33 c0                	xor    %eax,%eax
4097a7:	5e                   	pop    %esi
4097a8:	c3                   	ret
4097a9:	66 39 0e             	cmp    %cx,(%esi)
4097ac:	74 10                	je     0x4097be
4097ae:	83 c0 02             	add    $0x2,%eax
4097b1:	66 39 08             	cmp    %cx,(%eax)
4097b4:	75 f8                	jne    0x4097ae
4097b6:	83 c0 02             	add    $0x2,%eax
4097b9:	66 39 08             	cmp    %cx,(%eax)
4097bc:	75 f0                	jne    0x4097ae
4097be:	53                   	push   %ebx
4097bf:	2b c6                	sub    %esi,%eax
4097c1:	8d 58 02             	lea    0x2(%eax),%ebx
4097c4:	57                   	push   %edi
4097c5:	53                   	push   %ebx
4097c6:	e8 f4 d0 ff ff       	call   0x4068bf
4097cb:	8b f8                	mov    %eax,%edi
4097cd:	59                   	pop    %ecx
4097ce:	85 ff                	test   %edi,%edi
4097d0:	75 0d                	jne    0x4097df
4097d2:	56                   	push   %esi
4097d3:	ff 15 04 f1 40 00    	call   *0x40f104
4097d9:	8b c7                	mov    %edi,%eax
4097db:	5f                   	pop    %edi
4097dc:	5b                   	pop    %ebx
4097dd:	5e                   	pop    %esi
4097de:	c3                   	ret
4097df:	53                   	push   %ebx
4097e0:	56                   	push   %esi
4097e1:	57                   	push   %edi
4097e2:	e8 99 1f 00 00       	call   0x40b780
4097e7:	83 c4 0c             	add    $0xc,%esp
4097ea:	eb e6                	jmp    0x4097d2
4097ec:	8b ff                	mov    %edi,%edi
4097ee:	55                   	push   %ebp
4097ef:	8b ec                	mov    %esp,%ebp
4097f1:	56                   	push   %esi
4097f2:	8b 75 08             	mov    0x8(%ebp),%esi
4097f5:	8b 46 0c             	mov    0xc(%esi),%eax
4097f8:	a8 83                	test   $0x83,%al
4097fa:	74 1e                	je     0x40981a
4097fc:	a8 08                	test   $0x8,%al
4097fe:	74 1a                	je     0x40981a
409800:	ff 76 08             	push   0x8(%esi)
409803:	e8 63 87 ff ff       	call   0x401f6b
409808:	81 66 0c f7 fb ff ff 	andl   $0xfffffbf7,0xc(%esi)
40980f:	33 c0                	xor    %eax,%eax
409811:	59                   	pop    %ecx
409812:	89 06                	mov    %eax,(%esi)
409814:	89 46 08             	mov    %eax,0x8(%esi)
409817:	89 46 04             	mov    %eax,0x4(%esi)
40981a:	5e                   	pop    %esi
40981b:	5d                   	pop    %ebp
40981c:	c3                   	ret
40981d:	8b ff                	mov    %edi,%edi
40981f:	55                   	push   %ebp
409820:	8b ec                	mov    %esp,%ebp
409822:	8b 45 08             	mov    0x8(%ebp),%eax
409825:	8b 00                	mov    (%eax),%eax
409827:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40982d:	75 2a                	jne    0x409859
40982f:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
409833:	75 24                	jne    0x409859
409835:	8b 40 14             	mov    0x14(%eax),%eax
409838:	3d 20 05 93 19       	cmp    $0x19930520,%eax
40983d:	74 15                	je     0x409854
40983f:	3d 21 05 93 19       	cmp    $0x19930521,%eax
409844:	74 0e                	je     0x409854
409846:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40984b:	74 07                	je     0x409854
40984d:	3d 00 40 99 01       	cmp    $0x1994000,%eax
409852:	75 05                	jne    0x409859
409854:	e8 d7 22 00 00       	call   0x40bb30
409859:	33 c0                	xor    %eax,%eax
40985b:	5d                   	pop    %ebp
40985c:	c2 04 00             	ret    $0x4
40985f:	68 1d 98 40 00       	push   $0x40981d
409864:	ff 15 84 f0 40 00    	call   *0x40f084
40986a:	33 c0                	xor    %eax,%eax
40986c:	c3                   	ret
40986d:	8b ff                	mov    %edi,%edi
40986f:	55                   	push   %ebp
409870:	8b ec                	mov    %esp,%ebp
409872:	56                   	push   %esi
409873:	e8 f5 c4 ff ff       	call   0x405d6d
409878:	8b f0                	mov    %eax,%esi
40987a:	85 f6                	test   %esi,%esi
40987c:	0f 84 32 01 00 00    	je     0x4099b4
409882:	8b 4e 5c             	mov    0x5c(%esi),%ecx
409885:	8b 55 08             	mov    0x8(%ebp),%edx
409888:	8b c1                	mov    %ecx,%eax
40988a:	57                   	push   %edi
40988b:	39 10                	cmp    %edx,(%eax)
40988d:	74 0d                	je     0x40989c
40988f:	83 c0 0c             	add    $0xc,%eax
409892:	8d b9 90 00 00 00    	lea    0x90(%ecx),%edi
409898:	3b c7                	cmp    %edi,%eax
40989a:	72 ef                	jb     0x40988b
40989c:	81 c1 90 00 00 00    	add    $0x90,%ecx
4098a2:	3b c1                	cmp    %ecx,%eax
4098a4:	73 04                	jae    0x4098aa
4098a6:	39 10                	cmp    %edx,(%eax)
4098a8:	74 02                	je     0x4098ac
4098aa:	33 c0                	xor    %eax,%eax
4098ac:	85 c0                	test   %eax,%eax
4098ae:	74 07                	je     0x4098b7
4098b0:	8b 50 08             	mov    0x8(%eax),%edx
4098b3:	85 d2                	test   %edx,%edx
4098b5:	75 07                	jne    0x4098be
4098b7:	33 c0                	xor    %eax,%eax
4098b9:	e9 f5 00 00 00       	jmp    0x4099b3
4098be:	83 fa 05             	cmp    $0x5,%edx
4098c1:	75 0c                	jne    0x4098cf
4098c3:	83 60 08 00          	andl   $0x0,0x8(%eax)
4098c7:	33 c0                	xor    %eax,%eax
4098c9:	40                   	inc    %eax
4098ca:	e9 e4 00 00 00       	jmp    0x4099b3
4098cf:	83 fa 01             	cmp    $0x1,%edx
4098d2:	0f 84 d8 00 00 00    	je     0x4099b0
4098d8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4098db:	53                   	push   %ebx
4098dc:	8b 5e 60             	mov    0x60(%esi),%ebx
4098df:	89 4e 60             	mov    %ecx,0x60(%esi)
4098e2:	8b 48 04             	mov    0x4(%eax),%ecx
4098e5:	83 f9 08             	cmp    $0x8,%ecx
4098e8:	0f 85 b6 00 00 00    	jne    0x4099a4
4098ee:	6a 24                	push   $0x24
4098f0:	59                   	pop    %ecx
4098f1:	8b 7e 5c             	mov    0x5c(%esi),%edi
4098f4:	83 64 39 08 00       	andl   $0x0,0x8(%ecx,%edi,1)
4098f9:	83 c1 0c             	add    $0xc,%ecx
4098fc:	81 f9 90 00 00 00    	cmp    $0x90,%ecx
409902:	7c ed                	jl     0x4098f1
409904:	8b 00                	mov    (%eax),%eax
409906:	8b 7e 64             	mov    0x64(%esi),%edi
409909:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
40990e:	75 09                	jne    0x409919
409910:	c7 46 64 83 00 00 00 	movl   $0x83,0x64(%esi)
409917:	eb 7e                	jmp    0x409997
409919:	3d 90 00 00 c0       	cmp    $0xc0000090,%eax
40991e:	75 09                	jne    0x409929
409920:	c7 46 64 81 00 00 00 	movl   $0x81,0x64(%esi)
409927:	eb 6e                	jmp    0x409997
409929:	3d 91 00 00 c0       	cmp    $0xc0000091,%eax
40992e:	75 09                	jne    0x409939
409930:	c7 46 64 84 00 00 00 	movl   $0x84,0x64(%esi)
409937:	eb 5e                	jmp    0x409997
409939:	3d 93 00 00 c0       	cmp    $0xc0000093,%eax
40993e:	75 09                	jne    0x409949
409940:	c7 46 64 85 00 00 00 	movl   $0x85,0x64(%esi)
409947:	eb 4e                	jmp    0x409997
409949:	3d 8d 00 00 c0       	cmp    $0xc000008d,%eax
40994e:	75 09                	jne    0x409959
409950:	c7 46 64 82 00 00 00 	movl   $0x82,0x64(%esi)