4097a5:	83 e4 f8             	and    $0xfffffff8,%esp
4097a8:	83 ec 44             	sub    $0x44,%esp
4097ab:	a1 18 51 41 00       	mov    0x415118,%eax
4097b0:	33 c4                	xor    %esp,%eax
4097b2:	89 44 24 40          	mov    %eax,0x40(%esp)
4097b6:	53                   	push   %ebx
4097b7:	56                   	push   %esi
4097b8:	8b f1                	mov    %ecx,%esi
4097ba:	57                   	push   %edi
4097bb:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
4097bf:	0f 84 ed 00 00 00    	je     0x4098b2
4097c5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4097c8:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
4097cd:	0f b7 c3             	movzwl %bx,%eax
4097d0:	6a 02                	push   $0x2
4097d2:	c1 eb 10             	shr    $0x10,%ebx
4097d5:	53                   	push   %ebx
4097d6:	50                   	push   %eax
4097d7:	ff 76 04             	push   0x4(%esi)
4097da:	89 44 24 28          	mov    %eax,0x28(%esp)
4097de:	89 44 24 20          	mov    %eax,0x20(%esp)
4097e2:	89 5c 24 24          	mov    %ebx,0x24(%esp)
4097e6:	ff 15 54 b2 41 00    	call   *0x41b254
4097ec:	8b f8                	mov    %eax,%edi
4097ee:	8d 44 24 1c          	lea    0x1c(%esp),%eax
4097f2:	50                   	push   %eax
4097f3:	68 0b 04 00 00       	push   $0x40b
4097f8:	ff 76 04             	push   0x4(%esi)
4097fb:	ff 15 d0 b1 41 00    	call   *0x41b1d0
409801:	50                   	push   %eax
409802:	ff 15 f8 b1 41 00    	call   *0x41b1f8
409808:	8d 44 24 10          	lea    0x10(%esp),%eax
40980c:	50                   	push   %eax
40980d:	ff 76 04             	push   0x4(%esi)
409810:	ff 15 ec b1 41 00    	call   *0x41b1ec
409816:	ff 74 24 14          	push   0x14(%esp)
40981a:	8d 44 24 20          	lea    0x20(%esp),%eax
40981e:	ff 74 24 14          	push   0x14(%esp)
409822:	50                   	push   %eax
409823:	ff 15 10 b2 41 00    	call   *0x41b210
409829:	85 c0                	test   %eax,%eax
40982b:	74 2e                	je     0x40985b
40982d:	39 7e 04             	cmp    %edi,0x4(%esi)
409830:	74 45                	je     0x409877
409832:	8d 44 24 0c          	lea    0xc(%esp),%eax
409836:	50                   	push   %eax
409837:	6a 00                	push   $0x0
409839:	68 01 80 00 00       	push   $0x8001
40983e:	57                   	push   %edi
40983f:	ff 15 d8 b1 41 00    	call   *0x41b1d8
409845:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
40984a:	74 0f                	je     0x40985b
40984c:	6a 01                	push   $0x1
40984e:	ff 15 5c b0 41 00    	call   *0x41b05c
409854:	68 89 7f 00 00       	push   $0x7f89
409859:	eb 0d                	jmp    0x409868
40985b:	6a 00                	push   $0x0
40985d:	ff 15 5c b0 41 00    	call   *0x41b05c
409863:	68 88 7f 00 00       	push   $0x7f88
409868:	6a 00                	push   $0x0
40986a:	ff 15 18 b2 41 00    	call   *0x41b218
409870:	50                   	push   %eax
409871:	ff 15 14 b2 41 00    	call   *0x41b214
409877:	6a 08                	push   $0x8
409879:	59                   	pop    %ecx
40987a:	33 c0                	xor    %eax,%eax
40987c:	8d 7c 24 2c          	lea    0x2c(%esp),%edi
409880:	f3 ab                	rep stos %eax,%es:(%edi)
409882:	8d 44 24 2c          	lea    0x2c(%esp),%eax
409886:	50                   	push   %eax
409887:	6a 00                	push   $0x0
409889:	ff 76 1c             	push   0x1c(%esi)
40988c:	ff 15 60 b0 41 00    	call   *0x41b060
409892:	6a 04                	push   $0x4
409894:	ff 15 fc b1 41 00    	call   *0x41b1fc
40989a:	2b 5c 24 48          	sub    0x48(%esp),%ebx
40989e:	03 44 24 40          	add    0x40(%esp),%eax
4098a2:	83 c3 06             	add    $0x6,%ebx
4098a5:	03 c3                	add    %ebx,%eax
4098a7:	50                   	push   %eax
4098a8:	ff 74 24 1c          	push   0x1c(%esp)
4098ac:	ff 15 3c b0 41 00    	call   *0x41b03c
4098b2:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
4098b6:	33 c0                	xor    %eax,%eax
4098b8:	5f                   	pop    %edi
4098b9:	5e                   	pop    %esi
4098ba:	5b                   	pop    %ebx
4098bb:	33 cc                	xor    %esp,%ecx
4098bd:	e8 1e a0 00 00       	call   0x4138e0
4098c2:	8b e5                	mov    %ebp,%esp
4098c4:	5d                   	pop    %ebp
4098c5:	c2 08 00             	ret    $0x8
4098c8:	cc                   	int3
4098c9:	cc                   	int3
4098ca:	cc                   	int3
4098cb:	cc                   	int3
4098cc:	cc                   	int3
4098cd:	cc                   	int3
4098ce:	cc                   	int3
4098cf:	cc                   	int3
4098d0:	8b ff                	mov    %edi,%edi
4098d2:	55                   	push   %ebp
4098d3:	8b ec                	mov    %esp,%ebp
4098d5:	83 ec 1c             	sub    $0x1c,%esp
4098d8:	a1 18 51 41 00       	mov    0x415118,%eax
4098dd:	33 c5                	xor    %ebp,%eax
4098df:	89 45 fc             	mov    %eax,-0x4(%ebp)
4098e2:	53                   	push   %ebx
4098e3:	56                   	push   %esi
4098e4:	8b f1                	mov    %ecx,%esi
4098e6:	6a 01                	push   $0x1
4098e8:	68 ed 03 00 00       	push   $0x3ed
4098ed:	ff 76 04             	push   0x4(%esi)
4098f0:	ff 15 d0 b1 41 00    	call   *0x41b1d0
4098f6:	50                   	push   %eax
4098f7:	ff 15 dc b1 41 00    	call   *0x41b1dc
4098fd:	33 db                	xor    %ebx,%ebx
4098ff:	39 5e 1c             	cmp    %ebx,0x1c(%esi)
409902:	0f 84 b2 00 00 00    	je     0x4099ba
409908:	57                   	push   %edi
409909:	ff 15 58 b0 41 00    	call   *0x41b058
40990f:	ff 76 04             	push   0x4(%esi)
409912:	ff 15 54 b0 41 00    	call   *0x41b054
409918:	ff 76 1c             	push   0x1c(%esi)
40991b:	ff 15 64 b0 41 00    	call   *0x41b064
409921:	68 00 7f 00 00       	push   $0x7f00
409926:	53                   	push   %ebx
409927:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40992a:	ff 15 18 b2 41 00    	call   *0x41b218
409930:	50                   	push   %eax
409931:	ff 15 14 b2 41 00    	call   *0x41b214
409937:	ff 15 1c b2 41 00    	call   *0x41b21c
40993d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409940:	0f b7 c1             	movzwl %cx,%eax
409943:	53                   	push   %ebx
409944:	c1 e9 10             	shr    $0x10,%ecx
409947:	51                   	push   %ecx
409948:	50                   	push   %eax
409949:	ff 76 04             	push   0x4(%esi)
40994c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40994f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
409952:	ff 15 54 b2 41 00    	call   *0x41b254
409958:	8b f8                	mov    %eax,%edi
40995a:	57                   	push   %edi
40995b:	ff 15 00 b2 41 00    	call   *0x41b200
409961:	85 c0                	test   %eax,%eax
409963:	74 47                	je     0x4099ac
409965:	8d 45 ec             	lea    -0x14(%ebp),%eax
409968:	50                   	push   %eax
409969:	68 0b 04 00 00       	push   $0x40b
40996e:	ff 76 04             	push   0x4(%esi)
409971:	ff 15 d0 b1 41 00    	call   *0x41b1d0
409977:	50                   	push   %eax
409978:	ff 15 f8 b1 41 00    	call   *0x41b1f8
40997e:	8d 45 e4             	lea    -0x1c(%ebp),%eax
409981:	50                   	push   %eax
409982:	ff 76 04             	push   0x4(%esi)
409985:	ff 15 ec b1 41 00    	call   *0x41b1ec
40998b:	ff 75 e8             	push   -0x18(%ebp)
40998e:	8d 45 ec             	lea    -0x14(%ebp),%eax
409991:	ff 75 e4             	push   -0x1c(%ebp)
409994:	50                   	push   %eax
409995:	ff 15 10 b2 41 00    	call   *0x41b210
40999b:	85 c0                	test   %eax,%eax
40999d:	74 0d                	je     0x4099ac
40999f:	39 7e 04             	cmp    %edi,0x4(%esi)
4099a2:	74 08                	je     0x4099ac
4099a4:	57                   	push   %edi
4099a5:	8b ce                	mov    %esi,%ecx
4099a7:	e8 20 00 00 00       	call   0x4099cc
4099ac:	8b 4e 14             	mov    0x14(%esi),%ecx
4099af:	5f                   	pop    %edi
4099b0:	85 c9                	test   %ecx,%ecx
4099b2:	74 06                	je     0x4099ba
4099b4:	53                   	push   %ebx
4099b5:	e8 0e 5b 00 00       	call   0x40f4c8
4099ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4099bd:	33 c0                	xor    %eax,%eax
4099bf:	5e                   	pop    %esi
4099c0:	33 cd                	xor    %ebp,%ecx
4099c2:	5b                   	pop    %ebx
4099c3:	e8 18 9f 00 00       	call   0x4138e0
4099c8:	c9                   	leave
4099c9:	c2 08 00             	ret    $0x8
4099cc:	8b ff                	mov    %edi,%edi
4099ce:	55                   	push   %ebp
4099cf:	8b ec                	mov    %esp,%ebp
4099d1:	83 ec 28             	sub    $0x28,%esp
4099d4:	a1 18 51 41 00       	mov    0x415118,%eax
4099d9:	33 c5                	xor    %ebp,%eax
4099db:	89 45 fc             	mov    %eax,-0x4(%ebp)
4099de:	8b 45 08             	mov    0x8(%ebp),%eax
4099e1:	8d 55 dc             	lea    -0x24(%ebp),%edx
4099e4:	53                   	push   %ebx
4099e5:	8b d9                	mov    %ecx,%ebx
4099e7:	89 45 d8             	mov    %eax,-0x28(%ebp)
4099ea:	57                   	push   %edi
4099eb:	8b c8                	mov    %eax,%ecx
4099ed:	e8 ed 4f 00 00       	call   0x40e9df
4099f2:	33 ff                	xor    %edi,%edi
4099f4:	b8 00 30 00 00       	mov    $0x3000,%eax
4099f9:	66 39 44 7d dc       	cmp    %ax,-0x24(%ebp,%edi,2)
4099fe:	74 06                	je     0x409a06
409a00:	47                   	inc    %edi
409a01:	83 ff 03             	cmp    $0x3,%edi
409a04:	7c ee                	jl     0x4099f4
409a06:	83 ff 02             	cmp    $0x2,%edi
409a09:	0f 87 92 00 00 00    	ja     0x409aa1
409a0f:	8b 4b 18             	mov    0x18(%ebx),%ecx
409a12:	56                   	push   %esi
409a13:	e8 96 f4 ff ff       	call   0x408eae
409a18:	8b f0                	mov    %eax,%esi
409a1a:	6a 03                	push   $0x3
409a1c:	5a                   	pop    %edx
409a1d:	66 8b 0c b5 30 51 41 	mov    0x415130(,%esi,4),%cx
409a24:	00
409a25:	66 89 4c 7d dc       	mov    %cx,-0x24(%ebp,%edi,2)
409a2a:	8d 4d dc             	lea    -0x24(%ebp),%ecx
409a2d:	e8 91 f6 ff ff       	call   0x4090c3
409a32:	8d 45 dc             	lea    -0x24(%ebp),%eax
409a35:	33 ff                	xor    %edi,%edi
409a37:	50                   	push   %eax
409a38:	57                   	push   %edi
409a39:	68 00 80 00 00       	push   $0x8000
409a3e:	ff 75 d8             	push   -0x28(%ebp)
409a41:	ff 15 d8 b1 41 00    	call   *0x41b1d8
409a47:	57                   	push   %edi
409a48:	33 c0                	xor    %eax,%eax
409a4a:	66 89 04 b5 30 51 41 	mov    %ax,0x415130(,%esi,4)
409a51:	00
409a52:	be ed 03 00 00       	mov    $0x3ed,%esi
409a57:	ff 73 18             	push   0x18(%ebx)
409a5a:	68 08 10 00 00       	push   $0x1008
409a5f:	56                   	push   %esi
409a60:	ff 73 04             	push   0x4(%ebx)
409a63:	ff 15 d0 b1 41 00    	call   *0x41b1d0
409a69:	50                   	push   %eax
409a6a:	ff 15 d8 b1 41 00    	call   *0x41b1d8
409a70:	57                   	push   %edi
409a71:	57                   	push   %edi
409a72:	68 04 10 00 00       	push   $0x1004
409a77:	56                   	push   %esi
409a78:	ff 73 04             	push   0x4(%ebx)
409a7b:	ff 15 d0 b1 41 00    	call   *0x41b1d0
409a81:	50                   	push   %eax
409a82:	ff 15 d8 b1 41 00    	call   *0x41b1d8
409a88:	85 c0                	test   %eax,%eax
409a8a:	75 14                	jne    0x409aa0
409a8c:	57                   	push   %edi
409a8d:	56                   	push   %esi
409a8e:	8b cb                	mov    %ebx,%ecx
409a90:	e8 d7 31 00 00       	call   0x40cc6c
409a95:	6a 01                	push   $0x1
409a97:	6a 01                	push   $0x1
409a99:	8b cb                	mov    %ebx,%ecx
409a9b:	e8 cc 31 00 00       	call   0x40cc6c
409aa0:	5e                   	pop    %esi
409aa1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409aa4:	5f                   	pop    %edi
409aa5:	33 cd                	xor    %ebp,%ecx
409aa7:	5b                   	pop    %ebx
409aa8:	e8 33 9e 00 00       	call   0x4138e0
409aad:	c9                   	leave
409aae:	c2 04 00             	ret    $0x4
409ab1:	8b ff                	mov    %edi,%edi
409ab3:	55                   	push   %ebp
409ab4:	8b ec                	mov    %esp,%ebp
409ab6:	83 e4 f8             	and    $0xfffffff8,%esp
409ab9:	81 ec 74 06 00 00    	sub    $0x674,%esp
409abf:	a1 18 51 41 00       	mov    0x415118,%eax
409ac4:	33 c4                	xor    %esp,%eax
409ac6:	89 84 24 70 06 00 00 	mov    %eax,0x670(%esp)
409acd:	83 64 24 08 00       	andl   $0x0,0x8(%esp)
409ad2:	83 64 24 04 00       	andl   $0x0,0x4(%esp)
409ad7:	53                   	push   %ebx
409ad8:	56                   	push   %esi
409ad9:	57                   	push   %edi
409ada:	68 08 02 00 00       	push   $0x208
409adf:	8b d9                	mov    %ecx,%ebx
409ae1:	e8 a6 9a 00 00       	call   0x41358c
409ae6:	8b f8                	mov    %eax,%edi
409ae8:	59                   	pop    %ecx
409ae9:	85 ff                	test   %edi,%edi
409aeb:	0f 84 00 01 00 00    	je     0x409bf1
409af1:	6a 58                	push   $0x58
409af3:	5e                   	pop    %esi
409af4:	33 c0                	xor    %eax,%eax
409af6:	56                   	push   %esi
409af7:	50                   	push   %eax
409af8:	66 89 07             	mov    %ax,(%edi)
409afb:	8d 44 24 20          	lea    0x20(%esp),%eax
409aff:	50                   	push   %eax
409b00:	e8 5c a6 00 00       	call   0x414161
409b05:	8b 43 04             	mov    0x4(%ebx),%eax
409b08:	8d 54 24 24          	lea    0x24(%esp),%edx
409b0c:	8b 0d 70 b0 41 00    	mov    0x41b070,%ecx
409b12:	83 c4 0c             	add    $0xc,%esp
409b15:	89 44 24 1c          	mov    %eax,0x1c(%esp)
409b19:	8d 44 24 14          	lea    0x14(%esp),%eax
409b1d:	89 74 24 18          	mov    %esi,0x18(%esp)
409b21:	c7 44 24 24 58 3a 40 	movl   $0x403a58,0x24(%esp)
409b28:	00
409b29:	50                   	push   %eax
409b2a:	c7 44 24 58 88 3a 40 	movl   $0x403a88,0x58(%esp)
409b31:	00
409b32:	c7 44 24 50 06 08 30 	movl   $0x300806,0x50(%esp)
409b39:	00
409b3a:	89 7c 24 38          	mov    %edi,0x38(%esp)
409b3e:	c7 44 24 3c 04 01 00 	movl   $0x104,0x3c(%esp)
409b45:	00
409b46:	e8 7e 5d 00 00       	call   0x40f8c9
409b4b:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
409b50:	0f 84 93 00 00 00    	je     0x409be9
409b56:	f7 44 24 4c 00 04 00 	testl  $0x400,0x4c(%esp)
409b5d:	00
409b5e:	0f 85 85 00 00 00    	jne    0x409be9
409b64:	6a 00                	push   $0x0
409b66:	68 80 00 00 00       	push   $0x80
409b6b:	6a 02                	push   $0x2
409b6d:	51                   	push   %ecx
409b6e:	e8 01 e0 ff ff       	call   0x407b74
409b73:	59                   	pop    %ecx
409b74:	50                   	push   %eax
409b75:	6a 00                	push   $0x0
409b77:	68 00 00 00 40       	push   $0x40000000
409b7c:	ff 74 24 4c          	push   0x4c(%esp)
409b80:	ff 15 80 b1 41 00    	call   *0x41b180
409b86:	8b f0                	mov    %eax,%esi
409b88:	83 fe ff             	cmp    $0xffffffff,%esi
409b8b:	74 5c                	je     0x409be9
409b8d:	8b 4b 14             	mov    0x14(%ebx),%ecx
409b90:	85 c9                	test   %ecx,%ecx
409b92:	74 4e                	je     0x409be2
409b94:	8d 44 24 70          	lea    0x70(%esp),%eax
409b98:	50                   	push   %eax
409b99:	e8 3b 5a 00 00       	call   0x40f5d9
409b9e:	33 db                	xor    %ebx,%ebx
409ba0:	8d 44 24 10          	lea    0x10(%esp),%eax
409ba4:	53                   	push   %ebx
409ba5:	50                   	push   %eax
409ba6:	6a 10                	push   $0x10
409ba8:	68 e4 3a 40 00       	push   $0x403ae4
409bad:	56                   	push   %esi
409bae:	ff 15 84 b1 41 00    	call   *0x41b184
409bb4:	53                   	push   %ebx
409bb5:	8d 44 24 14          	lea    0x14(%esp),%eax
409bb9:	50                   	push   %eax
409bba:	68 a4 00 00 00       	push   $0xa4
409bbf:	68 30 51 41 00       	push   $0x415130
409bc4:	56                   	push   %esi