404831:	89 45 ac             	mov    %eax,-0x54(%ebp)
404834:	89 45 88             	mov    %eax,-0x78(%ebp)
404837:	eb 0b                	jmp    0x404844
404839:	3d 04 00 04 00       	cmp    $0x40004,%eax
40483e:	74 65                	je     0x4048a5
404840:	85 c0                	test   %eax,%eax
404842:	78 61                	js     0x4048a5
404844:	8b fb                	mov    %ebx,%edi
404846:	89 7d 94             	mov    %edi,-0x6c(%ebp)
404849:	3b 7d a8             	cmp    -0x58(%ebp),%edi
40484c:	73 4d                	jae    0x40489b
40484e:	b9 8d 13 00 00       	mov    $0x138d,%ecx
404853:	e8 f9 51 00 00       	call   0x409a51
404858:	50                   	push   %eax
404859:	8d 45 b8             	lea    -0x48(%ebp),%eax
40485c:	50                   	push   %eax
40485d:	ba e8 15 40 00       	mov    $0x4015e8,%edx
404862:	8b 4c bd c4          	mov    -0x3c(%ebp,%edi,4),%ecx
404866:	e8 57 33 00 00       	call   0x407bc2
40486b:	83 f8 01             	cmp    $0x1,%eax
40486e:	75 0c                	jne    0x40487c
404870:	51                   	push   %ecx
404871:	8b 55 b8             	mov    -0x48(%ebp),%edx
404874:	8b 4d b0             	mov    -0x50(%ebp),%ecx
404877:	e8 83 42 00 00       	call   0x408aff
40487c:	8b 4c bd c4          	mov    -0x3c(%ebp,%edi,4),%ecx
404880:	85 c9                	test   %ecx,%ecx
404882:	74 14                	je     0x404898
404884:	8b 01                	mov    (%ecx),%eax
404886:	51                   	push   %ecx
404887:	8b 70 08             	mov    0x8(%eax),%esi
40488a:	8b ce                	mov    %esi,%ecx
40488c:	ff 15 20 23 41 00    	call   *0x412320
404892:	ff d6                	call   *%esi
404894:	89 5c bd c4          	mov    %ebx,-0x3c(%ebp,%edi,4)
404898:	47                   	inc    %edi
404899:	eb ab                	jmp    0x404846
40489b:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
40489f:	0f 84 69 ff ff ff    	je     0x40480e
4048a5:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4048ac:	eb 3b                	jmp    0x4048e9
4048ae:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4048b1:	85 c9                	test   %ecx,%ecx
4048b3:	74 14                	je     0x4048c9
4048b5:	8b 01                	mov    (%ecx),%eax
4048b7:	51                   	push   %ecx
4048b8:	8b 70 08             	mov    0x8(%eax),%esi
4048bb:	8b ce                	mov    %esi,%ecx
4048bd:	ff 15 20 23 41 00    	call   *0x412320
4048c3:	ff d6                	call   *%esi
4048c5:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
4048c9:	8b 45 84             	mov    -0x7c(%ebp),%eax
4048cc:	8b 48 04             	mov    0x4(%eax),%ecx
4048cf:	e8 36 30 00 00       	call   0x40790a
4048d4:	b8 da 48 40 00       	mov    $0x4048da,%eax
4048d9:	c3                   	ret
4048da:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4048e1:	33 db                	xor    %ebx,%ebx
4048e3:	8b 45 90             	mov    -0x70(%ebp),%eax
4048e6:	89 45 bc             	mov    %eax,-0x44(%ebp)
4048e9:	8b fb                	mov    %ebx,%edi
4048eb:	89 7d 8c             	mov    %edi,-0x74(%ebp)
4048ee:	83 ff 0a             	cmp    $0xa,%edi
4048f1:	73 1f                	jae    0x404912
4048f3:	8b 4c bd c4          	mov    -0x3c(%ebp,%edi,4),%ecx
4048f7:	85 c9                	test   %ecx,%ecx
4048f9:	74 14                	je     0x40490f
4048fb:	8b 01                	mov    (%ecx),%eax
4048fd:	51                   	push   %ecx
4048fe:	8b 70 08             	mov    0x8(%eax),%esi
404901:	8b ce                	mov    %esi,%ecx
404903:	ff 15 20 23 41 00    	call   *0x412320
404909:	ff d6                	call   *%esi
40490b:	89 5c bd c4          	mov    %ebx,-0x3c(%ebp,%edi,4)
40490f:	47                   	inc    %edi
404910:	eb d9                	jmp    0x4048eb
404912:	8b 4d c0             	mov    -0x40(%ebp),%ecx
404915:	85 c9                	test   %ecx,%ecx
404917:	74 13                	je     0x40492c
404919:	8b 01                	mov    (%ecx),%eax
40491b:	51                   	push   %ecx
40491c:	8b 70 08             	mov    0x8(%eax),%esi
40491f:	8b ce                	mov    %esi,%ecx
404921:	ff 15 20 23 41 00    	call   *0x412320
404927:	ff d6                	call   *%esi
404929:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40492c:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40492f:	8b 7d bc             	mov    -0x44(%ebp),%edi
404932:	51                   	push   %ecx
404933:	6a 0a                	push   $0xa
404935:	8b 55 08             	mov    0x8(%ebp),%edx
404938:	8b 8f 80 00 00 00    	mov    0x80(%edi),%ecx
40493e:	e8 b1 4a 00 00       	call   0x4093f4
404943:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40494a:	eb 1f                	jmp    0x40496b
40494c:	68 0e 00 07 80       	push   $0x8007000e
404951:	ff 15 74 20 41 00    	call   *0x412074
404957:	e8 98 4e 00 00       	call   0x4097f4
40495c:	b8 62 49 40 00       	mov    $0x404962,%eax
404961:	c3                   	ret
404962:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
404969:	33 db                	xor    %ebx,%ebx
40496b:	88 5d fc             	mov    %bl,-0x4(%ebp)
40496e:	8d 4d b8             	lea    -0x48(%ebp),%ecx
404971:	ff 15 30 22 41 00    	call   *0x412230
404977:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40497b:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40497e:	ff 15 30 22 41 00    	call   *0x412230
404984:	e8 84 a9 00 00       	call   0x40f30d
404989:	c2 04 00             	ret    $0x4
40498c:	8b ce                	mov    %esi,%ecx
40498e:	e8 8e 3d 00 00       	call   0x408721
404993:	cc                   	int3
404994:	6a 04                	push   $0x4
404996:	b8 6c f7 40 00       	mov    $0x40f76c,%eax
40499b:	e8 af a9 00 00       	call   0x40f34f
4049a0:	8b f1                	mov    %ecx,%esi
4049a2:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
4049a6:	75 08                	jne    0x4049b0
4049a8:	33 c0                	xor    %eax,%eax
4049aa:	40                   	inc    %eax
4049ab:	e9 8b 00 00 00       	jmp    0x404a3b
4049b0:	e8 c5 40 00 00       	call   0x408a7a
4049b5:	8b f8                	mov    %eax,%edi
4049b7:	85 ff                	test   %edi,%edi
4049b9:	75 14                	jne    0x4049cf
4049bb:	68 0e 00 07 80       	push   $0x8007000e
4049c0:	ff 15 74 20 41 00    	call   *0x412074
4049c6:	e8 29 4e 00 00       	call   0x4097f4
4049cb:	33 c0                	xor    %eax,%eax
4049cd:	eb 6c                	jmp    0x404a3b
4049cf:	83 be d8 00 00 00 01 	cmpl   $0x1,0xd8(%esi)
4049d6:	75 13                	jne    0x4049eb
4049d8:	83 be b0 00 00 00 00 	cmpl   $0x0,0xb0(%esi)
4049df:	75 0a                	jne    0x4049eb
4049e1:	57                   	push   %edi
4049e2:	8b ce                	mov    %esi,%ecx
4049e4:	e8 6f 02 00 00       	call   0x404c58
4049e9:	eb 0b                	jmp    0x4049f6
4049eb:	57                   	push   %edi
4049ec:	ff 75 08             	push   0x8(%ebp)
4049ef:	8b ce                	mov    %esi,%ecx
4049f1:	e8 40 03 00 00       	call   0x404d36
4049f6:	8b d8                	mov    %eax,%ebx
4049f8:	83 fb 01             	cmp    $0x1,%ebx
4049fb:	75 27                	jne    0x404a24
4049fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404a01:	6a 00                	push   $0x0
404a03:	50                   	push   %eax
404a04:	ff b6 88 00 00 00    	push   0x88(%esi)
404a0a:	ba 00 00 02 00       	mov    $0x20000,%edx
404a0f:	8b cf                	mov    %edi,%ecx
404a11:	e8 0b 3f 00 00       	call   0x408921
404a16:	83 f8 ff             	cmp    $0xffffffff,%eax
404a19:	74 09                	je     0x404a24
404a1b:	8b d0                	mov    %eax,%edx
404a1d:	8b cf                	mov    %edi,%ecx
404a1f:	e8 44 43 00 00       	call   0x408d68
404a24:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404a28:	57                   	push   %edi
404a29:	6a 0b                	push   $0xb
404a2b:	8b 55 08             	mov    0x8(%ebp),%edx
404a2e:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
404a34:	e8 bb 49 00 00       	call   0x4093f4
404a39:	8b c3                	mov    %ebx,%eax
404a3b:	e8 b9 a8 00 00       	call   0x40f2f9
404a40:	c2 04 00             	ret    $0x4
404a43:	68 0e 00 07 80       	push   $0x8007000e
404a48:	ff 15 74 20 41 00    	call   *0x412074
404a4e:	e8 a1 4d 00 00       	call   0x4097f4
404a53:	b8 59 4a 40 00       	mov    $0x404a59,%eax
404a58:	c3                   	ret
404a59:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404a5d:	e9 69 ff ff ff       	jmp    0x4049cb
404a62:	68 c8 01 00 00       	push   $0x1c8
404a67:	b8 87 f7 40 00       	mov    $0x40f787,%eax
404a6c:	e8 14 a9 00 00       	call   0x40f385
404a71:	8b d9                	mov    %ecx,%ebx
404a73:	89 9d 50 fe ff ff    	mov    %ebx,-0x1b0(%ebp)
404a79:	c7 85 5c fe ff ff 00 	movl   $0x100,-0x1a4(%ebp)
404a80:	01 00 00
404a83:	c7 85 60 fe ff ff 82 	movl   $0x82,-0x1a0(%ebp)
404a8a:	00 00 00
404a8d:	6a 08                	push   $0x8
404a8f:	59                   	pop    %ecx
404a90:	33 c0                	xor    %eax,%eax
404a92:	8d bd 2c fe ff ff    	lea    -0x1d4(%ebp),%edi
404a98:	f3 ab                	rep stos %eax,%es:(%edi)
404a9a:	89 85 64 fe ff ff    	mov    %eax,-0x19c(%ebp)
404aa0:	8b f0                	mov    %eax,%esi
404aa2:	89 43 70             	mov    %eax,0x70(%ebx)
404aa5:	89 43 74             	mov    %eax,0x74(%ebx)
404aa8:	8d 43 78             	lea    0x78(%ebx),%eax
404aab:	89 85 58 fe ff ff    	mov    %eax,-0x1a8(%ebp)
404ab1:	bf 98 16 40 00       	mov    $0x401698,%edi
404ab6:	57                   	push   %edi
404ab7:	8b c8                	mov    %eax,%ecx
404ab9:	ff 15 2c 22 41 00    	call   *0x41222c
404abf:	8d 43 7c             	lea    0x7c(%ebx),%eax
404ac2:	89 85 54 fe ff ff    	mov    %eax,-0x1ac(%ebp)
404ac8:	57                   	push   %edi
404ac9:	8b c8                	mov    %eax,%ecx
404acb:	ff 15 2c 22 41 00    	call   *0x41222c
404ad1:	39 73 18             	cmp    %esi,0x18(%ebx)
404ad4:	0f 84 78 01 00 00    	je     0x404c52
404ada:	ff b3 84 00 00 00    	push   0x84(%ebx)
404ae0:	56                   	push   %esi
404ae1:	68 00 10 00 00       	push   $0x1000
404ae6:	ff 15 44 20 41 00    	call   *0x412044
404aec:	8b f8                	mov    %eax,%edi
404aee:	89 bd 4c fe ff ff    	mov    %edi,-0x1b4(%ebp)
404af4:	85 ff                	test   %edi,%edi
404af6:	75 20                	jne    0x404b18
404af8:	ff 15 48 20 41 00    	call   *0x412048
404afe:	8b f0                	mov    %eax,%esi
404b00:	bb 00 00 07 80       	mov    $0x80070000,%ebx
404b05:	85 f6                	test   %esi,%esi
404b07:	7e 07                	jle    0x404b10
404b09:	0f b7 f6             	movzwl %si,%esi
404b0c:	0b f3                	or     %ebx,%esi
404b0e:	85 f6                	test   %esi,%esi
404b10:	0f 88 27 01 00 00    	js     0x404c3d
404b16:	eb 05                	jmp    0x404b1d
404b18:	bb 00 00 07 80       	mov    $0x80070000,%ebx
404b1d:	8d 85 64 fe ff ff    	lea    -0x19c(%ebp),%eax
404b23:	50                   	push   %eax
404b24:	6a 08                	push   $0x8
404b26:	57                   	push   %edi
404b27:	ff 15 00 20 41 00    	call   *0x412000
404b2d:	85 c0                	test   %eax,%eax
404b2f:	75 11                	jne    0x404b42
404b31:	ff 15 48 20 41 00    	call   *0x412048
404b37:	8b f0                	mov    %eax,%esi
404b39:	85 f6                	test   %esi,%esi
404b3b:	7e 07                	jle    0x404b44
404b3d:	0f b7 f6             	movzwl %si,%esi
404b40:	0b f3                	or     %ebx,%esi
404b42:	85 f6                	test   %esi,%esi
404b44:	0f 88 e8 00 00 00    	js     0x404c32
404b4a:	6a 00                	push   $0x0
404b4c:	8d 85 60 fe ff ff    	lea    -0x1a0(%ebp),%eax
404b52:	50                   	push   %eax
404b53:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
404b59:	50                   	push   %eax
404b5a:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
404b60:	50                   	push   %eax
404b61:	8d 85 68 fe ff ff    	lea    -0x198(%ebp),%eax
404b67:	50                   	push   %eax
404b68:	ff b5 64 fe ff ff    	push   -0x19c(%ebp)
404b6e:	ff 15 0c 23 41 00    	call   *0x41230c
404b74:	85 c0                	test   %eax,%eax
404b76:	79 12                	jns    0x404b8a
404b78:	50                   	push   %eax
404b79:	ff 15 08 23 41 00    	call   *0x412308
404b7f:	8b f0                	mov    %eax,%esi
404b81:	85 f6                	test   %esi,%esi
404b83:	7e 07                	jle    0x404b8c
404b85:	0f b7 f6             	movzwl %si,%esi
404b88:	0b f3                	or     %ebx,%esi
404b8a:	85 f6                	test   %esi,%esi
404b8c:	0f 88 a0 00 00 00    	js     0x404c32
404b92:	6a 20                	push   $0x20
404b94:	58                   	pop    %eax
404b95:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
404b9b:	6a 00                	push   $0x0
404b9d:	50                   	push   %eax
404b9e:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
404ba4:	50                   	push   %eax
404ba5:	6a 00                	push   $0x0
404ba7:	57                   	push   %edi
404ba8:	ff 15 fc 22 41 00    	call   *0x4122fc
404bae:	85 c0                	test   %eax,%eax
404bb0:	79 12                	jns    0x404bc4
404bb2:	50                   	push   %eax
404bb3:	ff 15 08 23 41 00    	call   *0x412308
404bb9:	8b f0                	mov    %eax,%esi
404bbb:	85 f6                	test   %esi,%esi
404bbd:	7e 07                	jle    0x404bc6
404bbf:	0f b7 f6             	movzwl %si,%esi
404bc2:	0b f3                	or     %ebx,%esi
404bc4:	85 f6                	test   %esi,%esi
404bc6:	78 6a                	js     0x404c32
404bc8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404bcc:	8d 85 68 fe ff ff    	lea    -0x198(%ebp),%eax
404bd2:	50                   	push   %eax
404bd3:	8b 8d 58 fe ff ff    	mov    -0x1a8(%ebp),%ecx
404bd9:	ff 15 2c 22 41 00    	call   *0x41222c
404bdf:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
404be5:	50                   	push   %eax
404be6:	8b 8d 54 fe ff ff    	mov    -0x1ac(%ebp),%ecx
404bec:	ff 15 2c 22 41 00    	call   *0x41222c
404bf2:	8b 85 48 fe ff ff    	mov    -0x1b8(%ebp),%eax
404bf8:	c1 e8 04             	shr    $0x4,%eax
404bfb:	33 d2                	xor    %edx,%edx
404bfd:	42                   	inc    %edx
404bfe:	23 c2                	and    %edx,%eax
404c00:	8b 8d 50 fe ff ff    	mov    -0x1b0(%ebp),%ecx
404c06:	89 41 74             	mov    %eax,0x74(%ecx)
404c09:	89 51 70             	mov    %edx,0x70(%ecx)
404c0c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404c10:	eb 20                	jmp    0x404c32
404c12:	68 0e 00 07 80       	push   $0x8007000e
404c17:	ff 15 74 20 41 00    	call   *0x412074
404c1d:	e8 d2 4b 00 00       	call   0x4097f4
404c22:	b8 28 4c 40 00       	mov    $0x404c28,%eax
404c27:	c3                   	ret
404c28:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404c2c:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
404c32:	85 ff                	test   %edi,%edi
404c34:	74 07                	je     0x404c3d
404c36:	57                   	push   %edi
404c37:	ff 15 3c 20 41 00    	call   *0x41203c
404c3d:	83 bd 64 fe ff ff 00 	cmpl   $0x0,-0x19c(%ebp)
404c44:	74 0c                	je     0x404c52
404c46:	ff b5 64 fe ff ff    	push   -0x19c(%ebp)
404c4c:	ff 15 3c 20 41 00    	call   *0x41203c
404c52:	e8 b6 a6 00 00       	call   0x40f30d
404c57:	c3                   	ret
404c58:	6a 1c                	push   $0x1c
404c5a:	b8 af f7 40 00       	mov    $0x40f7af,%eax
404c5f:	e8 eb a6 00 00       	call   0x40f34f
404c64:	8b c1                	mov    %ecx,%eax
404c66:	89 45 ec             	mov    %eax,-0x14(%ebp)
404c69:	8b 75 08             	mov    0x8(%ebp),%esi
404c6c:	85 f6                	test   %esi,%esi
404c6e:	0f 84 b8 00 00 00    	je     0x404d2c
404c74:	ff b0 84 00 00 00    	push   0x84(%eax)
404c7a:	33 db                	xor    %ebx,%ebx
404c7c:	53                   	push   %ebx
404c7d:	68 10 04 00 00       	push   $0x410
404c82:	ff 15 44 20 41 00    	call   *0x412044
404c88:	8b f8                	mov    %eax,%edi
404c8a:	89 7d e8             	mov    %edi,-0x18(%ebp)
404c8d:	85 ff                	test   %edi,%edi
404c8f:	0f 84 97 00 00 00    	je     0x404d2c
404c95:	6a 10                	push   $0x10
404c97:	59                   	pop    %ecx
404c98:	8d 45 d8             	lea    -0x28(%ebp),%eax
404c9b:	88 18                	mov    %bl,(%eax)
404c9d:	40                   	inc    %eax
404c9e:	83 e9 01             	sub    $0x1,%ecx
404ca1:	75 f8                	jne    0x404c9b
404ca3:	c7 45 d8 09 00 00 00 	movl   $0x9,-0x28(%ebp)
404caa:	89 5d dc             	mov    %ebx,-0x24(%ebp)
404cad:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404cb0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404cb3:	8b 75 ec             	mov    -0x14(%ebp),%esi
404cb6:	8d 4e 34             	lea    0x34(%esi),%ecx
404cb9:	ff 15 38 22 41 00    	call   *0x412238
404cbf:	8b 40 04             	mov    0x4(%eax),%eax