46fadd:	ff 75 0c             	push   0xc(%ebp)
46fae0:	ff 75 08             	push   0x8(%ebp)
46fae3:	6a 16                	push   $0x16
46fae5:	e8 c1 0d fa ff       	call   0x4108ab
46faea:	5d                   	pop    %ebp
46faeb:	c2 08 00             	ret    $0x8
46faee:	55                   	push   %ebp
46faef:	8b ec                	mov    %esp,%ebp
46faf1:	8b 45 08             	mov    0x8(%ebp),%eax
46faf4:	8d 4d 08             	lea    0x8(%ebp),%ecx
46faf7:	56                   	push   %esi
46faf8:	51                   	push   %ecx
46faf9:	8b 40 04             	mov    0x4(%eax),%eax
46fafc:	8b 08                	mov    (%eax),%ecx
46fafe:	e8 99 a1 f9 ff       	call   0x409c9c
46fb03:	50                   	push   %eax
46fb04:	e8 43 84 01 00       	call   0x487f4c
46fb09:	8b 75 0c             	mov    0xc(%ebp),%esi
46fb0c:	8b ce                	mov    %esi,%ecx
46fb0e:	84 c0                	test   %al,%al
46fb10:	74 13                	je     0x46fb25
46fb12:	e8 09 9f f9 ff       	call   0x409a20
46fb17:	8b 45 08             	mov    0x8(%ebp),%eax
46fb1a:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
46fb21:	89 06                	mov    %eax,(%esi)
46fb23:	eb 0f                	jmp    0x46fb34
46fb25:	e8 f6 9e f9 ff       	call   0x409a20
46fb2a:	83 26 00             	andl   $0x0,(%esi)
46fb2d:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46fb34:	33 c0                	xor    %eax,%eax
46fb36:	5e                   	pop    %esi
46fb37:	5d                   	pop    %ebp
46fb38:	c2 08 00             	ret    $0x8
46fb3b:	55                   	push   %ebp
46fb3c:	8b ec                	mov    %esp,%ebp
46fb3e:	8b 45 08             	mov    0x8(%ebp),%eax
46fb41:	56                   	push   %esi
46fb42:	57                   	push   %edi
46fb43:	8b 40 04             	mov    0x4(%eax),%eax
46fb46:	8b 08                	mov    (%eax),%ecx
46fb48:	e8 4f a1 f9 ff       	call   0x409c9c
46fb4d:	50                   	push   %eax
46fb4e:	e8 a8 84 01 00       	call   0x487ffb
46fb53:	8b 75 0c             	mov    0xc(%ebp),%esi
46fb56:	8b f8                	mov    %eax,%edi
46fb58:	8b ce                	mov    %esi,%ecx
46fb5a:	e8 c1 9e f9 ff       	call   0x409a20
46fb5f:	89 3e                	mov    %edi,(%esi)
46fb61:	33 c0                	xor    %eax,%eax
46fb63:	5f                   	pop    %edi
46fb64:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46fb6b:	5e                   	pop    %esi
46fb6c:	5d                   	pop    %ebp
46fb6d:	c2 08 00             	ret    $0x8
46fb70:	55                   	push   %ebp
46fb71:	8b ec                	mov    %esp,%ebp
46fb73:	83 e4 f8             	and    $0xfffffff8,%esp
46fb76:	51                   	push   %ecx
46fb77:	53                   	push   %ebx
46fb78:	56                   	push   %esi
46fb79:	8b 75 08             	mov    0x8(%ebp),%esi
46fb7c:	57                   	push   %edi
46fb7d:	83 cf ff             	or     $0xffffffff,%edi
46fb80:	8b 5e 08             	mov    0x8(%esi),%ebx
46fb83:	85 db                	test   %ebx,%ebx
46fb85:	74 0c                	je     0x46fb93
46fb87:	8b 46 04             	mov    0x4(%esi),%eax
46fb8a:	8b 08                	mov    (%eax),%ecx
46fb8c:	e8 0b a1 f9 ff       	call   0x409c9c
46fb91:	8b f8                	mov    %eax,%edi
46fb93:	83 fb 01             	cmp    $0x1,%ebx
46fb96:	76 13                	jbe    0x46fbab
46fb98:	8b 4e 04             	mov    0x4(%esi),%ecx
46fb9b:	8b 49 04             	mov    0x4(%ecx),%ecx
46fb9e:	e8 f9 a0 f9 ff       	call   0x409c9c
46fba3:	83 f8 01             	cmp    $0x1,%eax
46fba6:	75 03                	jne    0x46fbab
46fba8:	50                   	push   %eax
46fba9:	eb 02                	jmp    0x46fbad
46fbab:	6a 00                	push   $0x0
46fbad:	8d 44 24 10          	lea    0x10(%esp),%eax
46fbb1:	50                   	push   %eax
46fbb2:	57                   	push   %edi
46fbb3:	e8 92 84 01 00       	call   0x48804a
46fbb8:	8b 7c 24 0c          	mov    0xc(%esp),%edi
46fbbc:	8b f0                	mov    %eax,%esi
46fbbe:	85 ff                	test   %edi,%edi
46fbc0:	7f 16                	jg     0x46fbd8
46fbc2:	85 f6                	test   %esi,%esi
46fbc4:	74 12                	je     0x46fbd8
46fbc6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46fbc9:	56                   	push   %esi
46fbca:	e8 29 a0 f9 ff       	call   0x409bf8
46fbcf:	56                   	push   %esi
46fbd0:	e8 97 14 fb ff       	call   0x42106c
46fbd5:	59                   	pop    %ecx
46fbd6:	eb 13                	jmp    0x46fbeb
46fbd8:	8b 75 0c             	mov    0xc(%ebp),%esi
46fbdb:	8b ce                	mov    %esi,%ecx
46fbdd:	e8 3e 9e f9 ff       	call   0x409a20
46fbe2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46fbe9:	89 3e                	mov    %edi,(%esi)
46fbeb:	5f                   	pop    %edi
46fbec:	5e                   	pop    %esi
46fbed:	33 c0                	xor    %eax,%eax
46fbef:	5b                   	pop    %ebx
46fbf0:	8b e5                	mov    %ebp,%esp
46fbf2:	5d                   	pop    %ebp
46fbf3:	c2 08 00             	ret    $0x8
46fbf6:	55                   	push   %ebp
46fbf7:	8b ec                	mov    %esp,%ebp
46fbf9:	b8 20 20 00 00       	mov    $0x2020,%eax
46fbfe:	e8 8d 1f fc ff       	call   0x431b90
46fc03:	53                   	push   %ebx
46fc04:	56                   	push   %esi
46fc05:	8b 75 08             	mov    0x8(%ebp),%esi
46fc08:	33 c0                	xor    %eax,%eax
46fc0a:	57                   	push   %edi
46fc0b:	33 db                	xor    %ebx,%ebx
46fc0d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46fc10:	89 45 08             	mov    %eax,0x8(%ebp)
46fc13:	8b 7e 08             	mov    0x8(%esi),%edi
46fc16:	83 ff 03             	cmp    $0x3,%edi
46fc19:	76 10                	jbe    0x46fc2b
46fc1b:	8b 46 04             	mov    0x4(%esi),%eax
46fc1e:	8b 48 0c             	mov    0xc(%eax),%ecx
46fc21:	e8 76 a0 f9 ff       	call   0x409c9c
46fc26:	8b d8                	mov    %eax,%ebx
46fc28:	8b 45 08             	mov    0x8(%ebp),%eax
46fc2b:	83 ff 02             	cmp    $0x2,%edi
46fc2e:	76 0b                	jbe    0x46fc3b
46fc30:	8b 46 04             	mov    0x4(%esi),%eax
46fc33:	8b 48 08             	mov    0x8(%eax),%ecx
46fc36:	e8 61 a0 f9 ff       	call   0x409c9c
46fc3b:	8d 95 e0 df ff ff    	lea    -0x2020(%ebp),%edx
46fc41:	b9 ff 0f 00 00       	mov    $0xfff,%ecx
46fc46:	52                   	push   %edx
46fc47:	8d 55 e8             	lea    -0x18(%ebp),%edx
46fc4a:	66 89 8d e0 df ff ff 	mov    %cx,-0x2020(%ebp)
46fc51:	8b 4e 04             	mov    0x4(%esi),%ecx
46fc54:	52                   	push   %edx
46fc55:	8d 55 08             	lea    0x8(%ebp),%edx
46fc58:	52                   	push   %edx
46fc59:	8b 31                	mov    (%ecx),%esi
46fc5b:	8d 55 ec             	lea    -0x14(%ebp),%edx
46fc5e:	8b 49 04             	mov    0x4(%ecx),%ecx
46fc61:	52                   	push   %edx
46fc62:	8d 55 e4             	lea    -0x1c(%ebp),%edx
46fc65:	52                   	push   %edx
46fc66:	53                   	push   %ebx
46fc67:	50                   	push   %eax
46fc68:	e8 2f a0 f9 ff       	call   0x409c9c
46fc6d:	50                   	push   %eax
46fc6e:	8b ce                	mov    %esi,%ecx
46fc70:	e8 27 a0 f9 ff       	call   0x409c9c
46fc75:	50                   	push   %eax
46fc76:	e8 d7 8a 01 00       	call   0x488752
46fc7b:	85 c0                	test   %eax,%eax
46fc7d:	75 2a                	jne    0x46fca9
46fc7f:	8b 75 0c             	mov    0xc(%ebp),%esi
46fc82:	8b ce                	mov    %esi,%ecx
46fc84:	e8 97 9d f9 ff       	call   0x409a20
46fc89:	8b 55 e0             	mov    -0x20(%ebp),%edx
46fc8c:	33 ff                	xor    %edi,%edi
46fc8e:	83 26 00             	andl   $0x0,(%esi)
46fc91:	47                   	inc    %edi
46fc92:	89 7e 0c             	mov    %edi,0xc(%esi)
46fc95:	6a 00                	push   $0x0
46fc97:	8b 02                	mov    (%edx),%eax
46fc99:	57                   	push   %edi
46fc9a:	8b 48 04             	mov    0x4(%eax),%ecx
46fc9d:	03 ca                	add    %edx,%ecx
46fc9f:	e8 ff 6d fe ff       	call   0x456aa3
46fca4:	e9 c5 00 00 00       	jmp    0x46fd6e
46fca9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46fcac:	33 ff                	xor    %edi,%edi
46fcae:	47                   	inc    %edi
46fcaf:	3b df                	cmp    %edi,%ebx
46fcb1:	75 11                	jne    0x46fcc4
46fcb3:	8d 85 e0 df ff ff    	lea    -0x2020(%ebp),%eax
46fcb9:	50                   	push   %eax
46fcba:	e8 39 9f f9 ff       	call   0x409bf8
46fcbf:	e9 aa 00 00 00       	jmp    0x46fd6e
46fcc4:	83 c3 02             	add    $0x2,%ebx
46fcc7:	e8 62 97 f9 ff       	call   0x40942e
46fccc:	53                   	push   %ebx
46fccd:	8b f0                	mov    %eax,%esi
46fccf:	57                   	push   %edi
46fcd0:	56                   	push   %esi
46fcd1:	e8 da 94 f9 ff       	call   0x4091b0
46fcd6:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46fcd9:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fcdc:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46fce0:	6a 00                	push   $0x0
46fce2:	57                   	push   %edi
46fce3:	50                   	push   %eax
46fce4:	56                   	push   %esi
46fce5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46fce8:	89 7d fc             	mov    %edi,-0x4(%ebp)
46fceb:	e8 50 93 f9 ff       	call   0x409040
46fcf0:	83 c4 1c             	add    $0x1c,%esp
46fcf3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46fcf6:	e8 25 9d f9 ff       	call   0x409a20
46fcfb:	8b 45 ec             	mov    -0x14(%ebp),%eax
46fcfe:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46fd02:	57                   	push   %edi
46fd03:	89 45 f0             	mov    %eax,-0x10(%ebp)
46fd06:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fd09:	57                   	push   %edi
46fd0a:	50                   	push   %eax
46fd0b:	56                   	push   %esi
46fd0c:	89 7d fc             	mov    %edi,-0x4(%ebp)
46fd0f:	e8 2c 93 f9 ff       	call   0x409040
46fd14:	83 c4 10             	add    $0x10,%esp
46fd17:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46fd1a:	e8 01 9d f9 ff       	call   0x409a20
46fd1f:	83 fb 04             	cmp    $0x4,%ebx
46fd22:	75 4a                	jne    0x46fd6e
46fd24:	8b 45 08             	mov    0x8(%ebp),%eax
46fd27:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46fd2b:	6a 02                	push   $0x2
46fd2d:	89 45 f0             	mov    %eax,-0x10(%ebp)
46fd30:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fd33:	57                   	push   %edi
46fd34:	50                   	push   %eax
46fd35:	56                   	push   %esi
46fd36:	89 7d fc             	mov    %edi,-0x4(%ebp)
46fd39:	e8 02 93 f9 ff       	call   0x409040
46fd3e:	83 c4 10             	add    $0x10,%esp
46fd41:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46fd44:	e8 d7 9c f9 ff       	call   0x409a20
46fd49:	8b 45 e8             	mov    -0x18(%ebp),%eax
46fd4c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46fd50:	6a 03                	push   $0x3
46fd52:	89 45 f0             	mov    %eax,-0x10(%ebp)
46fd55:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fd58:	57                   	push   %edi
46fd59:	50                   	push   %eax
46fd5a:	56                   	push   %esi
46fd5b:	89 7d fc             	mov    %edi,-0x4(%ebp)
46fd5e:	e8 dd 92 f9 ff       	call   0x409040
46fd63:	83 c4 10             	add    $0x10,%esp
46fd66:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46fd69:	e8 b2 9c f9 ff       	call   0x409a20
46fd6e:	5f                   	pop    %edi
46fd6f:	5e                   	pop    %esi
46fd70:	33 c0                	xor    %eax,%eax
46fd72:	5b                   	pop    %ebx
46fd73:	8b e5                	mov    %ebp,%esp
46fd75:	5d                   	pop    %ebp
46fd76:	c2 08 00             	ret    $0x8
46fd79:	55                   	push   %ebp
46fd7a:	8b ec                	mov    %esp,%ebp
46fd7c:	83 ec 34             	sub    $0x34,%esp
46fd7f:	8b 45 08             	mov    0x8(%ebp),%eax
46fd82:	53                   	push   %ebx
46fd83:	56                   	push   %esi
46fd84:	33 db                	xor    %ebx,%ebx
46fd86:	8b 40 04             	mov    0x4(%eax),%eax
46fd89:	57                   	push   %edi
46fd8a:	8b f9                	mov    %ecx,%edi
46fd8c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
46fd8f:	8b 70 04             	mov    0x4(%eax),%esi
46fd92:	8b ce                	mov    %esi,%ecx
46fd94:	83 7e 0c 0e          	cmpl   $0xe,0xc(%esi)
46fd98:	75 13                	jne    0x46fdad
46fd9a:	33 c0                	xor    %eax,%eax
46fd9c:	40                   	inc    %eax
46fd9d:	89 45 fc             	mov    %eax,-0x4(%ebp)
46fda0:	8d 45 cc             	lea    -0x34(%ebp),%eax
46fda3:	50                   	push   %eax
46fda4:	e8 fb 7d ff ff       	call   0x467ba4
46fda9:	8b c8                	mov    %eax,%ecx
46fdab:	eb 2a                	jmp    0x46fdd7
46fdad:	6a 02                	push   $0x2
46fdaf:	58                   	pop    %eax
46fdb0:	89 45 fc             	mov    %eax,-0x4(%ebp)
46fdb3:	e8 df 9b f9 ff       	call   0x409997
46fdb8:	8b 4e 08             	mov    0x8(%esi),%ecx
46fdbb:	8b 01                	mov    (%ecx),%eax
46fdbd:	89 45 dc             	mov    %eax,-0x24(%ebp)
46fdc0:	8b 41 04             	mov    0x4(%ecx),%eax
46fdc3:	89 45 e0             	mov    %eax,-0x20(%ebp)
46fdc6:	8b 41 08             	mov    0x8(%ecx),%eax
46fdc9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46fdcc:	8b 41 0c             	mov    0xc(%ecx),%eax
46fdcf:	8d 4d dc             	lea    -0x24(%ebp),%ecx
46fdd2:	89 45 e8             	mov    %eax,-0x18(%ebp)
46fdd5:	ff 00                	incl   (%eax)
46fdd7:	8b 01                	mov    (%ecx),%eax
46fdd9:	89 45 ec             	mov    %eax,-0x14(%ebp)
46fddc:	8b 41 04             	mov    0x4(%ecx),%eax
46fddf:	89 45 f0             	mov    %eax,-0x10(%ebp)
46fde2:	8b 41 08             	mov    0x8(%ecx),%eax
46fde5:	89 45 f4             	mov    %eax,-0xc(%ebp)
46fde8:	8b 41 0c             	mov    0xc(%ecx),%eax
46fdeb:	89 45 f8             	mov    %eax,-0x8(%ebp)
46fdee:	ff 00                	incl   (%eax)
46fdf0:	8b 45 fc             	mov    -0x4(%ebp),%eax
46fdf3:	a8 02                	test   $0x2,%al
46fdf5:	74 11                	je     0x46fe08
46fdf7:	83 e0 fd             	and    $0xfffffffd,%eax
46fdfa:	8d 4d dc             	lea    -0x24(%ebp),%ecx
46fdfd:	89 45 fc             	mov    %eax,-0x4(%ebp)
46fe00:	e8 5f 5c f9 ff       	call   0x405a64
46fe05:	8b 45 fc             	mov    -0x4(%ebp),%eax
46fe08:	a8 01                	test   $0x1,%al
46fe0a:	74 08                	je     0x46fe14
46fe0c:	8d 4d cc             	lea    -0x34(%ebp),%ecx
46fe0f:	e8 50 5c f9 ff       	call   0x405a64
46fe14:	8d 45 ec             	lea    -0x14(%ebp),%eax
46fe17:	8b cf                	mov    %edi,%ecx
46fe19:	50                   	push   %eax
46fe1a:	e8 9e a1 f9 ff       	call   0x409fbd
46fe1f:	85 c0                	test   %eax,%eax
46fe21:	75 27                	jne    0x46fe4a
46fe23:	8b 75 0c             	mov    0xc(%ebp),%esi
46fe26:	8b ce                	mov    %esi,%ecx
46fe28:	e8 f3 9b f9 ff       	call   0x409a20
46fe2d:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46fe34:	89 1e                	mov    %ebx,(%esi)
46fe36:	8b 07                	mov    (%edi),%eax
46fe38:	53                   	push   %ebx
46fe39:	6a 02                	push   $0x2
46fe3b:	8b 48 04             	mov    0x4(%eax),%ecx
46fe3e:	03 cf                	add    %edi,%ecx
46fe40:	e8 5e 6c fe ff       	call   0x456aa3
46fe45:	83 cb ff             	or     $0xffffffff,%ebx
46fe48:	eb 52                	jmp    0x46fe9c
46fe4a:	8b 48 14             	mov    0x14(%eax),%ecx
46fe4d:	83 f9 04             	cmp    $0x4,%ecx
46fe50:	7e 1d                	jle    0x46fe6f
46fe52:	8b 07                	mov    (%edi),%eax
46fe54:	53                   	push   %ebx
46fe55:	6a 01                	push   $0x1
46fe57:	8b 48 04             	mov    0x4(%eax),%ecx
46fe5a:	03 cf                	add    %edi,%ecx
46fe5c:	e8 42 6c fe ff       	call   0x456aa3
46fe61:	8b 75 0c             	mov    0xc(%ebp),%esi
46fe64:	8b ce                	mov    %esi,%ecx
46fe66:	e8 b5 9b f9 ff       	call   0x409a20
46fe6b:	89 1e                	mov    %ebx,(%esi)
46fe6d:	eb 26                	jmp    0x46fe95
46fe6f:	8b 45 08             	mov    0x8(%ebp),%eax
46fe72:	51                   	push   %ecx
46fe73:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46fe76:	51                   	push   %ecx
46fe77:	8b 40 04             	mov    0x4(%eax),%eax
46fe7a:	8b 08                	mov    (%eax),%ecx
46fe7c:	e8 1b 9e f9 ff       	call   0x409c9c