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
40992b:	74 0d                	je     0x40993a
40992d:	66 39 38             	cmp    %di,(%eax)
409930:	74 08                	je     0x40993a
409932:	83 c0 02             	add    $0x2,%eax
409935:	83 ee 01             	sub    $0x1,%esi
409938:	75 f3                	jne    0x40992d
40993a:	8b fe                	mov    %esi,%edi
40993c:	8b c2                	mov    %edx,%eax
40993e:	f7 de                	neg    %esi
409940:	1b f6                	sbb    %esi,%esi
409942:	2b c7                	sub    %edi,%eax
409944:	81 e6 a9 ff f8 7f    	and    $0x7ff8ffa9,%esi
40994a:	03 f3                	add    %ebx,%esi
40994c:	f7 df                	neg    %edi
40994e:	1b ff                	sbb    %edi,%edi
409950:	23 f8                	and    %eax,%edi
409952:	85 f6                	test   %esi,%esi
409954:	78 11                	js     0x409967
409956:	51                   	push   %ecx
409957:	ff 75 08             	push   0x8(%ebp)
40995a:	2b d7                	sub    %edi,%edx
40995c:	51                   	push   %ecx
40995d:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
409960:	e8 0b 00 00 00       	call   0x409970
409965:	8b f0                	mov    %eax,%esi
409967:	5f                   	pop    %edi
409968:	8b c6                	mov    %esi,%eax
40996a:	5e                   	pop    %esi
40996b:	5b                   	pop    %ebx
40996c:	5d                   	pop    %ebp
40996d:	c2 04 00             	ret    $0x4
409970:	8b ff                	mov    %edi,%edi
409972:	55                   	push   %ebp
409973:	8b ec                	mov    %esp,%ebp
409975:	85 d2                	test   %edx,%edx
409977:	74 2b                	je     0x4099a4
409979:	8b 45 0c             	mov    0xc(%ebp),%eax
40997c:	56                   	push   %esi
40997d:	57                   	push   %edi
40997e:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
409983:	2b c1                	sub    %ecx,%eax
409985:	85 f6                	test   %esi,%esi
409987:	74 15                	je     0x40999e
409989:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
40998d:	66 85 ff             	test   %di,%di
409990:	74 0c                	je     0x40999e
409992:	66 89 39             	mov    %di,(%ecx)
409995:	83 c1 02             	add    $0x2,%ecx
409998:	4e                   	dec    %esi
409999:	83 ea 01             	sub    $0x1,%edx
40999c:	75 e7                	jne    0x409985
40999e:	5f                   	pop    %edi
40999f:	5e                   	pop    %esi
4099a0:	85 d2                	test   %edx,%edx
4099a2:	75 03                	jne    0x4099a7
4099a4:	83 e9 02             	sub    $0x2,%ecx
4099a7:	f7 da                	neg    %edx
4099a9:	1b d2                	sbb    %edx,%edx
4099ab:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
4099b1:	33 c0                	xor    %eax,%eax
4099b3:	66 89 01             	mov    %ax,(%ecx)
4099b6:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
4099bc:	5d                   	pop    %ebp
4099bd:	c2 0c 00             	ret    $0xc
4099c0:	8b ff                	mov    %edi,%edi
4099c2:	55                   	push   %ebp
4099c3:	8b ec                	mov    %esp,%ebp
4099c5:	33 c0                	xor    %eax,%eax
4099c7:	85 d2                	test   %edx,%edx
4099c9:	74 08                	je     0x4099d3
4099cb:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4099d1:	76 05                	jbe    0x4099d8
4099d3:	b8 57 00 07 80       	mov    $0x80070057,%eax
4099d8:	85 c0                	test   %eax,%eax
4099da:	78 0c                	js     0x4099e8
4099dc:	51                   	push   %ecx
4099dd:	ff 75 08             	push   0x8(%ebp)
4099e0:	51                   	push   %ecx
4099e1:	e8 8a ff ff ff       	call   0x409970
4099e6:	eb 09                	jmp    0x4099f1
4099e8:	85 d2                	test   %edx,%edx
4099ea:	74 05                	je     0x4099f1
4099ec:	33 d2                	xor    %edx,%edx
4099ee:	66 89 11             	mov    %dx,(%ecx)
4099f1:	5d                   	pop    %ebp
4099f2:	c2 04 00             	ret    $0x4
4099f5:	8b ff                	mov    %edi,%edi
4099f7:	55                   	push   %ebp
4099f8:	8b ec                	mov    %esp,%ebp
4099fa:	83 ec 10             	sub    $0x10,%esp
4099fd:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
409a01:	8d 45 f0             	lea    -0x10(%ebp),%eax
409a04:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409a08:	50                   	push   %eax
409a09:	51                   	push   %ecx
409a0a:	6a 65                	push   $0x65
409a0c:	5a                   	pop    %edx
409a0d:	c7 45 f0 38 30 40 00 	movl   $0x403038,-0x10(%ebp)
409a14:	c7 45 f4 e8 2e 40 00 	movl   $0x402ee8,-0xc(%ebp)
409a1b:	e8 e7 cb ff ff       	call   0x406607
409a20:	c9                   	leave
409a21:	c3                   	ret
409a22:	cc                   	int3
409a23:	cc                   	int3
409a24:	cc                   	int3
409a25:	cc                   	int3
409a26:	cc                   	int3
409a27:	cc                   	int3
409a28:	cc                   	int3
409a29:	cc                   	int3
409a2a:	cc                   	int3
409a2b:	cc                   	int3
409a2c:	cc                   	int3
409a2d:	cc                   	int3
409a2e:	cc                   	int3
409a2f:	cc                   	int3
409a30:	8b ff                	mov    %edi,%edi
409a32:	55                   	push   %ebp
409a33:	8b ec                	mov    %esp,%ebp
409a35:	56                   	push   %esi
409a36:	8b f1                	mov    %ecx,%esi
409a38:	e8 a9 01 00 00       	call   0x409be6
409a3d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
409a41:	74 08                	je     0x409a4b
409a43:	56                   	push   %esi
409a44:	ff 15 d0 62 41 00    	call   *0x4162d0
409a4a:	59                   	pop    %ecx
409a4b:	8b c6                	mov    %esi,%eax
409a4d:	5e                   	pop    %esi
409a4e:	5d                   	pop    %ebp
409a4f:	c2 04 00             	ret    $0x4
409a52:	8b ff                	mov    %edi,%edi
409a54:	55                   	push   %ebp
409a55:	8b ec                	mov    %esp,%ebp
409a57:	83 ec 14             	sub    $0x14,%esp
409a5a:	53                   	push   %ebx
409a5b:	57                   	push   %edi
409a5c:	6a 04                	push   $0x4
409a5e:	5f                   	pop    %edi
409a5f:	57                   	push   %edi
409a60:	8d 45 fc             	lea    -0x4(%ebp),%eax
409a63:	33 db                	xor    %ebx,%ebx
409a65:	50                   	push   %eax
409a66:	43                   	inc    %ebx
409a67:	6a 08                	push   $0x8
409a69:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409a6c:	ff 15 fc 60 41 00    	call   *0x4160fc
409a72:	57                   	push   %edi
409a73:	8d 45 f8             	lea    -0x8(%ebp),%eax
409a76:	89 5d f8             	mov    %ebx,-0x8(%ebp)
409a79:	50                   	push   %eax
409a7a:	6a 02                	push   $0x2
409a7c:	ff 15 fc 60 41 00    	call   *0x4160fc
409a82:	57                   	push   %edi
409a83:	8d 45 f4             	lea    -0xc(%ebp),%eax
409a86:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
409a8d:	50                   	push   %eax
409a8e:	6a 09                	push   $0x9
409a90:	ff 15 fc 60 41 00    	call   *0x4160fc
409a96:	57                   	push   %edi
409a97:	8d 45 f0             	lea    -0x10(%ebp),%eax
409a9a:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
409aa1:	50                   	push   %eax
409aa2:	6a 0a                	push   $0xa
409aa4:	ff 15 fc 60 41 00    	call   *0x4160fc
409aaa:	57                   	push   %edi
409aab:	8d 45 ec             	lea    -0x14(%ebp),%eax
409aae:	89 5d ec             	mov    %ebx,-0x14(%ebp)
409ab1:	50                   	push   %eax
409ab2:	6a 06                	push   $0x6
409ab4:	ff 15 fc 60 41 00    	call   *0x4160fc
409aba:	53                   	push   %ebx
409abb:	ff 15 00 61 41 00    	call   *0x416100
409ac1:	5f                   	pop    %edi
409ac2:	5b                   	pop    %ebx