40955c:	8b ff                	mov    %edi,%edi
40955e:	55                   	push   %ebp
40955f:	8b ec                	mov    %esp,%ebp
409561:	83 ec 10             	sub    $0x10,%esp
409564:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
409568:	53                   	push   %ebx
409569:	56                   	push   %esi
40956a:	57                   	push   %edi
40956b:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40956e:	ff 15 f8 60 41 00    	call   *0x4160f8
409574:	89 45 fc             	mov    %eax,-0x4(%ebp)
409577:	33 ff                	xor    %edi,%edi
409579:	8b 45 08             	mov    0x8(%ebp),%eax
40957c:	89 7d f8             	mov    %edi,-0x8(%ebp)
40957f:	21 38                	and    %edi,(%eax)
409581:	8d 45 f0             	lea    -0x10(%ebp),%eax
409584:	50                   	push   %eax
409585:	e8 12 ff ff ff       	call   0x40949c
40958a:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40958d:	8b f0                	mov    %eax,%esi
40958f:	85 f6                	test   %esi,%esi
409591:	79 1b                	jns    0x4095ae
409593:	56                   	push   %esi
409594:	68 64 2e 40 00       	push   $0x402e64
409599:	68 b5 02 00 00       	push   $0x2b5
40959e:	68 00 2d 40 00       	push   $0x402d00
4095a3:	51                   	push   %ecx
4095a4:	e8 29 7a 00 00       	call   0x410fd2
4095a9:	e9 b0 01 00 00       	jmp    0x40975e
4095ae:	8d 45 f8             	lea    -0x8(%ebp),%eax
4095b1:	50                   	push   %eax
4095b2:	e8 03 f8 ff ff       	call   0x408dba
4095b7:	8b f0                	mov    %eax,%esi
4095b9:	85 f6                	test   %esi,%esi
4095bb:	79 1e                	jns    0x4095db
4095bd:	56                   	push   %esi
4095be:	68 64 2e 40 00       	push   $0x402e64
4095c3:	68 ba 02 00 00       	push   $0x2ba
4095c8:	68 00 2d 40 00       	push   $0x402d00
4095cd:	51                   	push   %ecx
4095ce:	e8 ff 79 00 00       	call   0x410fd2
4095d3:	8b 7d f8             	mov    -0x8(%ebp),%edi
4095d6:	e9 83 01 00 00       	jmp    0x40975e
4095db:	8b 43 2c             	mov    0x2c(%ebx),%eax
4095de:	8b 7d f8             	mov    -0x8(%ebp),%edi
4095e1:	83 c0 10             	add    $0x10,%eax
4095e4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4095e7:	8b cf                	mov    %edi,%ecx
4095e9:	50                   	push   %eax
4095ea:	e8 9d f8 ff ff       	call   0x408e8c
4095ef:	85 c0                	test   %eax,%eax
4095f1:	0f 89 96 00 00 00    	jns    0x40968d
4095f7:	50                   	push   %eax
4095f8:	68 64 2e 40 00       	push   $0x402e64
4095fd:	68 c2 02 00 00       	push   $0x2c2
409602:	68 00 2d 40 00       	push   $0x402d00
409607:	51                   	push   %ecx
409608:	e8 c5 79 00 00       	call   0x410fd2
40960d:	68 04 01 00 00       	push   $0x104
409612:	6a 08                	push   $0x8
409614:	ff 15 e0 60 41 00    	call   *0x4160e0
40961a:	50                   	push   %eax
40961b:	ff 15 dc 60 41 00    	call   *0x4160dc
409621:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
409624:	89 41 10             	mov    %eax,0x10(%ecx)
409627:	8b 43 2c             	mov    0x2c(%ebx),%eax
40962a:	8b 48 10             	mov    0x10(%eax),%ecx
40962d:	85 c9                	test   %ecx,%ecx
40962f:	75 40                	jne    0x409671
409631:	be 0e 00 07 80       	mov    $0x8007000e,%esi
409636:	56                   	push   %esi
409637:	68 64 2e 40 00       	push   $0x402e64
40963c:	68 c6 02 00 00       	push   $0x2c6
409641:	68 00 2d 40 00       	push   $0x402d00
409646:	51                   	push   %ecx
409647:	e8 86 79 00 00       	call   0x410fd2
40964c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40964f:	e8 1c 01 00 00       	call   0x409770
409654:	85 ff                	test   %edi,%edi
409656:	74 10                	je     0x409668
409658:	57                   	push   %edi
409659:	6a 00                	push   $0x0
40965b:	ff 15 e0 60 41 00    	call   *0x4160e0
409661:	50                   	push   %eax
409662:	ff 15 e4 60 41 00    	call   *0x4160e4
409668:	5f                   	pop    %edi
409669:	8b c6                	mov    %esi,%eax
40966b:	5e                   	pop    %esi
40966c:	5b                   	pop    %ebx
40966d:	c9                   	leave
40966e:	c2 04 00             	ret    $0x4
409671:	51                   	push   %ecx
409672:	e8 e5 01 00 00       	call   0x40985c
409677:	8b f0                	mov    %eax,%esi
409679:	85 f6                	test   %esi,%esi
40967b:	79 10                	jns    0x40968d
40967d:	56                   	push   %esi
40967e:	68 64 2e 40 00       	push   $0x402e64
409683:	68 cb 02 00 00       	push   $0x2cb
409688:	e9 11 ff ff ff       	jmp    0x40959e
40968d:	8b 43 2c             	mov    0x2c(%ebx),%eax
409690:	8b 75 f4             	mov    -0xc(%ebp),%esi
409693:	83 c0 0c             	add    $0xc,%eax
409696:	8b 55 fc             	mov    -0x4(%ebp),%edx
409699:	50                   	push   %eax
40969a:	8b 8e 38 04 00 00    	mov    0x438(%esi),%ecx
4096a0:	e8 e7 f7 ff ff       	call   0x408e8c
4096a5:	85 c0                	test   %eax,%eax
4096a7:	79 46                	jns    0x4096ef
4096a9:	50                   	push   %eax
4096aa:	68 64 2e 40 00       	push   $0x402e64
4096af:	68 d5 02 00 00       	push   $0x2d5
4096b4:	68 00 2d 40 00       	push   $0x402d00
4096b9:	51                   	push   %ecx
4096ba:	e8 13 79 00 00       	call   0x410fd2
4096bf:	8b 43 2c             	mov    0x2c(%ebx),%eax
4096c2:	ba e9 fd 00 00       	mov    $0xfde9,%edx
4096c7:	8b 8e 38 04 00 00    	mov    0x438(%esi),%ecx
4096cd:	83 c0 0c             	add    $0xc,%eax
4096d0:	50                   	push   %eax
4096d1:	e8 b6 f7 ff ff       	call   0x408e8c
4096d6:	8b f0                	mov    %eax,%esi
4096d8:	85 f6                	test   %esi,%esi
4096da:	79 10                	jns    0x4096ec
4096dc:	56                   	push   %esi
4096dd:	68 64 2e 40 00       	push   $0x402e64
4096e2:	68 dc 02 00 00       	push   $0x2dc
4096e7:	e9 b2 fe ff ff       	jmp    0x40959e
4096ec:	8b 75 f4             	mov    -0xc(%ebp),%esi
4096ef:	8b 55 fc             	mov    -0x4(%ebp),%edx
4096f2:	8d 43 04             	lea    0x4(%ebx),%eax
4096f5:	8b 8e 30 04 00 00    	mov    0x430(%esi),%ecx
4096fb:	50                   	push   %eax
4096fc:	e8 8b f7 ff ff       	call   0x408e8c
409701:	8b f0                	mov    %eax,%esi
409703:	85 f6                	test   %esi,%esi
409705:	79 18                	jns    0x40971f
409707:	56                   	push   %esi
409708:	68 64 2e 40 00       	push   $0x402e64
40970d:	68 e6 02 00 00       	push   $0x2e6
409712:	68 00 2d 40 00       	push   $0x402d00
409717:	51                   	push   %ecx
409718:	e8 b5 78 00 00       	call   0x410fd2
40971d:	85 f6                	test   %esi,%esi
40971f:	74 04                	je     0x409725
409721:	83 63 04 00          	andl   $0x0,0x4(%ebx)
409725:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409728:	8d 43 08             	lea    0x8(%ebx),%eax
40972b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40972e:	50                   	push   %eax
40972f:	8b 89 34 04 00 00    	mov    0x434(%ecx),%ecx
409735:	e8 52 f7 ff ff       	call   0x408e8c
40973a:	8b f0                	mov    %eax,%esi
40973c:	85 f6                	test   %esi,%esi
40973e:	79 18                	jns    0x409758
409740:	56                   	push   %esi
409741:	68 64 2e 40 00       	push   $0x402e64
409746:	68 f1 02 00 00       	push   $0x2f1
40974b:	68 00 2d 40 00       	push   $0x402d00
409750:	51                   	push   %ecx
409751:	e8 7c 78 00 00       	call   0x410fd2
409756:	85 f6                	test   %esi,%esi
409758:	74 04                	je     0x40975e
40975a:	83 63 08 00          	andl   $0x0,0x8(%ebx)
40975e:	85 f6                	test   %esi,%esi
409760:	0f 88 e6 fe ff ff    	js     0x40964c
409766:	8b 45 08             	mov    0x8(%ebp),%eax
409769:	89 18                	mov    %ebx,(%eax)
40976b:	e9 e4 fe ff ff       	jmp    0x409654
409770:	8b ff                	mov    %edi,%edi
409772:	56                   	push   %esi
409773:	8b f1                	mov    %ecx,%esi
409775:	8b 16                	mov    (%esi),%edx
409777:	85 d2                	test   %edx,%edx
409779:	0f 84 ac 00 00 00    	je     0x40982b
40977f:	8b 42 2c             	mov    0x2c(%edx),%eax
409782:	57                   	push   %edi
409783:	33 ff                	xor    %edi,%edi
409785:	8b 48 10             	mov    0x10(%eax),%ecx
409788:	85 c9                	test   %ecx,%ecx
40978a:	74 1a                	je     0x4097a6
40978c:	51                   	push   %ecx
40978d:	57                   	push   %edi
40978e:	ff 15 e0 60 41 00    	call   *0x4160e0
409794:	50                   	push   %eax
409795:	ff 15 e4 60 41 00    	call   *0x4160e4
40979b:	8b 16                	mov    (%esi),%edx
40979d:	8b 42 2c             	mov    0x2c(%edx),%eax
4097a0:	89 78 10             	mov    %edi,0x10(%eax)
4097a3:	8b 42 2c             	mov    0x2c(%edx),%eax
4097a6:	8b 48 0c             	mov    0xc(%eax),%ecx
4097a9:	85 c9                	test   %ecx,%ecx
4097ab:	74 1a                	je     0x4097c7
4097ad:	51                   	push   %ecx
4097ae:	57                   	push   %edi
4097af:	ff 15 e0 60 41 00    	call   *0x4160e0
4097b5:	50                   	push   %eax
4097b6:	ff 15 e4 60 41 00    	call   *0x4160e4
4097bc:	8b 16                	mov    (%esi),%edx
4097be:	8b 42 2c             	mov    0x2c(%edx),%eax
4097c1:	89 78 0c             	mov    %edi,0xc(%eax)
4097c4:	8b 42 2c             	mov    0x2c(%edx),%eax
4097c7:	85 c0                	test   %eax,%eax
4097c9:	74 14                	je     0x4097df
4097cb:	50                   	push   %eax
4097cc:	57                   	push   %edi
4097cd:	ff 15 e0 60 41 00    	call   *0x4160e0
4097d3:	50                   	push   %eax
4097d4:	ff 15 e4 60 41 00    	call   *0x4160e4
4097da:	8b 16                	mov    (%esi),%edx
4097dc:	89 7a 2c             	mov    %edi,0x2c(%edx)
4097df:	8b 42 04             	mov    0x4(%edx),%eax
4097e2:	85 c0                	test   %eax,%eax
4097e4:	74 14                	je     0x4097fa
4097e6:	50                   	push   %eax
4097e7:	57                   	push   %edi
4097e8:	ff 15 e0 60 41 00    	call   *0x4160e0
4097ee:	50                   	push   %eax
4097ef:	ff 15 e4 60 41 00    	call   *0x4160e4
4097f5:	8b 16                	mov    (%esi),%edx
4097f7:	89 7a 04             	mov    %edi,0x4(%edx)
4097fa:	8b 42 08             	mov    0x8(%edx),%eax
4097fd:	85 c0                	test   %eax,%eax
4097ff:	74 14                	je     0x409815
409801:	50                   	push   %eax
409802:	57                   	push   %edi
409803:	ff 15 e0 60 41 00    	call   *0x4160e0
409809:	50                   	push   %eax
40980a:	ff 15 e4 60 41 00    	call   *0x4160e4
409810:	8b 16                	mov    (%esi),%edx
409812:	89 7a 08             	mov    %edi,0x8(%edx)
409815:	85 d2                	test   %edx,%edx
409817:	74 11                	je     0x40982a
409819:	52                   	push   %edx
40981a:	57                   	push   %edi
40981b:	ff 15 e0 60 41 00    	call   *0x4160e0
409821:	50                   	push   %eax
409822:	ff 15 e4 60 41 00    	call   *0x4160e4
409828:	89 3e                	mov    %edi,(%esi)
40982a:	5f                   	pop    %edi
40982b:	33 c0                	xor    %eax,%eax
40982d:	5e                   	pop    %esi
40982e:	c3                   	ret
40982f:	cc                   	int3
409830:	8b ff                	mov    %edi,%edi
409832:	55                   	push   %ebp
409833:	8b ec                	mov    %esp,%ebp
409835:	56                   	push   %esi
409836:	8b 35 c4 55 41 00    	mov    0x4155c4,%esi
40983c:	33 c0                	xor    %eax,%eax
40983e:	50                   	push   %eax
40983f:	6a 49                	push   $0x49
409841:	ff 75 08             	push   0x8(%ebp)
409844:	8b ce                	mov    %esi,%ecx
409846:	50                   	push   %eax
409847:	50                   	push   %eax
409848:	ff 15 28 63 41 00    	call   *0x416328
40984e:	ff d6                	call   *%esi
409850:	a3 c0 55 41 00       	mov    %eax,0x4155c0
409855:	33 c0                	xor    %eax,%eax
409857:	5e                   	pop    %esi
409858:	5d                   	pop    %ebp
409859:	c2 04 00             	ret    $0x4
40985c:	8b ff                	mov    %edi,%edi
40985e:	56                   	push   %esi
40985f:	be cc 2e 40 00       	mov    $0x402ecc,%esi
409864:	ba 04 01 00 00       	mov    $0x104,%edx
409869:	2b f1                	sub    %ecx,%esi
40986b:	8d 82 fa fe ff 7f    	lea    0x7ffffefa(%edx),%eax
409871:	85 c0                	test   %eax,%eax
409873:	74 0f                	je     0x409884
409875:	8a 04 0e             	mov    (%esi,%ecx,1),%al
409878:	84 c0                	test   %al,%al
40987a:	74 08                	je     0x409884
40987c:	88 01                	mov    %al,(%ecx)
40987e:	41                   	inc    %ecx
40987f:	83 ea 01             	sub    $0x1,%edx
409882:	75 e7                	jne    0x40986b
409884:	5e                   	pop    %esi
409885:	85 d2                	test   %edx,%edx
409887:	75 01                	jne    0x40988a
409889:	49                   	dec    %ecx
40988a:	f7 da                	neg    %edx
40988c:	c6 01 00             	movb   $0x0,(%ecx)
40988f:	1b d2                	sbb    %edx,%edx
409891:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
409897:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
40989d:	c2 04 00             	ret    $0x4
4098a0:	8b ff                	mov    %edi,%edi
4098a2:	55                   	push   %ebp
4098a3:	8b ec                	mov    %esp,%ebp
4098a5:	56                   	push   %esi
4098a6:	8b f1                	mov    %ecx,%esi
4098a8:	57                   	push   %edi
4098a9:	8b 7d 08             	mov    0x8(%ebp),%edi
4098ac:	3b 3e                	cmp    (%esi),%edi
4098ae:	74 1e                	je     0x4098ce
4098b0:	ff 36                	push   (%esi)
4098b2:	ff 15 b8 61 41 00    	call   *0x4161b8
4098b8:	85 ff                	test   %edi,%edi
4098ba:	74 0f                	je     0x4098cb
4098bc:	57                   	push   %edi
4098bd:	ff 15 a4 61 41 00    	call   *0x4161a4
4098c3:	89 06                	mov    %eax,(%esi)
4098c5:	85 c0                	test   %eax,%eax
4098c7:	74 0d                	je     0x4098d6
4098c9:	eb 03                	jmp    0x4098ce
4098cb:	83 26 00             	andl   $0x0,(%esi)
4098ce:	5f                   	pop    %edi
4098cf:	8b c6                	mov    %esi,%eax
4098d1:	5e                   	pop    %esi
4098d2:	5d                   	pop    %ebp
4098d3:	c2 04 00             	ret    $0x4
4098d6:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
4098db:	e8 0f b3 ff ff       	call   0x404bef
4098e0:	cc                   	int3
4098e1:	8b ff                	mov    %edi,%edi
4098e3:	56                   	push   %esi
4098e4:	8b f1                	mov    %ecx,%esi
4098e6:	83 3e 00             	cmpl   $0x0,(%esi)
4098e9:	75 04                	jne    0x4098ef
4098eb:	33 c0                	xor    %eax,%eax
4098ed:	5e                   	pop    %esi
4098ee:	c3                   	ret
4098ef:	ff 36                	push   (%esi)
4098f1:	ff 15 ac 61 41 00    	call   *0x4161ac
4098f7:	50                   	push   %eax
4098f8:	ff 36                	push   (%esi)
4098fa:	ff 15 a8 61 41 00    	call   *0x4161a8
409900:	5e                   	pop    %esi
409901:	c3                   	ret
409902:	8b ff                	mov    %edi,%edi
409904:	55                   	push   %ebp
409905:	8b ec                	mov    %esp,%ebp
409907:	53                   	push   %ebx
409908:	56                   	push   %esi
409909:	57                   	push   %edi
40990a:	33 ff                	xor    %edi,%edi
40990c:	bb 57 00 07 80       	mov    $0x80070057,%ebx
409911:	8b f7                	mov    %edi,%esi
409913:	85 d2                	test   %edx,%edx
409915:	74 08                	je     0x40991f
409917:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40991d:	76 02                	jbe    0x409921
40991f:	8b f3                	mov    %ebx,%esi
409921:	85 f6                	test   %esi,%esi
409923:	78 42                	js     0x409967
409925:	8b f2                	mov    %edx,%esi
409927:	8b c1                	mov    %ecx,%eax
409929:	85 d2                	test   %edx,%edx